![]() |
Re: Text-Dateien in Delphi7
memo.Lines ist übrigens vom typ TStrings.
|
Re: Text-Dateien in Delphi7
Ok, das scheinz jetzt zu klappen. Danke dir. Aber die Probleme wollen irgendwie nicht enden.
Ich habe jetzt ein bissel umgeschrieben:
Delphi-Quellcode:
1. Die Variable strings scheint die Strings aus der Textdatei nicht einzulesen. Ich habe den inhalt von strings verfolgt und es erscheint nur ().
procedure TForm1.ComboBox1Change(Sender: TObject);
begin if strings.Count > 0 then begin for i := 0 to strings.Count - 1 do begin s := strings; If ComboBox1.items=strings then Memo1.Lines:=s; end; end; strings.Free; end; begin strings := TStringList.Create; try path := ExtractFilePath(ParamStr(0)); path := path + 'Testdatei.txt'; strings.LoadFromFile(path); finally end; Woran kann das nun wieder liegen? Ist sicher nur ein kleiner Fehler. 2. Der Text aus der ComboBox1 soll in der Datei gesucht werden. Da bekomme ich wieder den TString/String-Fehler. Also habe ich nicht ComboBox1.Text, sondern ComboBox1.Items verwendet. So wie ich das verstehe, wird mir das aber keine genauen Ergebnisse liefern, da alle Item-Werte durchsucht werden und nicht, wie geplant, das ausgewählte. Wie kann ich also ComboBox.Text "TString-kompatibel" machen? EDIT: Das ist nur der veränderte Code. Der Rest ist so wie im letzten Post. |
Re: Text-Dateien in Delphi7
Sorry wegen dem Doppelpost, aber ich bin wieder etwas weiter gekommen*froi*
Delphi-Quellcode:
Jetzt wird mir im Memo-Feld aber der gesamte Inhalt der Datei angezeigt, was ich ja nicht will.
procedure TForm1.ComboBox1Change(Sender: TObject);
var strings,s:TStrings; path:String; i:Integer; begin strings := TStringList.Create; try path := ExtractFilePath(ParamStr(0)); path := path + 'Testdatei.txt'; strings.LoadFromFile(path); if strings.Count > 0 then begin for i := 0 to strings.Count - 1 do begin s := strings; If ComboBox1.text=strings[i] then Memo1.Lines:=s; end; end; finally strings.Free; end; end; Egal wierum ich es drehe, ich gerate immer in einen String/String-Konflikt. Weiss da jemand eine Lösung für? P.s. Ich weiss, ich bin ein schwerer Fall^^ |
Re: Text-Dateien in Delphi7
Hi,
Zeile 17 sollte lauten:
Delphi-Quellcode:
Gruss
s := strings[i];
|
Re: Text-Dateien in Delphi7
Genau da liegt ja das Problem. Ich bekomme die Fehelrmeldung "Inkompatible Typen: TString und String", obwohl s und strings beide vom Typ TString sind.
|
Re: Text-Dateien in Delphi7
Delphi-Quellcode:
So sollte es funktionieren.
procedure TForm1.ComboBox1Change(Sender: TObject);
var strings:TStrings; path:String; i:Integer; begin strings := TStringList.Create; try path := ExtractFilePath(ParamStr(0)); path := path + 'Testdatei.txt'; strings.LoadFromFile(path); if strings.Count > 0 then begin for i := 0 to strings.Count - 1 do begin If ComboBox1.text=strings[i] then Memo1.Lines.add(strings[i]); end; end; finally strings.Free; end; end; Grüße Klaus |
Re: Text-Dateien in Delphi7
Danke dir Klaus01, hat super geklappt. Dann kanns ja weitergehen :)
|
Re: Text-Dateien in Delphi7
Tadaaa, ich bin wieder da :-D <---passt eigentlich nicht zu meiner Situation^^
Ich versuch wie ein Wilder was vernünftiges über pos und copy rauszufinden, aber überall nicht Halbes und nichts Ganzes. Ich möchte mich jetzt langsam an folgendes herantasten: Nachdem ich es mit eurer Hilfe geschafft habe, einen Wert aus ComboBox.Text in der Textdatei zu suchen und in ein Memo-Feld zu schreiben, möchte ich nun, dass diesem Wert weitere Folgen(Wert1,Wert2,Wertn). Als erstes möchte ich den ersten Wert, der mit ComboBox.Text übereinstimmt, abspalten, damit überhaupt etwas im Memo-Feld erscheint. Nur leider haperts an inkompatiblem Typen.
Delphi-Quellcode:
Das heisst also wiedermal: HÜÜÜÜÜÜLFE!
procedure TForm1.ComboBox1Change(Sender: TObject);
var strings,p:TStrings; path:String; i:Integer; begin strings := TStringList.Create; try path := ExtractFilePath(ParamStr(0)); path := path + 'Testdatei.txt'; strings.LoadFromFile(path); if strings.Count > 0 then begin Memo1.Clear; for i := 0 to strings.Count - 1 do begin p:=pos(',',strings); //Fehlermeldung 'inkompatible Typen' If ComboBox1.text=copy(strings,1,p-1) then //die kommt dann hier sicher auch Memo1.Lines.add(strings[i]); end; end; finally strings.Free; end; end; P.s. Mein Kopf dröhnt |
Re: Text-Dateien in Delphi7
Delphi-Quellcode:
Also, eigentlich heißt es hier pro Problem einen Thread aufzuachen, daß solltest auch Du machen.
procedure TForm1.ComboBox1Change(Sender: TObject);
var strings:TStringList; p:Byte; path:String; i:Integer; begin strings := TStringList.Create; try path := ExtractFilePath(ParamStr(0)); path := path + 'Testdatei.txt'; strings.LoadFromFile(path); if strings.Count > 0 then begin Memo1.Clear; for i := 0 to strings.Count - 1 do begin p:=pos(',',strings[i]); //Fehlermeldung 'inkompatible Typen' If ComboBox1.text=copy(strings[i],1,p-1) then //die kommt dann hier sicher auch Memo1.Lines.add(strings[i]); end; end; finally strings.Free; end; end; pos liefert keinen String zurück sonder eine ganzzahlige Zahl. Dann sollte Dir mittlerweile klar sein, daß eine StringList eine Liste mit Strings ist. Also bei Dir ist strings eine StringListe wenn Du strings einfach so übergibst, übergibst Du die komplette StringList. Ein Element der StringList sprichst Du mit strings[index] an. Habe oben mal etwas korrigiert. Grüße Klaus |
Re: Text-Dateien in Delphi7
Erstmal wieder ein Danke für die Hilfe. Die Ausgabe hat so zwar noch nicht gestimmt, habs aber selbst hinbekommen*froi*
Das Problem, das mich dazu bewogen hat, diesen thread zu öffnen, ist noch nicht behoben. Am Anfang wollte ich gleich alles, hab aber schnell gemerkt, dass ich mich an die Endlösung erst herantasten muss. Deshalb kommen hier soviele Fragen. Es ist nur noch eine einzige Frage offen und DIE werde ich hoffentlich selbst lösen können. Aber ich verstehe natürlich die "Eine-Frage-Ein-Thread"-Taktik. Ich selbst profitiere ja von der Übersichtlichkeit. Grüße Frischling |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:05 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