in case you still looking for a solution, here is the logic of "how to".
Again, this code is based on string read from DB2, but the idea is the same
.
ITschak
LOGICALREVERSE:
/*--------------------------------------------------------------*/
/*REVERSE CHAR FIELDS IN LOGICAL MANNER IN ORDER TO PRESERVE */
/*NUMERIC ORDER */
/*--------------------------------------------------------------*/
NUMWORDS = WORDS(SQLXA.I.SQLDATA)
KEEPLENGTH = LENGTH(SQLXA.I.SQLDATA)
SQLXA.I.SQLDATA = REVERSE(,
TRANSLATE(SQLXA.I.SQLDATA,HEBOLD,HEBNEW))
SQLXA.I.SQLDATA = STRIP(SQLXA.I.SQLDATA)
SQLXA.I.SQLDATA = STRIP(SQLXA.I.SQLDATA)
DO XINDEX = 1 TO NUMWORDS
/* HANDLE NUMERICS */
XWORD = WORD(SQLXA.I.SQLDATA,XINDEX)
IF (VERIFY(XWORD,ALLNOTNUM) = 0) THEN DO
ITERATE
END
SQLXA.I.SQLDATA = SUBWORD(SQLXA.I.SQLDATA,1,XINDEX-1),
REVERSE(XWORD) SUBWORD(SQLXA.I.SQLDATA,XINDEX+1)
END
SQLXA.I.SQLDATA = STRIP(SQLXA.I.SQLDATA)
IF (NUMWORDS < 2) THEN DO
/* HANDLE EMPTY AND SHORTER THEN 2 WORDS STRINGS */
SQLXA.I.SQLDATA = STRIP(SQLXA.I.SQLDATA)
RETURN
END
/* SAY RIGHT(I,5) ':' RIGHT(NUMWORDS,5) ':' SQLXA.I.SQLDATA
*/
/* ---------------------------------------------------- */
/* HANDLE ENGLISH WORDS THAT CHANGED POS DUE TO REVERSE */
/* ---------------------------------------------------- */
WORDF = ''
CNTF = 0
DO IV = 1 TO NUMWORDS
WORDC = WORD(SQLXA.I.SQLDATA,IV)
IF (VERIFY(WORDC,ENGLISH) = 0) THEN DO
WORDF = WORDF WORDC
CNTF = CNTF + 1
ITERATE
END
LEAVE
END
WORDL = ''
CNTL = 0
DO IV = NUMWORDS TO 1 BY -1
WORDC = WORD(SQLXA.I.SQLDATA,IV)
IF (VERIFY(WORDC,ENGLISH) = 0) THEN DO
WORDL = WORDL WORDC
CNTL = CNTL + 1
ITERATE
END
LEAVE
END
WORDF = STRIP(WORDF)
WORDL = STRIP(WORDL)
IF (CNTF = NUMWORDS) THEN DO
/* ------------------------------------------- */
/* STRINGIS ALL ENGLISH... */
/* ------------------------------------------- */
RETURN
END
/* WORDF = WORD(SQLXA.I.SQLDATA,1)
WORDL = WORD(SQLXA.I.SQLDATA,NUMWORDS)
*/
IF (NUMWORDS = 2) THEN DO
/* ------------------------------------------------- */
/* HANDLE STRING WITH ONLY TWO WORDS */
/* ------------------------------------------------- */
IF (WORDF ^= '') THEN DO
IF (WORDL ^= '') THEN DO
SQLXA.I.SQLDATA = STRIP(WORDL WORDF)
RETURN
END
SQLXA.I.SQLDATA = STRIP(WORDL WORDF)
RETURN
END
IF (WORDL ^= '') THEN DO
SQLXA.I.SQLDATA = STRIP(WORDL WORD(SQLXA.I.SQLDATA,1))
RETURN
END
SQLXA.I.SQLDATA = STRIP(SQLXA.I.SQLDATA)
RETURN
END
IF (WORDL ^= '') THEN DO
/* ----------------------------------- */
/* LAST WORD IS ENGLISH, MOVE TO FIRST */
/* ----------------------------------- */
IF (WORDF ^= '') THEN DO
/* ----------------------------------- */
/* FIRST WORD IS ENGLISH, MOVE TO LAST */
/* ----------------------------------- */
WORDX = NUMWORDS - CNTF - CNTL
SQLXA.I.SQLDATA = WORDL ,
SUBWORD(SQLXA.I.SQLDATA,CNTF+1,WORDX) ,
WORDF
SQLXA.I.SQLDATA = STRIP(SQLXA.I.SQLDATA)
RETURN
END
WORDX = NUMWORDS - CNTL
SQLXA.I.SQLDATA = WORDL ,
SUBWORD(SQLXA.I.SQLDATA,1,WORDX)
SQLXA.I.SQLDATA = STRIP(SQLXA.I.SQLDATA)
RETURN
END
IF (WORDF ^= '') THEN DO
/* ----------------------------------- */
/* FIRST WORD IS ENGLISH, MOVE TO LAST */
/* ----------------------------------- */
SQLXA.I.SQLDATA = SUBWORD(SQLXA.I.SQLDATA,CNTF+1) WORDF
SQLXA.I.SQLDATA = STRIP(SQLXA.I.SQLDATA)
RETURN
END
SQLXA.I.SQLDATA = STRIP(SQLXA.I.SQLDATA)
SQLXA.I.SQLDATA = SUBSTR(SQLXA.I.SQLDATA' ',1,KEEPLENGTH)
RETURN
Post by Seymour J MetzYeah, I was hot happy when they functionally stabilized DCF and BM. I'm
currently using LaTeX both for technical writing and for designing my own
T-shirts. I don't care for the syntax, but there are packages for the
sorts of things I want to do. Now if I could just find MiKTeX install files
I used to curse word pervert until I was forced to use m$ office.
(Free|Libre)Office is a step up, but I still want DCF, BookMaster/PC and
BookManager Build/PC, preferably on a Linux platform.
--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3
________________________________________
Sent: Tuesday, January 9, 2018 4:44 PM
Subject: Re: Transferring hebrew data from Db2 Z/OS to PC
Post by Seymour J MetzI would certainly want an editor to have reasonable handling of text
direction, with the user firmly in control of how the editor behaves.
I refer to WYSIWYG as what you see is all you get (WYSIAYG), and hate it.
It gives no clue as to what will happen if you make changes, while with a
markup language everything is clear.
I really dislike "Word Processors" like MS Word, or even LibreOffice.
Personally, I prefer an explicit "markup language" such as LaTex (using
TexStudio) or Docbook or Texinfo. I really liked IBM's Document Composition
Facility, back in the day.
Post by Seymour J Metz--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3
--
I have a theory that it's impossible to prove anything, but I can't prove
it.
Maranatha! <><
John McKown
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
--
ITschak Mugzach
*|** IronSphere Platform* *|* *Information Security Contiguous Monitoring
for Legacy **| *
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN