Как исправить ошибку «Ввод за концом файла»? [закрыто]
Я должен найти все шаги, содержащиеPGM=FTP
затем прочитайте все строки, пока не найдете другой шаг, который не имеетPGM=FTP
, Это может быть что угодно, кромеFTP
, Мне нужно, чтобы весь кусок строк был записан в другой столбец с соответствующим именем программы.
Это пример ввода:
//GPFCGI1 DD DSN=PHGP.GPFCGIM.CGI.PATH,DISP=SHR
//GPFPWO2 DD DSN=PHGP.GPFMKT2.MKT.ESDS,DISP=SHR
//GPFPWO4 DD DSN=PHGP.GPFMKT4.MKT.ESDS,DISP=SHR
//SYSOUT DD SYSOUT=*
//SYSIN DD *
//STEP006 EXEC PGM=FTP
//FILE01 DD DSN=PHGP.GPFMKT2.MKT.ESDS,DISP=SHR
//FILE02 DD DSN=PHGP.GPFMKT4.MKT.ESDS,DISP=SHR
//SYSOUT DD SYSOUT=*
//SYSIN DD *
OPEN HKGSPADD.AP.MANULIFE.COM
NOLOG *****Dummy Member Include**********************************
ASCII
PUT %FILE01,ESDS,FB,80,80 CXX_TRIAL4_ELIGIBLE_PAC_PAP.CSV
PUT %FILE02,ESDS,FB,86,86 CXX_TRIAL4_WORK_ELIGIBLE_PAC_PAP.DAT
BYE
//STEP007 EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
DELETE ( PHGP.GPFMKT1.MKT.INT.KSDS ) PURGE CLUSTER
DELETE ( PHGP.GPFMKT2.MKT.ESDS ) PURGE CLUSTER
DELETE ( PHGP.GPFMKT3.MKT.KSDS ) PURGE CLUSTER
DELETE ( PHGP.GPFMKT3.MKT.TXT.ESDS ) PURGE CLUSTER
DELETE ( PHGP.GPFMKT4.MKT.ESDS ) PURGE CLUSTER
//*
Я создал этот Sub, но он дает мне «Ошибка выполнения 62: Ввод за концом файла». Зачем?
Sub Define()
Dim file As Object
Dim flag As String
flag = True
folder = "D:\DOWNLOADS\New folder"
Set objFSO = CreateObject("Scripting.FileSystemObject")
J = 1
'Opening the file in READ mode
Set FLD = objFSO.GetFolder(folder)
For Each file In FLD.Files
Set objFile = objFSO.OpenTextFile(file)
Do While Not objFile.AtEndOfStream
If contents Like "*PGM=FTP" Then
'If InStr(contents, "*PGM=FTP") Then
flag = True
contents3 = contents
Do Until flag = False
strline = objFile.Readline
If strline Like "//STEP*" Then
flag = False
contents = strline
Else
contents3 = contents3 & vbNewLine & strline
End If
Loop
Sheets(1).Cells(J, 1).Value = file.Name
Sheets(1).Cells(J, 2).Value = contents3
J = J + 1
Else
contents = objFile.Readline
End If
Loop
Next
objFile.Close
End Sub