Cobol Foro
Navegación en el Foro
Retroceder   Cobol Foro Entornos de desarrollo y compiladores Cobol COBOL - General
COBOL - General Discusiones de temática general sobre el lenguaje COBOL y todo lo relacionado con él.
 
Otros temas que te pueden interesar
Tema Autor Foro Respuestas Último post
[Duda] Alguien utiliza Power-LibreOffice? Xavier PowerCOBOL (ActiveX, v4 - v11) 0 8 de julio de 2021 20:11

Respuesta

  #1
Antiguo 11 de enero de 2023, 12:51
Josber
Moderador Global
Activista del Foro: Activista del Foro - Issue reason: Por aportar manuales y enriquecer  Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos 
Última Actividad 20.09.2026 12:17
Posts Posts: 883
Likes enviados Enviados: 418
Likes recibidos Recibidos: 492
Pregunta ¿Qué es TYPEDEF y para qué se utiliza?
0 Inactivo Inactivo

Repasando la rutina de @fastpho ToolTipText multilínea, he visto que utiliza la definición TYPEDEF, he estado buscando por inet pero, lo poco que hay, está muy mal explicado, (o yo no lo entiendo)

¿qué diferencia hay entre?

Código COBOL:
  1. 01  VAR.
  2.       03  V1         PIC X(10).
  3.       03  V2         PIC S9(5).
  4.       03  V3         PIC 999.

y

Código COBOL:
  1. 01  VAR TYPEDEF.
  2.       03  V1         PIC X(10).
  3.       03  V2         PIC S9(5).
  4.       03  V3         PIC 999.

¿Alguien podría iluminarme?, por saber si tiene algún tipo de ventaja, velocidad, etc.

Mil gracias.-
Josber is offline   Responder Con Cita
  #2
Antiguo 11 de enero de 2023, 15:54
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

@Josber, el TYPEDEF es para definir un tipo de campo nuevo, puede ser simple o estructura. Así puedes tener tantas copias del "tipo" como quieras.

Ejemplo:
Código COBOL:
  1.  01  CLIENTE TYPEDEF.
  2.      05  NOMBRE    PIC X(20).
  3.      05  APELLIDO  PIC X(30).
  4.      05  EDAD      PIC 9(2).
  5.      
  6.  
  7.  01  cliente1 TYPE CLIENTE.
  8.  01  cliente2 TYPE CLIENTE.
  9.  
  10.  PROCEDURE DIVISION.
  11.      
  12.      MOVE "JOSBER" TO NOMBRE OF cliente1

Otro ejemplo:
Código COBOL:
  1.  01  HWND TYPEDEF   PIC S9(9) COMP-5.
  2.  
  3.  01  hwndForm     TYPE HWND.
  4.  01  hwndListView TYPE HWND.    
  5.  
  6.  PROCEDURE DIVISION.
  7.      
  8.      MOVE "hwnd" OF POW-SELF    TO hwndForm
  9.      MOVE "hwnd" OF CmListView1 TO hwndListView



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #3
Antiguo 11 de enero de 2023, 16:07
Josber
Moderador Global
Activista del Foro: Activista del Foro - Issue reason: Por aportar manuales y enriquecer  Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos 
Última Actividad 20.09.2026 12:17
Posts Posts: 883
Likes enviados Enviados: 418
Likes recibidos Recibidos: 492

O sea @Kuk, que lo único que te ahorras es escribir en la WORKING, (que no en la PROCEDURE), porque espacio en memoria, el mismo, velocidad, la misma y claridad, quizás algo menos

mil Gracias por la aclaración
Josber is offline   Responder Con Cita
  #4
Antiguo 11 de enero de 2023, 17:00
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

@Josber, sí básicamente es ahorrar tecleo. Es una alternativa, digamos, porque se puede hacer con OCCURS, o con COPY REPLACINGT. Pero esto son cosas de COBOL puro, el TYPEDEF viene del C y existe en otros lenguajes.



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #5
Antiguo 11 de enero de 2023, 17:18
Josber
Moderador Global
Activista del Foro: Activista del Foro - Issue reason: Por aportar manuales y enriquecer  Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos 
Última Actividad 20.09.2026 12:17
Posts Posts: 883
Likes enviados Enviados: 418
Likes recibidos Recibidos: 492

@Kuk, del C, (C puro), me acuerdo aún cuando lo estudié hace más de 35 años, que estaban
Código:
TYPEDEF
y
Código:
STRUCT
para definir estructuras de datos, pero en COBOL, no lo había usado nunca, me imaginaba que era algo así pero, ante la duda ...
Josber is offline   Responder Con Cita
  #6
Antiguo 11 de enero de 2023, 17:31
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

@Josber, sí eso es. Lo de STRUCT es porque en C no hay niveles como en Cobol, así que el STRUCT es como un tipo para indicarle al compilador que es una estructura.



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
Respuesta


Herramientas

Derechos de Publicación
No puedes publicar nuevos temas
No puedes publicar posts/responder
No puedes adjuntar archivos
No puedes editar tus posts

BB code is habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado

Saltar a Foro


La franja horaria es GMT +2. Ahora son las 14:49.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.