Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Anfänger braucht Hilfe (https://www.delphipraxis.net/8464-anfaenger-braucht-hilfe.html)

Ringer 5. Sep 2003 08:42


Anfänger braucht Hilfe
 
Hallo Zusammen,

ich habe gestern folgendes Problem ins Forum gestellt. Ich habe mehrere Dateien file1.txt, file2.txt usw. diese haben immer eine Zeile mit Informationen (wert1,wert2...). Nun will ich diese Informationen in einer "grossen" Textdatei zusammenfassen. Ich habe mir folgenden
code überlegt aber er scheidert schon daran das ich die Dateinamen in einer Schleife erstellen will. Aber ich denke der Grundgedanke dürfte klar sein :?: . Ich als Anfänger bitte daher um etwas Hilfe :!: .

Delphi-Quellcode:
procedure TTest_1.Button5Click(Sender: TObject);
  var ts_main, ts: TStringList;
  i : Integer;
begin
  ts_main := TStringList.Create;
  try
    ts := TStringList.Create;
    try
    for i:= 1 to 20 do
      begin
      if fileExists('C:\file'+i+'.txt') then
      ts.LoadFromFile('C:\file'+i+'.txt');
      if ts.Count > 0 then
        begin
        ts_main.Add(ts.strings[i]);
        end;
      end;
    finally
      ts.Free;
    end;
    ts_main.SaveToFile('C:\files.txt');
  finally
  ts_main.Free;

end;
mfg

Ringer

Billa 5. Sep 2003 08:47

Re: Anfänger braucht Hilfe
 
Hallo!

...es könnte klappen, wenn Du i in eine Zeichenkette umwandelst!

Delphi-Quellcode:
    for i:= 1 to 20 do
      begin
      if fileExists('C:\file'+IntToStr(i)+'.txt') then
      ts.LoadFromFile('C:\file'+IntToStr(i)+'.txt');
      if ts.Count > 0 then
        begin
        ts_main.Add(ts.strings[i]);
        end;
      end;
Gruß
Billa

Ringer 5. Sep 2003 08:55

Re: Anfänger braucht Hilfe
 
Danke erstmal! Wieder einen neuen Befehl gelernt :D . Wenn ich das "Programm" aber ausführe sagt er "Listenindex überschreitet das Maximum(1)". Was bedeutet das nun wieder :?: .

Ringer

Billa 5. Sep 2003 09:06

Re: Anfänger braucht Hilfe
 
Hallo,

Delphi-Quellcode:
    try
    for i:= 1 to 20 do
      begin
      if fileExists('C:\file'+i+'.txt') then
      ts.LoadFromFile('C:\file'+i+'.txt');
      if ts.Count > 0 then
        begin
        ts_main.Add(ts.strings[i]);
        end;
      end;
    finally

Du willst bis zu 20 Dateien lesen. Soweit Ok! Beim Einlesen aber benutzt Du den Dateienzähler als Zeilenindex, obwohl Du nicht weißt, ob z.B. bei der Datei Nr. 17 überhaupt 17 Zeilen vorhanden sind!
Trenne Zeilenzähler und Dateizähler, dann wird's auf alle Fälle besser!

Gruß Billa

Ringer 5. Sep 2003 09:18

Re: Anfänger braucht Hilfe
 
Danke! Aber ich habe das jetzt getrennt und es funktioniert immer noch nicht! (Sicherlich ist aber die Trennung sinnvoll!) Allerdings verwirrt mich deine Aussage:

>Du willst bis zu 20 Dateien lesen. Soweit Ok! Beim Einlesen aber >benutzt Du den Dateienzähler als Zeilenindex, obwohl Du nicht weißt, >ob z.B. bei der Datei Nr. 17 überhaupt 17 Zeilen vorhanden sind!

Denn in jeder Datei ist nur eine Zeile und die Enddatei hat genauso viele Eintragszeilen wie es Dateien gibt.

Delphi-Quellcode:
procedure TTest_1.Button5Click(Sender: TObject);
  var ts_main, ts: TStringList;
  i ,f: Integer;
begin
  f:=0;
  ts_main := TStringList.Create;
  try
    ts := TStringList.Create;
    try
    for i:= 1 to 5 do
      begin
      if fileExists('C:\file'+IntToStr(i)+'.txt') then
      f:=f+1;
      ts.LoadFromFile('C:\file'+IntToStr(i)+'.txt');
      if ts.Count > 0 then
        begin
        ts_main.add(ts.strings[f]);
        end;
      end;
    finally
      ts.Free;
    end;
    ts_main.SaveToFile('C:\files.txt');
  finally
  ts_main.Free;
  end;
end;
Gruß

Ringer

Billa 5. Sep 2003 09:21

Re: Anfänger braucht Hilfe
 
Hallo,

vielleicht sehe ich es nicht aber Du referenzierst doch die f.Zeile, oder?

Delphi-Quellcode:
     ts_main.add(ts.strings[f]); <------
Ich denke jede Datei und damit ts enthält jeweils nur eine Zeile?

Gruß Billa

Ringer 5. Sep 2003 09:26

Re: Anfänger braucht Hilfe
 
OK, dann hast du es richtig und ich deine Aussage falsch verstanden :D . Allerdings funktioniert es jetzt immer noch nicht :cry: .

Ringer

Billa 5. Sep 2003 09:39

Re: Anfänger braucht Hilfe
 
Hallo,

was klappt denn nicht? (Fehlermeldung?)

Gruß
Billa

Ringer 5. Sep 2003 09:41

Re: Anfänger braucht Hilfe
 
Ist immernoch die gleiche Fehlermeldung!

Also "Listenindex überschreitet das Maximum(1)"

Ringer

Billa 5. Sep 2003 09:44

Re: Anfänger braucht Hilfe
 
Hallo,

du referenzierst immer noch auf eine Zeile f, die gar nicht vorhanden ist

Delphi-Quellcode:
      f:=f+1;
      ts.LoadFromFile('C:\file'+IntToStr(i)+'.txt');
      if ts.Count > 0 then
        begin
        ts_main.add(ts.strings[f]);
        end;
      end;
lass doch einfach f erstmal weg und benutze ts.strings[0] !


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:35 Uhr.
Seite 1 von 2  1 2      

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