Domino 9 und frühere Versionen > Entwicklung

do while eof - Problem

(1/2) > >>

robertpp:
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

Glombi:
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

Hoshee:
Yoo,

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

Do While Not EOF(fileNum)
.
.
.
Loop

Gruss ...

Hoshee

robertpp:
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.

Glombi:
Dann schreib doch einfach ein
Exit Do             'Die wahrscheinlich kürzeste Schleife der Welt ;-)
vor das Loop

Andreas

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln