0
私は行の10文字目を "C"と見なしてそこからCを削除して次の行に追加するコードを書いていますpsファイルで。ファイル内のすべてのレコードは、1つのレコード(任意のレコードでも可)を除く8文字です。REXXのPUSHコマンドで8文字以上のファイルを書き込めません
A2f6k1GG C
B3g7l2HH
C4h8m3II
D5i9n4JJ
所望の出力は次のとおりです:
A2f6k1GG
B3g7l2HH C
C4h8m3II
D5i9n4JJ
マイREXXコードは次のとおりです。私は受け付けており
/*REXX*/
TRACE I
/* READ PASSWORD FILE */
ADDRESS TSO "ALLOC F(INFILE1) DSN('PPPRG3.PASSWRD.LIST') SHR REU"
/* INFILE1 is a logical name for the file */
"EXECIO * DISKR INFILE1 (FINIS STEM PASSWRD."
/* PASSWRD is the stem (array) that holds the data */
"FREE F(INFILE1)"
STRING1 = ""
STRING2 = ""
/* S12 = STRING1 || " " || STRING2 */
J = 1
DO J = 1 TO PASSWRD.0
PASSWRD.J = STRIP(PASSWRD.J)
IF SUBSTR(PASSWRD.J,10,1) = "C" THEN
DO
STRING1 = SUBSTR(PASSWRD.J,1,8)
Y = J +1
STRING2 = PASSWRD.Y
SAY STRING1 STRING2
ST3 = STRIP(STRING2,"B"," ") || " C"
SAY ST3
ADDRESS TSO "ALLOC DA('PPPRG3.PASSWRD.LIST') F(updatedd) OLD"
"EXECIO 1 DISKRU updatedd "J" (LIFO"
PULL line
PUSH STRING1
"EXECIO 1 DISKW updatedd"
SAY "UPDATE1"
"EXECIO 1 DISKRU updatedd "Y" (LIFO"
PULL line
PUSH ST3
"EXECIO 1 DISKW updatedd (FINIS"
SAY "UPDATE2"
"FREE F(updatedd)"
END
ELSE
J = J + 1
END
出力は次のとおりです。
以下はその中で私が更新しています私の入力ファイルですA2f6k1GG
B3g7l2HH
C4h8m3II
D5i9n4JJ
私の入力ファイルはVB形式です。私はそれをFBに変更しましたが、今は正常に動作しています。 – bp89