![]() |
ausgeben bestimmter informationen aus txt datei
Hallo!
Bin noch relativ neu in Delphi. Folgendes: Ich habe mehrere txt-Dateien. Im Inhalt derer befinden sich sich wiederholende Zeichenketten, welche auch nur eine Zeile lang sind. Nun möchte ich eine der Dateien auslesen und die verschiedenen Zeichenketten suchen lassen und in mehreren Feldern darstellen. Die Zeichenketten sind aber zT an unterschiedlichen Positionen, sodass ich keine bestimmte Zeile definieren kann. Beispiel: -[o]- --- > Start of Transmission < --- -[o]- || Status: Mission 1 || || Mission: Neuanfang || || Teilmission 2: Piraterie || || Geheimhaltungsstufe: rot || Ich habe mehrere Labels erstellt mit Status, Mission, etc und nun soll darunter/dahinter "Mission 1, Neuanfang, etc" eingetragen werden. Wie geht das genau? Danke schonmal für eure antworten. gruß |
Re: ausgeben bestimmter informationen aus txt datei
hi scumi!
weißt du wie du aus dateien ausliest?
Delphi-Quellcode:
das ist erstmal das öffnern der datei
var f:textfile;
begin assignfile(f,file.txt'); reset(f); //weitertext unten beschrieben closefile(f); zum lesen nimmst du
Delphi-Quellcode:
wobei such eine string variable ist in der die zeile kommt!
readln(f,such);
so, um einen bestimmte zeichenfolge zu suchen musst du:
Delphi-Quellcode:
machen. reicht dir das?
pos('was',wo);
mfg mr.unbekannt p.s. bei // dürfte der text eigentlich nur blau sein der rest nicht |
Re: ausgeben bestimmter informationen aus txt datei
Dachte mit openfromfile, aber das wär ja öffnen und net auslesen. *merk* Ich kanns so erstmal versuchen, aber so richtig durchsteigen tu ich noch nicht :)
trotzdem danke... |
Re: ausgeben bestimmter informationen aus txt datei
na was brauchstn noch?
Delphi-Quellcode:
noch fragen?
assignfile(f,'help.txt'); //datei der variable f zuordnen
reset(f); //datei zum lesen öffnen bei schreiben wäre es rewrite readln(f); //eine zeile lesen closefile(f); //datei schließen |
Re: ausgeben bestimmter informationen aus txt datei
Vielleicht meinst du LoadFromFile von TStringList?
Damit kannst du auch recht einfach mit Textdateien umgehen:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var List: TStringList; begin List := TStringList.Create; List.LoadFromFile('C:\text.txt'); List.Add('Zeile hinzugefügt'); end; |
Re: ausgeben bestimmter informationen aus txt datei
er will ja den string zerschnippeln und das geht dann denke ich net so gut
|
Re: ausgeben bestimmter informationen aus txt datei
Ist doch alles kein Problem:
Delphi-Quellcode:
Außerdem bietet die TStringList noch so tolle Sachen wie DelimitedText oder die Sortierfunktion.
procedure TForm1.Button1Click(Sender: TObject);
var List: TStringList; begin List := TStringList.Create; List.LoadFromFile('C:\text.txt'); ... List.IndexOf('suchtext'); ... end; |
Re: ausgeben bestimmter informationen aus txt datei
jaja naja wa solls
|
Re: ausgeben bestimmter informationen aus txt datei
Danke ich versuchs ma übers WE aufm Laptop. Melde dann das Ergebnis ^^
gruß |
Re: ausgeben bestimmter informationen aus txt datei
Okay, hier klappt garnix :) Wenn ich das Programm starte zeigt es weder im Memo, noch per showmessage irgendetwas.
Delphi-Quellcode:
Ausserdem würde mir das nicht viel weiter helfen, da ich zB nur "Mission 1" ausgeben möchte, wenn vom Programm "Status:" gefunden wurde. Aber er zeigt ja noch nichtmal so etwas.
procedure TForm1.Button1Click(Sender: TObject);
var List: TStringList; begin List := TStringList.Create; List.LoadFromFile('D:\zug.txt'); List.Add('|| Status: Mission 1 ||'); List.IndexOf('|| Status: Mission 1 ||'); ShowMessage ( List[0] ); Memo1.Text:= List[0]; end; |
Re: ausgeben bestimmter informationen aus txt datei
also du musst bestimte teile suchen lassen bis zu ienem bestimmten zeichen, am besten ein sonmderzeichen! durch die funktion pos(was,wo); und dann eben copy(wo, von wo, bis wo) musste eben nen biscle stückeln, ich für mich würde es anderes herauslesen, wie ich es dir beschrieben habe!
|
Re: ausgeben bestimmter informationen aus txt datei
Man könnte es auch so machen:
Delphi-Quellcode:
Zu beachten ist dabei jedoch was die OH sagt:
procedure TForm1.Button1Click(Sender: TObject);
var List: TStringList; Zeile: Integer; begin List := TStringList.Create; List.LoadFromFile('D:\zug.txt'); Zeile := List.IndexOf('|| Status: Mission 1 ||'); if Zeile > -1 then Memo1.Lines.Add(List[Zeile]); end; Zitat:
|
Re: ausgeben bestimmter informationen aus txt datei
Okay, ich bin langsam ein wenig in Delphi drin. Folgendermaßen sieht das grad bei mir aus (erstmal nur für den ersten gesuchten Wert)
Delphi-Quellcode:
Statt das Delphi mir "Mission 1" anzeigt, wie gewollt kommen lediglich die ersten 9 Zeichen aus der ersten Zeile in das Memofeld (-[o]- ---). Bekommte das trotz unzähliger Versuche nicht weg.
procedure TForm1.Button1Click(Sender: TObject);
var datei: textfile; puffer: string; anfang: integer; ende: integer; begin assignfile(datei,'D:/zug.txt'); reset(datei); readln(datei, puffer); anfang:= pos('Status:', Puffer); ende := pos('||', Puffer) + 8; Memo1.Lines.Add(copy(Puffer, anfang, ende - anfang + 1)); delete(Puffer, 1, ende); closefile(datei); end; Gruß |
Re: ausgeben bestimmter informationen aus txt datei
Da die Zeichen "||" mehrmals vorkommen und du mit pos immer nur das erste Vorkommen findest würde ich es eher so machen:
Delphi-Quellcode:
"Status: Mission 1" könntest du dann z.B. auch durch eine Variable ersetzen...
anfang:= pos('Status: Mission 1', Puffer);
ende := anfang + Length('Status: Mission 1'); |
Re: ausgeben bestimmter informationen aus txt datei
Mission 1 ist nicht unbedingt gegeben. Könnte auch Mission 2 sein, das wird ja eigentlich gesucht zwischen "Status:" und dem hinteren "||"
|
Re: ausgeben bestimmter informationen aus txt datei
Also wie ich das verstehe, willst du Sachen aus einer TXT auslesen.
Dann fragst du ab, ob der String auch so aussieht wie er aussehen soll. Aber wozu dann die Textdateien? Wenn der eh nich variabel sein kann der Text, dann benutz doch erst gar keine TextDateien. Wenn ich was falsch verstanden habe, dann benutz einfach INI Dateien :mrgreen: |
Re: ausgeben bestimmter informationen aus txt datei
Na der soll doch grade Variabel sein...Nur bestimmte Dinge kommen immerwieder vor.
Beispiel: || Status: Mission 1 || || Mission: Neuanfang || Hinter "Mission:" könnte auch irgendwas anderes stehen, als "Neuanfang". Es sind jedesmal andere auszulesende Textdateien, weshalb es ja das *.txt Format sein soll (bzw ist). Gruß |
Re: ausgeben bestimmter informationen aus txt datei
Guck dir mal Ini-Files an.
Damit geht das einfacher. Ansonsten nimm Records. |
Re: ausgeben bestimmter informationen aus txt datei
Stimmt. INI Dateien sind (behaupte ich einfach) die einfachste Art Daten in einer Textdatei zu speichern und wieder daraus zu lesen. Warum sich also mit dem Extrahieren einzelner Strings verkünsteln?
Florian |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:41 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 by Thomas Breitkreuz