Zitat Zitat von BenderD
Hi,

poste mal deine Parameter vom open, irgendwas machst du da verkehrt

Dieter Bender

p readFile b export

d readFile pi 256 dim(9999)
d pFileName 100a

* //Work Variables
d BytesRead s 10i 0 inz(1)
d File s 100
d FileOpen s 10i 0
d DataRead s 32767a
d Data s 32767a
d Eor s 2a inz(X'0D25')
d PosStart s 5 0 inz(1)
d PosEnd s 5 0 inz(1)
d PosDiff s 5 0

d ayReadResult s 256 dim(9999)
d ayReadI s 5 0 inz(0)

d ofl s 10i 0
d mode s 10u 0
d codep s 10u 0

* //Open File! If error, FileOpen return '-1'
c eval File = %trim(pFileName) + x'00'
c eval ofl=O_RDONLY+O_TEXTDATA
c eval mode = S_IRUSR
c eval codep = 273
c eval FileOpen = open(%add
(Filepenflags
c :mode:codepage)
c eval FileOpen = open(%addr(File)fl)

* //Bei Fehler leeres Array zurückliefern
c if FileOpen < 0
c eval ayReadI = (ayReadI + 1)
c eval ayReadResult(ayReadI) = *blank
c return ayReadResult(ayReadI)
c endif

c dow BytesRead > 0

* //Read file and save in buffer DataRead
c eval BytesRead = read(FileOpen
c : %addr(DataRead)
c : %size(DataRead))
c if BytesRead > 0

* //Read from first blank till second blank and save the diff in Array
c dou PosEnd = *zero
c if %scan(EorataRead:PosStart) = PosStart
c eval PosStart = (PosStart + 1)
c endif
c eval PosEnd = %scan(EorataRead:PosStart)
c if PosEnd <= 0
c leave
c endif
c eval ayReadI = (ayReadI + 1)
c eval PosDiff = (PosEnd - PosStart)
c eval ayReadResult(ayReadI) = %subst

(DataRead
c : PosStart: PosDiff)
c eval PosStart = PosEnd
c enddo
c endif

c enddo

* //Close the File
c callp close(FileOpen)

c return ayReadResult

preadFile e

Kannst du den Fehler erkennen??