AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Texte aus .txt auslesen aber nur eine bestimmte Zeile
Thema durchsuchen
Ansicht
Themen-Optionen

Texte aus .txt auslesen aber nur eine bestimmte Zeile

Ein Thema von taktaky · begonnen am 10. Sep 2007 · letzter Beitrag vom 13. Sep 2007
Antwort Antwort
Seite 1 von 3  1 23      
taktaky
(Gast)

n/a Beiträge
 
#1

Texte aus .txt auslesen aber nur eine bestimmte Zeile

  Alt 10. Sep 2007, 20:04
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 !

Der Code ist da

Ich möchte aber nur eine bestimmte Zeile auslesen.
  Mit Zitat antworten Zitat
Benutzerbild von Corpsman
Corpsman

Registriert seit: 8. Nov 2005
Ort: nähe Stuttgart
981 Beiträge
 
Delphi XE2 Professional
 
#2

Re: Texte aus .txt auslesen aber nur eine bestimmte Zeile

  Alt 10. Sep 2007, 20:07
oh man

da steht while not eof(f) do

und du machst daraus einfach nur
Delphi-Quellcode:
i := 0;
while not eof(f) and (i < Zeilennummer)do
inc(i);
..
der Rest bleibt Gleich.

Deine Zeilennumer ist dann die die du haben willst.

wenn deine TXT file so viele zeilen hat. anderfalls wird die Letzte Zeile zurückgegeben.
Uwe
My Sitewww.Corpsman.de

My marble madness clone Balanced ( ca. 70,0 mb ) aktuell ver 2.01
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#3

Re: Texte aus .txt auslesen aber nur eine bestimmte Zeile

  Alt 10. Sep 2007, 20:08
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...
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.028 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Texte aus .txt auslesen aber nur eine bestimmte Zeile

  Alt 10. Sep 2007, 20:12
Hab mal folgendes für Dich geschrieben, muß evtl. angepasst werden, das Prinzip dürfte aber klar sein...

Delphi-Quellcode:
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;
Aufruf z.B.

 Edit1.Text := LeseZeileAusDatei('c:\meinedatei.txt', 14); // Zeile Nr. 14 auslesen Hoffe geholfen zu haben,

SCRaT

//EDIT: Source nochmal etwas umgeschrieben...
Michael Kübler
  Mit Zitat antworten Zitat
taktaky
(Gast)

n/a Beiträge
 
#5

Re: Texte aus .txt auslesen aber nur eine bestimmte Zeile

  Alt 10. Sep 2007, 21:02
Hallo Corpsman

also wenn ich deinen Vorschlag nehme, dann bekomme ich immer nur die 1. Zeile !!!
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);
         //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;
Die Funktion von Scart funktioniert super !
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.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#6

Re: Texte aus .txt auslesen aber nur eine bestimmte Zeile

  Alt 11. Sep 2007, 06:43
Zitat von taktaky:
also wenn ich deinen Vorschlag nehme, dann bekomme ich immer nur die 1. Zeile !!!
Willst du dich nicht langsam mal damit beschäftigen anstatt nur Copy&Paste? Was macht er denn in der While Schleife laut dem Code? Welche Befehle greifen auf die Datei zu und tut er dies auch in der Schleife? Wie könnte er in die 5. Zeile kommen?

Zitat von taktaky:
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.
Steht in der Hilfe genauso wie hier im Forum. Ansonsten: neue Frage neuer Thread - was bei der Frage aber unnötig sein sollte...
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: Texte aus .txt auslesen aber nur eine bestimmte Zeile

  Alt 11. Sep 2007, 07:42
Zitat von taktaky:
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:
Guten Morgen,

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
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von Corpsman
Corpsman

Registriert seit: 8. Nov 2005
Ort: nähe Stuttgart
981 Beiträge
 
Delphi XE2 Professional
 
#8

Re: Texte aus .txt auslesen aber nur eine bestimmte Zeile

  Alt 11. Sep 2007, 07:52
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;
Uwe
My Sitewww.Corpsman.de

My marble madness clone Balanced ( ca. 70,0 mb ) aktuell ver 2.01
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#9

Re: Texte aus .txt auslesen aber nur eine bestimmte Zeile

  Alt 11. Sep 2007, 08:05
Zitat von Klaus01:
Zitat von taktaky:
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.
Guten Morgen,

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
Allerdings ist das "verschlucken" einer Fehlermeldung keinesfalls sinnvoll ..
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#10

Re: Texte aus .txt auslesen aber nur eine bestimmte Zeile

  Alt 11. Sep 2007, 08:06
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 TextSeek hier.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:50 Uhr.
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