![]() |
Texte aus .txt auslesen aber nur eine bestimmte Zeile
Hallo
mit dem Code kann man die ganze Inhalt in der Datei .txt auslesen Ich möchte aber dies nicht in Memo oder ListBox importieren sondern in Edit (Einzelzeile) wenn ich den Code verwende, wird die letzte Zeile ausgelsen ! ![]() Ich möchte aber nur eine bestimmte Zeile auslesen. |
Re: Texte aus .txt auslesen aber nur eine bestimmte Zeile
oh man
da steht while not eof(f) do und du machst daraus einfach nur
Delphi-Quellcode:
der Rest bleibt Gleich.
i := 0;
while not eof(f) and (i < Zeilennummer)do inc(i); .. Deine Zeilennumer ist dann die die du haben willst. wenn deine TXT file so viele zeilen hat. anderfalls wird die Letzte Zeile zurückgegeben. |
Re: Texte aus .txt auslesen aber nur eine bestimmte Zeile
Dann lese nicht, solange die Datei noch nicht zu Ende ist, sondern bis du deine Datei gefunden hast. Also entweder einen Zähler mitlaufen lassen oder nach dem lesen überprüfen ob es deine Zeile ist. Vielleicht solltest du dich etwas mit programmiertechnischen Grundlagen auseinandersetzen, bevor du anfängst mit virtuellen Laufwerken durch die Gegend zu werfen, wenn du da noch keine Zeile verstehst, oder Ahnung von Programmierlogik hast...
|
Re: Texte aus .txt auslesen aber nur eine bestimmte Zeile
Hab mal folgendes für Dich geschrieben, muß evtl. angepasst werden, das Prinzip dürfte aber klar sein...
Delphi-Quellcode:
Aufruf z.B.
Function LeseZeileAusDatei(Dateiname : String; Zeile : Integer) : String;
VAR Zeilen : TStringList; Begin Zeilen := TStringList.Create; Zeilen.LoadFromFile(Dateiname); // Evtl. hier noch Fehlerbehandlung wenn Datei nicht gefunden... Try // Falls nicht vorhandene Zeile angegeben wurde.... Result := Zeilen[Zeile-1]; Except Result := ''; End; Zeilen.Free; End;
Delphi-Quellcode:
Hoffe geholfen zu haben,
Edit1.Text := LeseZeileAusDatei('c:\meinedatei.txt', 14); // Zeile Nr. 14 auslesen
SCRaT //EDIT: Source nochmal etwas umgeschrieben... |
Re: Texte aus .txt auslesen aber nur eine bestimmte Zeile
Hallo Corpsman
also wenn ich deinen Vorschlag nehme, dann bekomme ich immer nur die 1. Zeile !!!
Delphi-Quellcode:
Die Funktion von Scart funktioniert super !
procedure TForm1.Button3Click(Sender: TObject);
var i:Integer; begin AssignFile(Datei,'test.txt'); //AssignFile(Datei,'c:\text.txt'); Reset(Datei); i := 0; while not eof(datei) and (i = 5)do inc(i); //while not eof (Datei) do begin ReadLn(Datei,namedat); Edit2.Text:=namedat; ListBox1.Items.Add(namedat); //ListBox1.Items.Add(namedat + ' nicht erreichbar'); //CloseFile(Datei); end; end;
Delphi-Quellcode:
Nun möchte ich dass beim Fehler wie z.B. die Datei nicht Vorhanen, ... Keine Meldung erscheint_____ ___ __ _ _ _ _____ | _ \ / | | \ | | | | / / | ____| | | | | / /| | | \| | | |/ / | |__ | | | | / / | | | |\ | | |\ \ | __| | |_| | / / | | | | \ | | | \ \ | |___ |_____/ /_/ |_| |_| \_| |_| \_\ |_____| es soll nichts passieren und bleibt die Zeile leer. :gruebel: |
Re: Texte aus .txt auslesen aber nur eine bestimmte Zeile
Zitat:
Zitat:
|
Re: Texte aus .txt auslesen aber nur eine bestimmte Zeile
Zitat:
dann solltest Du den Fehler abfangen. Hierzu kannst du try except verwenden oder IOResult auswerten. Viel Spaß beim probieren, denn nur der Versuch macht klug. Grüße Klaus |
Re: Texte aus .txt auslesen aber nur eine bestimmte Zeile
hossa,
wie hier schon einige geschrieben haben , ist es sehr schlecht einfach einen Code zu Copieren ohne dessen Funktion zu verstehen.
Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
var i:Integer; begin AssignFile(Datei,'test.txt'); //AssignFile(Datei,'c:\text.txt'); Reset(Datei); i := 0; while not eof(datei) and (i = 5)do // inc(i); <-- hier ist die While die i auf 5 setzt und Endet (* Dieser Block wird dann nach der While aufgerufen und kann natürlich nur 1 mal die 1. Zeile Lesen *) //while not eof (Datei) do begin inc(i); // <-- so wäre es Richtig gewesen. ReadLn(Datei,namedat); Edit2.Text:=namedat; ListBox1.Items.Add(namedat); //ListBox1.Items.Add(namedat + ' nicht erreichbar'); //CloseFile(Datei); end; end; |
Re: Texte aus .txt auslesen aber nur eine bestimmte Zeile
Zitat:
|
Re: Texte aus .txt auslesen aber nur eine bestimmte Zeile
Guten Morgen,
ich nochmal, wie Du vielleicht weißt gibt es für datensatzorientierte Dateien die Funktion Seek um zu einem bestimmten Datensatz zu springen. Für TextFiles findest Du ![]() Grüße Klaus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:50 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