![]() |
Wo ist Typ text ?
Hi Leute,
habe hier einen Text, den ich zeilenweise auswerten muß.
Code:
Ist nicht viel, geht so aber nicht. Delphi kennt den Typ text nur bei Konsolenanw. Nun brauche ich weder eine Listbox, noch sonstwas auf dem Bildschirm, höchstens einen Zähler, dafür aber DB-Komponenten.
VAR t : text;
zeile : string; begin assign (t,'TEST'); reset (t); WHILE not eof (t) DO BEGIN readln (t,zeile); // Zeile auswerten. END; end; Soll ich da jetzt eine Konsolenanwendung draus machen oder was bietet sich als einfacher Ersatz an? Gruß Hansa [edit]Doppelpost gelöscht; by Daniel B.[/edit] |
Hallo Hansa,
das nennt sich TextFile und funktioniert schon noch. Die Var nicht als Text deklarieren, sondern als TextFile. Siehe auch OH --> TextFile. Grüsse, Daniel :hi: |
Mal abgesehen davon, dass sich der Code bei mir unter Delphi 6 durchaus kompilieren lässt, könntest Du auch einfach eine StringListe nehmen:
Code:
[b]Procedure[/b] Foo;
[b]var[/b] Index : Integer; data : TStringList; [b]begin[/b] data:= TStringList.Create; [b]TRY[/b] data.LoadFromFile( 'TEST' ); [b]For[/b] Index:= 0 [b]To[/b] data.Count-1 [b]Do[/b] [b]Begin[/b] [color=#000080]// data[Index] auswerten[/color] [b]End[/b]; [b]FINALLY[/b] data.Free; [b]END[/b]; [b]end[/b] |
Danke an beide Daniels !
Verstehe zwar immer noch nicht, worin die Notwendigkeit bestanden hat, an den Standard-Pascal Sachen rumzufummeln, aber es geht einfach so : text --> textfile assign --> AssignFile Ja, die Stringliste wäre eigentlich auch zu gebrauchen, aber wenn man mal das free vergißt ? :mrgreen: Deshalb : TextFile. Gruß Hansa |
Hi Hansa,
genauso kann man das CloseFile() vergessen, wie du es nämlich auch tust... MfG, d3g |
Hi d3g,
hast ja Recht. :angle: Aber nur sofern AssignFile und Reset Speicher allokieren. :mrgreen: Gruß Hansa |
Moin Hansa,
AssignFile ist nicht das Problem. Das braucht Pascal nur für interne Zwecke. Bei Reset/Rewrite wird intern dann die API CreateFile aufgerufen, und dadurch ein Dateihandle belegt, dass über CloseFile wieder freigegeben werden muss. |
Hi,
stimmt alles, ist aber Haarspalterei. Bei einem vergessenen close ist ein FileHandle verbraucht, schön und gut. Bei vergessenem free der dafür angeforderte Speicherplatz, was mehr ist, als nur der Dateiname. :bouncing4: :bounce1: Das Thema bietet sich aber dafür an, eine Nanosekunde an Rechenzeit zu gewinnen. Gruß Hansa :mrgreen: |
Moin Hansa,
dann mach' das mal in 'ner Schleife, unter 9x.... ;-) |
Hallo Christian,
hehehe :mrgreen: , einwandfrei, habe zu spät gesehen, daß ich das nicht dabeigeschrieben habe. Vielleicht hast Du ja meine Frage gesehen, wie man verhindert, daß ein Programm aus Versehen mehrfach gestartet wird. Deshalb habe ich letztendlich Semaphoren eingebaut. Durch solche Sachen passieren dann die Effekte mit File-Handles usw. Gewesen wars natürlich keiner. :angle: Das ist immer köstlich, so etwas herauszufinden und jemandem zu erklären, der es sowieso nicht versteht und es wieder so macht, sobald man zur Tür raus ist. Gruß Hansa |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:02 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz