|
Peter Dow wrote: > I realize you probably won't use this solution, but COBOL has an UNSTRING >opcode: > > unstring longfield delimited by "~" into fielda, fieldb, fieldc, fieldd >on overflow perform wrong-nbr-of-flds. > Peter, Have you ever tried using UNSTRING with a table as your target? Following is an example and it also demonstrates how to use a variable delimiter as you proceed through the string so that either spaces or quotes could be used interchangeably. 01 WS-UNSTRING-TABLE. 05 WS-UNSTRING-ENTRIES OCCURS 30 TIMES INDEXED BY WUT-NDX. 10 WS-RECEIVE-FIELD PIC X(30). 10 WS-DELIMITER PIC X. 10 WS-CHAR-COUNT PIC 999 COMP-3. 01 WS-POINTER PIC 999 COMP-3. PROCEDURE DIVISION. INITIALIZE WS-UNSTRING-TABLE MOVE 1 TO WS-POINTER PERFORM VARYING WUT-NDX FROM 1 BY 1 UNTIL WUT-NDX = 30 OR WS-POINTER > 80 IF INPUT-RECORD(WS-POINTER:1) = QUOTE OR '"' MOVE INPUT-RECORD(WS-POINTER:1) TO SC-DELIMITER ADD 1 TO WS-POINTER ELSE MOVE SPACE TO SC-DELIMITER END-IF UNSTRING INPUT-RECORD DELIMITED BY ALL SC-DELIMITER INTO WS-RECEIVE-FIELD (WUT-NDX) DELIMITER IN WS-DELIMITER (WUT-NDX) COUNT IN WS-CHAR-COUNT (WUT-NDX) WITH POINTER WS-POINTER END-UNSTRING IF WS-CHAR-COUNT(WUT-NDX) = ZERO SET WUT-NDX DOWN BY 1 END-IF END-PERFORM -- Terry Grider tgrider@arkansas.net +--- | This is the Midrange System Mailing List! | To submit a new message, send your mail to MIDRANGE-L@midrange.com. | To subscribe to this list send email to MIDRANGE-L-SUB@midrange.com. | To unsubscribe from this list send email to MIDRANGE-L-UNSUB@midrange.com. | Questions should be directed to the list owner/operator: david@midrange.com +---
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.