Ver Mensaje Individual
  #3
Antiguo 29 de enero de 2018, 17:37
Joseg
El Foro es mi casa
Activista del Foro: Activista del Foro - Issue reason: Por participación activa Innovación: Por aportar innovaciones - Issue reason: Por aportar soluciones innovadoras en varias ocasiones 
Última Actividad 21.09.2026 18:39
Posts Posts: 402
Likes enviados Enviados: 130
Likes recibidos Recibidos: 179

Citación del post de Rapinto Ver Mensaje
Como já não aceitava mais vai neste Post o código para a "New Procedure" GETXMLFIELD":
Código COBOL:
  1.  ENVIRONMENT     DIVISION.
  2.  DATA            DIVISION.
  3.  WORKING-STORAGE SECTION.
  4.  01   WFIELDSEARCH            PIC X(0128).
  5.  01   WFIELDSEARCHEND         PIC X(0128).
  6.  01   XMLIDX.
  7.     03  XMLIDX1                 PIC S9(009).
  8.     03  XMLIDX2                 PIC S9(009).
  9.     03  XMLIDX3                 PIC S9(009).
  10.     03  XMLIDX8                 PIC S9(009).
  11.     03  XMLIDX9                 PIC S9(009).
  12. *
  13.  PROCEDURE       DIVISION.
  14.  MAIN SECTION.
  15.  MAIN-00.
  16. *
  17.     INITIALIZE XMLIDX WFIELDSEARCH WFIELDSEARCHEND XMLFIELDRESULT.
  18.     IF XMLLINHA = SPACE GO TO MAIN-99-EXIT.
  19.     IF XMLFIELDSEARCH = SPACE GO TO MAIN-99-EXIT.
  20.     MOVE "<" TO WFIELDSEARCH.
  21.     MOVE XMLFIELDSEARCH TO WFIELDSEARCH(2:)
  22.     PERFORM VARYING XMLIDX8 FROM 128 BY -1 UNTIL XMLIDX8 < 1
  23.          IF WFIELDSEARCH(XMLIDX8:1) NOT = SPACE
  24.               ADD 1 TO XMLIDX8
  25.               MOVE ">" TO WFIELDSEARCH(XMLIDX8:1)
  26.               EXIT PERFORM
  27.          END-IF
  28.     END-PERFORM.
  29. *   SUBTRACT XMLIDX8 FROM 128 GIVING XMLIDX8.
  30.     MOVE "</" TO WFIELDSEARCHEND.
  31.     MOVE WFIELDSEARCH(2:) TO WFIELDSEARCHEND(3:).
  32.     MOVE XMLIDX8  TO XMLIDX9.
  33.     ADD 1 TO XMLIDX9.
  34.  MAIN-05.
  35.     PERFORM VARYING XMLIDX1 FROM 1 BY 1 UNTIL XMLIDX1 > 8196
  36.           IF XMLLINHA(XMLIDX1:XMLIDX8) = WFIELDSEARCH
  37.               ADD XMLIDX8 TO XMLIDX1
  38.               EXIT PERFORM
  39.           END-IF
  40.     END-PERFORM
  41.     IF XMLIDX1 > 8195 GO TO MAIN-99-EXIT.
  42.     PERFORM VARYING XMLIDX2 FROM XMLIDX1 BY 1 UNTIL XMLIDX2 > 8196
  43.           IF XMLLINHA(XMLIDX2:XMLIDX9) = WFIELDSEARCHEND
  44.               ADD 1 TO XMLIDX2
  45.               EXIT PERFORM
  46.           END-IF
  47.           IF XMLLINHA(XMLIDX2:1) = "<"
  48.                 MOVE "<" TO XMLFIELDRESULT
  49.                 MOVE 8186 TO XMLIDX2
  50.                 EXIT PERFORM
  51.           END-IF
  52.     END-PERFORM
  53.     IF XMLIDX2 > 8195 GO TO MAIN-99-EXIT.
  54.     SUBTRACT 1 FROM XMLIDX2.
  55.     SUBTRACT XMLIDX1 FROM XMLIDX2 GIVING XMLIDX3.
  56.     MOVE XMLLINHA(XMLIDX1:XMLIDX3) TO XMLFIELDRESULT.
  57.  MAIN-99-EXIT.
  58.     EXIT PROGRAM.  

Este código deixou de funcionar. Houve alterações?
Joseg is offline   Responder Con Cita