Autor |
Beitrag |
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 22.12.08 20:36
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 22.12.08 21:44
Hmm, lecker die 303 Erbsen. 
|
|
der organist 
      
Beiträge: 467
Erhaltene Danke: 17
WIN 7
NQC, Basic, Delphi 2010
|
Verfasst: Di 23.12.08 00:11
momentan sieht meine Lösung so aus, will aber nich richtig funzen  . Vllt ist auch einfach mein Ansatz falsch. Wichtig ist, dass in der letzten Zeile des Dokumentes "END." steht, damit ich weiss (besser noch, damit das Programm weiss), wann die Datei zu Ende ist:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| while HellFreezes do begin ReadLn(input, Line); inc(Finish); if Line = 'END.' then begin Hellfreezes:=false; end; end; |
HellFreezes ist eine Booleanariable, die voher auf True gesetzt wurde, input die Textdatei, ich hab auch schön AssignFile benutzt, naja und Line ist ein String, wer hätte es gedacht.
_________________ »Gedanken sind mächtiger als Waffen. Wir erlauben es unseren Bürgern nicht, Waffen zu führen - warum sollten wir es ihnen erlauben, selbständig zu denken?« Josef Stalin
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Di 23.12.08 00:36
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Di 23.12.08 03:31
Naja, ganz so einfach ist es denn nun doch nicht, der Inhalt der Zeile müsste dann noch geprüft werden. Das könnte dann so aussehen:
Delphi-Quelltext 1:
| while not Eof(F) and (AnsiLowerCase(trim(Zeile)) <> 'end.') do |
Wobei die Zeile dann im Gegensatz zu meinem letzten Beispiel doch wieder in einer Stringvariablen gepuffert werden muss.
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Di 23.12.08 04:50
Warum ist es nicht so einfach? Wenn das "end." in der letzten Zeile steht (das sagte er ja), dann muss das doch gar nicht geprüft werden.
Einfach bis zum Ende der Datei die Zeilen zählen und fertig, dass in der letzten Zeile dann das "end." steht ändert doch nix an der Zeilenanzahl. 
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Di 23.12.08 17:35
Und öffnest Du die Datei, fügst ein oder zwei Zeilenumbrüche hinzu, funktioniert das Ganze anscheinend nicht mehr. Wieso verlasst Ihr Euch eigentlich immer darauf, dass alles schon irgendwie stimmen wird?
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Di 23.12.08 17:39
Ich habe Vorbedingungen und Nachbedingungen, und angegeben war die Vorbedingung, dass "end." in der letzten Zeile steht, nicht, dass danach noch Leerzeichen kommen. Also muss ich um die Nachbedingung zu erreichen auch nicht davon ausgehen, dass die Vorbedingung nicht erfüllt war und nach der dann doch nicht letzten Zeile noch leere kommen oder ähnliches.
Wenn die Spezifikation der Datei doch nicht gestimmt hat muss das eben angepasst werden. Aber zunächst habe ich keinen Grund an einer Aussage zu zweifeln. 
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Di 23.12.08 17:47
|
|
|