AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Anfänger braucht Hilfe

Ein Thema von Ringer · begonnen am 5. Sep 2003 · letzter Beitrag vom 5. Sep 2003
Antwort Antwort
Seite 1 von 2  1 2      
Ringer

Registriert seit: 2. Sep 2003
32 Beiträge
 
Delphi 6 Enterprise
 
#1

Anfänger braucht Hilfe

  Alt 5. Sep 2003, 08:42
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
  Mit Zitat antworten Zitat
Benutzerbild von Billa
Billa

Registriert seit: 11. Aug 2003
237 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

Re: Anfänger braucht Hilfe

  Alt 5. Sep 2003, 08:47
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
Gruß Billa

Nur weil ich paranoid bin, heißt das nicht, daß die da draussen nicht hinter mir her sind....
  Mit Zitat antworten Zitat
Ringer

Registriert seit: 2. Sep 2003
32 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: Anfänger braucht Hilfe

  Alt 5. Sep 2003, 08:55
Danke erstmal! Wieder einen neuen Befehl gelernt . Wenn ich das "Programm" aber ausführe sagt er "Listenindex überschreitet das Maximum(1)". Was bedeutet das nun wieder .

Ringer
  Mit Zitat antworten Zitat
Benutzerbild von Billa
Billa

Registriert seit: 11. Aug 2003
237 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

Re: Anfänger braucht Hilfe

  Alt 5. Sep 2003, 09:06
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
Gruß Billa

Nur weil ich paranoid bin, heißt das nicht, daß die da draussen nicht hinter mir her sind....
  Mit Zitat antworten Zitat
Ringer

Registriert seit: 2. Sep 2003
32 Beiträge
 
Delphi 6 Enterprise
 
#5

Re: Anfänger braucht Hilfe

  Alt 5. Sep 2003, 09:18
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
  Mit Zitat antworten Zitat
Benutzerbild von Billa
Billa

Registriert seit: 11. Aug 2003
237 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

Re: Anfänger braucht Hilfe

  Alt 5. Sep 2003, 09:21
Hallo,

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

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

Gruß Billa
Gruß Billa

Nur weil ich paranoid bin, heißt das nicht, daß die da draussen nicht hinter mir her sind....
  Mit Zitat antworten Zitat
Ringer

Registriert seit: 2. Sep 2003
32 Beiträge
 
Delphi 6 Enterprise
 
#7

Re: Anfänger braucht Hilfe

  Alt 5. Sep 2003, 09:26
OK, dann hast du es richtig und ich deine Aussage falsch verstanden . Allerdings funktioniert es jetzt immer noch nicht .

Ringer
  Mit Zitat antworten Zitat
Benutzerbild von Billa
Billa

Registriert seit: 11. Aug 2003
237 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#8

Re: Anfänger braucht Hilfe

  Alt 5. Sep 2003, 09:39
Hallo,

was klappt denn nicht? (Fehlermeldung?)

Gruß
Billa
Gruß Billa

Nur weil ich paranoid bin, heißt das nicht, daß die da draussen nicht hinter mir her sind....
  Mit Zitat antworten Zitat
Ringer

Registriert seit: 2. Sep 2003
32 Beiträge
 
Delphi 6 Enterprise
 
#9

Re: Anfänger braucht Hilfe

  Alt 5. Sep 2003, 09:41
Ist immernoch die gleiche Fehlermeldung!

Also "Listenindex überschreitet das Maximum(1)"

Ringer
  Mit Zitat antworten Zitat
Benutzerbild von Billa
Billa

Registriert seit: 11. Aug 2003
237 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#10

Re: Anfänger braucht Hilfe

  Alt 5. Sep 2003, 09:44
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] !
Gruß Billa

Nur weil ich paranoid bin, heißt das nicht, daß die da draussen nicht hinter mir her sind....
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 20:47 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