Ver Mensaje Individual
  #9
Antiguo 11 de mayo de 2017, 09:28
Kuk
Administrador
Última Actividad 21.09.2026 18:24
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

Nitzer, ¡viva el REDEFINES! En realidad lo que hice fue redefinir el string en un array de Integers:

Entonces en el cliente hago:
Código COBOL:
  1.  ENVIRONMENT     DIVISION.
  2.  DATA            DIVISION.
  3.  WORKING-STORAGE SECTION.
  4.  01  wsmsg        pic x(24).
  5.  01  FILLER REDEFINES wsmsg.
  6.      05  wsINT OCCURS 6 TIMES PIC S9(9) COMP-5.
  7.  01  IDX-1        PIC S9(4)  COMP-5.
  8.  PROCEDURE       DIVISION.
  9.  
  10.      move "Text" OF CmText1 to wsmsg
  11.      
  12.      IF  "State" OF Winsock1 =  7
  13.          MOVE 1 TO IDX-1
  14.          
  15.          PERFORM UNTIL IDX-1 > 6        
  16.              INVOKE Winsock1 "SendData" USING wsINT(IDX-1)
  17.              
  18.              ADD 1 TO IDX-1
  19.          END-PERFORM
  20.      END-IF  

Y en el servidor:

Código COBOL:
  1.  ENVIRONMENT     DIVISION.
  2.  DATA            DIVISION.
  3.  WORKING-STORAGE SECTION.
  4.  01  wsmsg        pic x(24).
  5.  01  FILLER REDEFINES wsmsg.
  6.      05  wsINT OCCURS 6 TIMES PIC S9(9) COMP-5.
  7.  01  IDX-1        PIC S9(4)  COMP-5.
  8.  LINKAGE         SECTION.
  9.  01  POW-ARG-BYTESTOTAL PIC S9(9) COMP-5.
  10.  PROCEDURE       DIVISION USING POW-ARG-BYTESTOTAL.
  11.  
  12.      MOVE 1 TO IDX-1
  13.          
  14.          PERFORM UNTIL IDX-1 > 6        
  15.              INVOKE Winsock1 "GetData" USING wsINT(IDX-1) 3
  16.              
  17.              ADD 1 TO IDX-1
  18.          END-PERFORM
  19.          
  20.      MOVE wsmsg TO "Caption" OF CmStatic9  

Joseg, según he visto, todos los tipos derivan del Variant:

Código VB:
  1. Public Const vbArray   As Microsoft.VisualBasic.VariantType = 8192
  2. Public Const vbBoolean As Microsoft.VisualBasic.VariantType = 11
  3. Public Const vbByte    As Microsoft.VisualBasic.VariantType = 17
  4. Public Const vbDate    As Microsoft.VisualBasic.VariantType = 7
  5. Public Const vbDecimal As Microsoft.VisualBasic.VariantType = 14
  6. Public Const vbLong    As Microsoft.VisualBasic.VariantType = 20
  7. Public Const vbString  As Microsoft.VisualBasic.VariantType = 8
  8. Public Const vbLong    As Microsoft.VisualBasic.VariantType = 20
  9. Public Const vbInteger As Microsoft.VisualBasic.VariantType = 3
  10. Public Const vbSingle  As Microsoft.VisualBasic.VariantType = 4

Seguro que el "String" tiene su TypeDef que se compone por campos nativos, pero no he encontrado la información necesaria, así que pensé en el REDEFINES.



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