![]() |
Prozeduren und Funktionen für Textdateien
Nabend all =)...
Ich bin gerade am Lernen für meine morgige Programmiersprachen 2 Klausur ^^ und ich wollte mir noch einmal die Dateioperationen anschauen und jetzt werd ich aus dem Skript unseres Prof. Dr. nich mehr schlau, und zwar weiß ich nicht was SeekEoln {gehe ich damit jetzt zur nächsten variablen die durch whitespaces von der letzten getrennt war, oder direkt zum ende der zeile?} und SeekEof {gehe ich gleich zum ende der datei oder auch wieder zur nächsten variablen?} machen und ich sehe nicht den nutzen von SetTextBuffer und Flush wäre schön, wenn es mir jmd eben erklären könnte, ich blick es grad einfach nicht (kann auch mit der Uhrzeit zusammenhängen). :shock: Greetz Till |
Re: Prozeduren und Funktionen für Textdateien
Hast du dir die OH mal angesehn?
Da steht eigentlich alles ganz genau drin. Zitat:
Dieses setzt einen neuen/eigenen Textpuffer (Zwischenspeicher) die "alten" Textfunktionen werden über einen interen Puffer umgeleitet, also Schreib/Lesezugriffe gehen nicht direkt an die Festplatte. Intern wird von nur ein 128 Byte Textpuffer eingerichtet (nicht grad ein optimaler Wert) und mit dieser Funktion kann man bestimmt einen eigenen Puffer anzugeben (jedenfalls ist es Delphiseitig zumindestens möglich einen Eigenen zu verwenden) ... z.B. mit einer anderen Größe. Flush leert diesen Puffer. also es sort z.B. bei Schreibzugriffen dafür, daß die "geschriebenen" Strings/Texte tatsächlich in die Datei eingetragen werden und nicht nur im Puffer rumliegen.
Delphi-Quellcode:
Rewrite(F, 'Test.txt');
WriteLn(F, 'Test'); // hier ligt der String "Test" nur im Puffer, also die Datei ist noch 0 Byte groß Flush(S); {oder CloseFile(F); oder weitere WriteLn(und Co.), welche größer als der Puffer sind} // jetzt steht "Test" erst in der Datei ... also Datei ist größer als 0 Byte Aber die anderen Funktionen sind definitiv ausreichend beschrieben. |
Re: Prozeduren und Funktionen für Textdateien
Ich denke wenn man die ersten beiden ausschreibt, dann wird das schon klar...
Seek End Of Line (seekeoln) Seek End Of File (seekeof) Und Flush sorgt dafür, dass der Dateipuffer auf den Datenträger übertragen werden. Wenn du was schreibst wird das nicht sofort auf den Datenträger gespeichert, sondern erst wenn eine gewisse Menge an Änderungen angefallen ist. Dieser Puffer beschleunigt somit den Datenzugriff, etc. Und Flush sagt nun: schreib alle Änderungen nun erstmal in die Datei bitte. |
Re: Prozeduren und Funktionen für Textdateien
Heißt ja auch SetTextBuf - mein fehler ^^...
Ja, geguckt hab ich - ich hab nur ganz gepflegt die Description überlesen ^^... aber vielen dank das hilft mir schon mal sehr weiter =) Naja, um 1Uhr 42 ist mir das nicht mehr so klar :mrgreen: :wink: aber vielen Dank :) |
Re: Prozeduren und Funktionen für Textdateien
[ot]
Zitat:
aber im Prinzip stimmt Muetze's Aussage [/ot] [edit] OK, SetTextBuf kennt meine OH und wenn ich mir dieses durchles ... lieg ich ja ziemlich richtig :angel2: [edit=MrSpock]add - Tag Turch edit - tag ersetzt (wegen Formatierungsproblem). Mfg, MrSpock[/edit] |
Re: Prozeduren und Funktionen für Textdateien
Zitat:
|
Re: Prozeduren und Funktionen für Textdateien
Zitat:
Es wird nur der Textpuffer per WriteFile in die Datei geschrieben und der Puffer geleert. und da die Dateien mit aktiver Windowspufferung geöffnet sind, ist somit zwar der Text zumindestens an Windows übergeben, aber nicht mit Sicherheit auf der Platte (wenn man z.B. die Pufferung in der Festplatte ignoriert) Flush ruft TextRect(F).InOutFunc auf, welches bei Rewrite mit System.TextOut verknüpft ist und dieses macht kein FlushBuffers. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:33 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