![]() |
Wertepaare aus Textdatei lesen ?
Hallo,
gibt es eine Komponente die mir auf einfachste Art und weise Wertepaare aus einer Textdatei lesen kann? Die Textdatei sieht dabei so aus: Hallo=P Du=Q Ich = K Spaces sollen überflogen werden... Gibt es sowas schon? Danke, winx |
Re: Wertepaare aus Textdatei lesen ?
Ja, gibt es die TStringList, schau da mal nach Value.
Grüße Klaus |
Re: Wertepaare aus Textdatei lesen ?
Hallo,
die bei D7 mitgelieferte TStrings-Implementierung ist wenig intelligent, was white space betrifft. Steuerdateien unterziehe ich deshalb oft einer Normalisierung:
Delphi-Quellcode:
Wer eine neuere Implementierung einsetzt, der prüfe ob die Funktionalität in dieser Hinsicht erweitert wurde.
procedure TrimNameValueStrings(s: TStrings);
var i, iPos: Integer; begin for i := 0 to Pred(s.Count) do begin iPos := AnsiPos(s.NameValueSeparator, s[i]); if iPos > 0 then s[i] := Trim(Copy(s[i], 1, Pred(iPos))) + s.NameValueSeparator + Trim(Copy(s[i], Succ(iPos), MaxInt)); end; end; Grüße vom marabu |
Re: Wertepaare aus Textdatei lesen ?
Hallo Achim,
ein kleiner Test hat ergeben, das es funktionieren sollte:
Delphi-Quellcode:
Inhalt der TextDatei:
procedure TForm1.Button1Click(Sender: TObject);
var sl: TStringList; begin sl := TStringList.create; sl.LoadFromFile('d:\st_test.txt'); edit1.Text:=st.Values['1']; sl.Free; end; 1=test string 2=test2 string2 liefert im Edit "test string" Grüße Klaus |
Re: Wertepaare aus Textdatei lesen ?
Hallo Klaus,
die Testfälle im ersten Beitrag zeigen mir, dass winx schon genau weiß wo es klemmt. Es geht nicht um embedded blanks im Value. Probiere mal mit freigestelltem Separator und du wirst verstehen um was es geht. Gute Nacht |
Re: Wertepaare aus Textdatei lesen ?
Hallo Achim,
wie konnte ich nur widersprechen, hast recht! Leerzeichen am Ende des KeyValues mag es nicht. Auch gute Nacht. Grüße Klaus |
Re: Wertepaare aus Textdatei lesen ?
Hallo,
erstmal danke für eure Hilfe!!!
Delphi-Quellcode:
Wie bekomme ich denn den Text vor dem =
procedure TStandardValuesController.readDependancies();
var list : TStringList; i : integer; dependancy : TKTipDependancy; begin list := TStringList.Create(); list.LoadFromFile(m_KTIPDependancyFilePath); for i:=0 to list.Count-1 do begin dependancy := TKTipDependancy.create('',''); dependancy.QualityBarcode := list. ??? dependancy.Sign := list.Values[dependancy.QualityBarcode]; m_KTIPDependancies.Add(dependancy); end; end; Also ich komm an das P ran bei 4711=P aber eben nich an die 4711... geht das auch einfach oder muß ich den String parsen? Danke |
Re: Wertepaare aus Textdatei lesen ?
Hallo,
wenn du die eingelesene Name-Value-Liste nur für die Initialisierung deiner dependancy-Objekte verwendest, dann kannst du auch so vorgehen:
Delphi-Quellcode:
Freundliche Grüße
procedure TStandardValuesController.readDependancies();
var list : TStringList; i : integer; dependancy : TKTipDependancy; begin list := TStringList.Create(); list.LoadFromFile(m_KTIPDependancyFilePath); for i :=0 to list.Count-1 do begin dependancy := TKTipDependancy.create('',''); dependancy.QualityBarcode := Trim(list.Names[i]); dependancy.Sign := Trim(list.Values[dependancy.QualityBarcode]); m_KTIPDependancies.Add(dependancy); end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:13 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