Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Text-Dateien in Delphi7 (https://www.delphipraxis.net/81840-text-dateien-delphi7.html)

mkinzler 6. Dez 2006 11:47

Re: Text-Dateien in Delphi7
 
memo.Lines ist übrigens vom typ TStrings.

Frischling 6. Dez 2006 12:31

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:
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;
1. Die Variable strings scheint die Strings aus der Textdatei nicht einzulesen. Ich habe den inhalt von strings verfolgt und es erscheint nur ().
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.

Frischling 6. Dez 2006 13:11

Re: Text-Dateien in Delphi7
 
Sorry wegen dem Doppelpost, aber ich bin wieder etwas weiter gekommen*froi*

Delphi-Quellcode:
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;
Jetzt wird mir im Memo-Feld aber der gesamte Inhalt der Datei angezeigt, was ich ja nicht will.
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^^

thkerkmann 6. Dez 2006 14:17

Re: Text-Dateien in Delphi7
 
Hi,

Zeile 17 sollte lauten:

Delphi-Quellcode:
s := strings[i];
Gruss

Frischling 6. Dez 2006 15:00

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.

Klaus01 6. Dez 2006 15:28

Re: Text-Dateien in Delphi7
 
Delphi-Quellcode:
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;
So sollte es funktionieren.
Grüße
Klaus

Frischling 6. Dez 2006 15:51

Re: Text-Dateien in Delphi7
 
Danke dir Klaus01, hat super geklappt. Dann kanns ja weitergehen :)

Frischling 6. Dez 2006 17:39

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:
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;
Das heisst also wiedermal: HÜÜÜÜÜÜLFE!

P.s.
Mein Kopf dröhnt

Klaus01 6. Dez 2006 18:27

Re: Text-Dateien in Delphi7
 
Delphi-Quellcode:
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;
Also, eigentlich heißt es hier pro Problem einen Thread aufzuachen, daß solltest auch Du machen.

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

Frischling 6. Dez 2006 18:47

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.
Seite 2 von 2     12   

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