![]() |
Wort aus Textdatei laden
Hallo DP'ler,
Ich hab ein kleines Problem, beim "herausfiltern" eines Wortes aus einer Textdatei! Prinzip: 1) Textdatei in RichEdit laden 2) Einzelne Worte aus dem RichEdit in das Memo laden
Delphi-Quellcode:
procedure TfrmEditor.btnLadenClick(Sender: TObject);
begin IF OpenDialog.Execute THEN BEGIN RichEdit.Lines.LoadFromFile(OpenDialog.FileName); laden; END; end;
Delphi-Quellcode:
soweit so gut. Funktionier an sich auch wohl super. ABER!
PROCEDURE laden;
VAR name: String; BEGIN // Name name := frmEditor.mConfig.Lines[235]; Delete(name,1,Pos(#32,name)); name := trim(name); Delete(name,Pos(#32,name),Length(name)); frmEditor.edtName.text := name; END; Die Zeile aus dem Richedit sieht so aus: Zitat:
Zitat:
Das hat folgende Gründe: 1) Optisch ist das net so dolle 2) Beim Speichern erhalte ich dann folgende Zeile: Zitat:
|
Re: Wort aus Textdatei laden
Entferne doch mit StringReplace die Anführungszeichen einfach.
|
Re: Wort aus Textdatei laden
Hallo!!
Dann lass die Anführungszeichen beim Auslesen doch einfach weg:
Delphi-Quellcode:
.. oder gleich mit COPY(...)
PROCEDURE laden;
VAR name: String; BEGIN // Name name := frmEditor.mConfig.Lines[235]; Delete(name,1,Pos(#32,name)+1); // +1 name := trim(name); Delete(name,Pos(#32,name)-1,Length(name)); // -1 frmEditor.edtName.text := name; END;
Delphi-Quellcode:
Grüße,
PROCEDURE laden;
VAR name: String; BEGIN // Name name := copy(frmEditor.mConfig.Lines[235], pos('"', frmEditor.mConfig.Lines[235])+1, length(frmEditor.mConfig.Lines[235])); name := copy(name, 1, pos('"', name)-1); frmEditor.edtName.text := name; END; SCRaT |
Re: Wort aus Textdatei laden
Zitat:
Mit StringReplace geht das.
Delphi-Quellcode:
Allerdings ist der Lösungsvorschlag von scrat1979 kürzer und funktioniert ebenfals.
// Name
name := frmEditor.mConfig.Lines[235]; Delete(name,1,Pos(#32,name)); name := StringReplace(name, '"', '' , []); name := trim(name); Delete(name,Pos(#32,name),Length(name)); name := StringReplace(name, '"', '' , []); frmEditor.edtName.text := name; Aber kann man das ganze nun noch weiter kürzen? Sonst müsste ich allein den Code:
Delphi-Quellcode:
an die 30x haben, wegen der ganzen Variablen etc die ich laden möchte.
// Vorwärts
vor := frmEditor.mConfig.Lines[30]; Delete(vor,1,Pos(#32,vor)+1); vor := trim(vor); Delete(vor,Pos(#32,vor)-1,Length(vor)); frmEditor.edtVor.text := vor; |
Re: Wort aus Textdatei laden
Mach doch einfach 'ne Funktion draus, der Du die Zeilennummer übergibst und die Dir dann den gekürzten String zurückgibt.
|
Re: Wort aus Textdatei laden
... hab grad meinen Post oben noch editiert....
noch ein Tip für die häufige Nutzung:
Delphi-Quellcode:
Aufruf z.B. mit
function laden(Quelle : String) : String;
VAR temp: String; BEGIN temp := copy(Quelle, pos('"', Quelle)+1, length(Quelle)); temp := copy(temp, 1, pos('"', temnp)-1); result := temp; END;
Delphi-Quellcode:
... alles ungetestet!
frmEditor.edtVor.text := laden(frmEditor.mConfig.Lines[30]);
SCRaT |
Re: Wort aus Textdatei laden
Zitat:
Hm naja ich weiß gerade net so ganz, Deddy. Ab und zu muss ich ja net von der selben Stelle lesen |
Re: Wort aus Textdatei laden
Na, das ist doch fast das, was ich gesagt hatte, nur wird hier der komplette String übergeben, das geht natürlich auch.
|
Re: Wort aus Textdatei laden
Also, Danke nochmals!
Ich hab das mit der Funktion gemacht! Aber wie sieht das nun aus, wenn ich folgendes lesen möchte? Zitat:
Delphi Praxis ist super! Hinter say ist ein Leerzeichen, von da bis vor dem " am Ende. Hatte da erst an den alten Code gedacht:
Delphi-Quellcode:
Allerdings liest der dann nur das erste Wort "Delphi"
say1 := frmEditor.mConfig.Lines[315];
Delete(say1,1,Pos(#32,say1)+9); say1 := trim(say1); Delete(vor,Pos(#32,say1)-1,Length(say1)); frmEditor.edtSay1.text := say1; |
Re: Wort aus Textdatei laden
Das ist nun eine Sache des Eingangsformates. Dementsprechend müsstest Du die Funktion aufbauen. Wie kann so ein String denn aussehen, d.h. welche Randbedingungen sind vorgegeben?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00: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-2025 by Thomas Breitkreuz