AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Wertepaare aus Textdatei lesen ?
Thema durchsuchen
Ansicht
Themen-Optionen

Wertepaare aus Textdatei lesen ?

Offene Frage von "winx"
Ein Thema von winx · begonnen am 8. Feb 2007 · letzter Beitrag vom 9. Feb 2007
Antwort Antwort
winx

Registriert seit: 14. Jun 2005
265 Beiträge
 
#1

Wertepaare aus Textdatei lesen ?

  Alt 8. Feb 2007, 15:05
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
  Mit Zitat antworten Zitat
Klaus01

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

Re: Wertepaare aus Textdatei lesen ?

  Alt 8. Feb 2007, 15:12
Ja, gibt es die TStringList, schau da mal nach Value.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: Wertepaare aus Textdatei lesen ?

  Alt 8. Feb 2007, 19:03
Hallo,

die bei D7 mitgelieferte TStrings-Implementierung ist wenig intelligent, was white space betrifft. Steuerdateien unterziehe ich deshalb oft einer Normalisierung:

Delphi-Quellcode:
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;
Wer eine neuere Implementierung einsetzt, der prüfe ob die Funktionalität in dieser Hinsicht erweitert wurde.

Grüße vom marabu
  Mit Zitat antworten Zitat
Klaus01

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

Re: Wertepaare aus Textdatei lesen ?

  Alt 8. Feb 2007, 20:58
Hallo Achim,

ein kleiner Test hat ergeben, das es funktionieren sollte:

Delphi-Quellcode:
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;
Inhalt der TextDatei:

1=test string
2=test2 string2

liefert im Edit "test string"

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: Wertepaare aus Textdatei lesen ?

  Alt 8. Feb 2007, 21:10
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
  Mit Zitat antworten Zitat
Klaus01

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

Re: Wertepaare aus Textdatei lesen ?

  Alt 8. Feb 2007, 21:15
Hallo Achim,

wie konnte ich nur widersprechen, hast recht!
Leerzeichen am Ende des KeyValues mag es nicht.

Auch gute Nacht.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
winx

Registriert seit: 14. Jun 2005
265 Beiträge
 
#7

Re: Wertepaare aus Textdatei lesen ?

  Alt 9. Feb 2007, 10:02
Hallo,

erstmal danke für eure Hilfe!!!

Delphi-Quellcode:
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;
Wie bekomme ich denn den Text vor dem =

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
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#8

Re: Wertepaare aus Textdatei lesen ?

  Alt 9. Feb 2007, 10:14
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:
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;
Freundliche Grüße
  Mit Zitat antworten Zitat
Antwort Antwort


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 17:42 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