Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Buchstabe aus einer Zeile auslesen (https://www.delphipraxis.net/14138-buchstabe-aus-einer-zeile-auslesen.html)

Luckie 2. Jan 2004 23:28

Re: Buchstabe aus einer Zeile auslesen
 
Zitat:

Zitat von franz
Vorsicht! Das wird sehr sehr schwierig!

Wie so das?
AssignFile, Reset, ReadLn heißen die Zauberwörter aus der Hilfe. ;)

franz 3. Jan 2004 21:36

Re: Buchstabe aus einer Zeile auslesen
 
@Luckie

Das ist leider nur die halbe Wahrheit. AssignFile weißt nur einer Dateivariablen eine Datei zu. Die Datei muss auch noch geöffnet (Reset) und natürlich auch wieder geschlossen (CloseFile) werden. Außerdem muss neben der Dateivariablen noch eine weitere deklariert werden, die den Wert von ReadLn aufnehmen kann. ReadLn ist keine Funktion! Wenn die Datei abgearbeitet werden soll ist zusätzlich noch ein EOF (End of file) nötig.

Delphi-Quellcode:
var S: String;
    mFile: TextFile;
begin
  AssignFile(mFile,'Dateiname'); // Datei zuweisen
  Reset(mFile); // Datei öffnen
  try
    Readln(mFile,S); // Erste Zeile der Datei lesen
    while not Eof(mFile) do // Datei abarbeiten
      begin
        Application.ProcessMessages; // Windows Botschaftenwarteschleife abarbeiten

        // Quelltext für die Verarbeitung des übergebenen Strings hier einfügen. Der String wurde an S übergeben.

        Readln(mFile,S); // Nächste Zeile lesen
      end;
   
    // Quelltext für die Verarbeitung des letzten übergebenen Strings hier einfügen. Der Einsatz einer Prozedur kann hilfreich sein.

  finally
    CloseFile(mFile); // Datei schließen. Wenn die Datei nicht geschlossen wird, ist sie erst wieder nach einem Windowsneustart verfügbar!
  end;
end;
Das ist noch ein einfaches Beispiel. Wenn die Datei mehrere abzuarbeitende sogenannte Sections hat, habe ich schon einmal mehr als 400 Zeilen Programmcode gebraucht. Der Einsatz von TIniFile kam bei dieser Datei nicht in Frage, da die Datei sowohl Sections mit eckigen, als auch mit runden Klammern hatte.

Zumindest funktioniert das so bei Delphi 5. Eine Stringliste hat allerdings den Nachteil, dass sie nicht viel mehr als 32.000 Zeilen enthalten darf, da sonst der Fehler auftritt, dass eine Zeile nicht eingefügt werden kann. An was das liegt weiß ich auch nicht. Entweder an der Arbeitsspeichergröße oder aus einem anderen Grund.

:arrow: P. S. Da dies nicht mehr zum Thema passt, kannst du dieses dementsprechend verschieben und einen Link von dieser Seite aus einfügen?


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:00 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz