Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: robertpp am 29.09.04 - 14:47:16

Titel: do while eof - Problem
Beitrag von: robertpp am 29.09.04 - 14:47:16
Hallo ich hab wie im Betreff schon erwähnt ein Problem mit dem EOF

Ich hab ein Script:
   Open ExportD_Pfad & ImpReport & ".dat" for Input as #1
   Do While Eof(1)<>-1
      Input #1, isvalueemtpy
      if isvalueemtpy <> "" then
         Set PDFPub = ImpRep.PublishPDF
         PDFPub.Publish (PDF_Pfad & ImpReport & ".pdf")
         ImpRep.CloseReport

         cmd= blatobj +" "+ msgbody+ " "+ server +" "+ mailfrom +" "+ mailto +" "+ attobj +" "+ subject
         x=shell (cmd,7)
      else
         msgbody="D:\Cognos\Cog_0610_Work\Cog_Mail\Empty_File.txt"
         cmd= blatobj +" "+ msgbody+ " "+ server +" "+ mailfrom +" "+ mailto +" "+ subject
         x=shell (cmd,7)
      end if
   Loop

Das eingentlich ja ganz gut arbeitet aber:
1. weiß ich nicht was genau das <>-1 bedeutet. Ich glaub aber dadurch wird die do while Schleife mindestens einmal durchlaufen. Stimmt das?
2. bräuchte ich wenn auch mehrere Einträge in dem File sind das die Schleife trotzdem nur einmal durchlaufen wird das es ja macht wenn das File leer ist.
danke
Titel: Re: do while eof - Problem
Beitrag von: Glombi am 29.09.04 - 14:52:42
Ad 1)
-1 = True oder wie soll man das sonst interpretieren.

Ich mache es immer so:
fileNumber = Freefile()
Open filePath For Input As fileNumber
Do Until Eof (fileNumber)...

Freefile ist besser als hardcodierte Filenummer.

Ad 2) Ich fürchte, dass habe ich nicht so ganz verstanden  ???

Andreas
Titel: Re: do while eof - Problem
Beitrag von: Hoshee am 29.09.04 - 14:56:52
Yoo,

verstanden hab ich es auch nicht. EOF(fileNum) liefert True oder False.
Nimm doch einfach

Do While Not EOF(fileNum)
.
.
.
Loop

Gruss ...

Hoshee
Titel: Re: do while eof - Problem
Beitrag von: robertpp am 29.09.04 - 15:23:29
So nochmals zu zwei:

in dem txt-file sind 100 einträg und er soll nur einmal nachsehen wieviele es sind sind. Sind es 0 einträge dann soll er von der if- abfrage den else teil machen (das tut er auch)  sind es aber jetzt wirklich 100 oder 10000 einträge dann soll er nur einmal in das file hineingehen und nicht 100 oder 10000 mal die do while schleife durchlaufen!
dh irgendwie einen abbruch nach einmal der do while schleife.
Titel: Re: do while eof - Problem
Beitrag von: Glombi am 29.09.04 - 15:25:17
Dann schreib doch einfach ein
Exit Do             'Die wahrscheinlich kürzeste Schleife der Welt ;-)
vor das Loop

Andreas
Titel: Re: do while eof - Problem
Beitrag von: robertpp am 29.09.04 - 15:31:41
JA warum hab ich das nicht gleich so gemacht wie du es mir gesagt hast!!!
 ;D ;D