Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi 2 Textdateien zu einer zusammenfügen (https://www.delphipraxis.net/108508-2-textdateien-zu-einer-zusammenfuegen.html)

gene 15. Feb 2008 03:30


2 Textdateien zu einer zusammenfügen
 
Hallo!

Ich weis nicht in welche Richtung ich dannach suchen soll tut mir leid wenn es die Frage schon gibt/gab.

Ich habe 2 Textdateien im Format:

Datei1:

name1
name2
name3
name4
usw...

Datei2:

email1
email2
email3
email4
usw...

Die 2 sollen in dem Format in einer neuen Textdatei zusammengefügt werden:

name1:email1
name2:email2
name3:email3
name4:email4
usw...

also erste Zeile mit der ersten, zweite mit der Zweiten usw...

was muss ich mir da anschauen oder hat wer ein Tutorial oder Beispiel?

Bitte um Hilfe ist wichtig.

deep_thought 15. Feb 2008 05:23

Re: 2 Textdateien zu einer zusammenfügen
 
Delphi-Quellcode:
var F,G,H:     Textfile;
    name,email: string;
begin
assignfile(F,'Datei1.txt');
assignfile(G,'Datei2.txt');
assignfile(H,'Zusammen.txt');
reset(F);
reset(G);
rewrite(H);
while not (eof(F) or eof(G)) do
 begin
  readln(F,Name);
  readln(G,email);
  writeln(H,name+':'+email);
 end;
closefile(F);
closefile(G);
closefile(H);
end;
mfg deep_thought

gene 15. Feb 2008 11:10

Re: 2 Textdateien zu einer zusammenfügen
 
hey vielen dank!

aber ich bekomme ein "Datei nicht gefunden" obwohl Datei1.txt und Datei2.txt im selben Ordner wie die .exe sind.

Xong 15. Feb 2008 11:24

Re: 2 Textdateien zu einer zusammenfügen
 
Zitat:

Zitat von gene
ich hoffe das war verständlich =).

Nein!

Hast du den Code überhaupt einmal ausprobiert?

Du kannst deine Variablen nennen, wie du möchtest. Ob die nun Quarkkuchen oder Kartoffelsalat heißen, ist vollkommen wurst.

gene 15. Feb 2008 11:26

Re: 2 Textdateien zu einer zusammenfügen
 
Ja hab ich und ich habe den Beitrag auch editiert nachdem ich es verstanden habe.

Aber "Datei nicht gefunden" ;/

guidok 15. Feb 2008 11:26

Re: 2 Textdateien zu einer zusammenfügen
 
Zitat:

Zitat von gene
hey vielen dank!

aber ich bekomme ein "Datei nicht gefunden" obwohl Datei1.txt und Datei2.txt im selben Ordner wie die .exe sind.

Deine Dateien heißen auch wirklich "Datei1.txt" und "Datei2.txt"? Falls nicht, dann musst du den tatsächlichen Dateinamen mit angeben.

gene 15. Feb 2008 11:29

Re: 2 Textdateien zu einer zusammenfügen
 
Hat sich erledigt danke!

Dateiextensions waren nicht sichtbar ;/ .txt.txt usw...

thx!

marabu 15. Feb 2008 11:38

Re: 2 Textdateien zu einer zusammenfügen
 
Hi,

trotzdem hier noch eine Alternative für überschaubare Dateigrößen:

Delphi-Quellcode:
procedure JoinStrings(sLeft, sRight, sResult: TStrings; cSeparator: Char = '=');
var
  i: Integer;
begin
  sResult.NameValueSeparator := cSeparator;
  for i := 0 to Pred({Math.}Min(sLeft.Count, sRight.Count)) do
    sResult.Values[sLeft[i]] := sRight[i];
end;

procedure TDemoForm.ButtonClick(Sender: TObject);
var
  fn, fnLeft, fnRight: TFileName;
begin
  fnLeft := ParamStr(1);
  fnRight := ParamStr(2);
  fn := ParamStr(3);
  Memo1.Lines.LoadFromFile(fnLeft);
  Memo2.Lines.LoadFromFile(fnRight);
  JoinStrings(Memo1.Lines, Memo2.Lines, Memo3.Lines);
  Memo3.Lines.SaveToFile(fn);
end;
Freundliche Grüße

SirThornberry 15. Feb 2008 12:26

Re: 2 Textdateien zu einer zusammenfügen
 
und noch eine alternative für die Leute welche Klassen bevorzugen:
Delphi-Quellcode:
var
  src1,
  src2,
  dst  : TFileStream;
begin
  src1 := TFileStream.Create('Datei1.txt', fmOpenRead);
  src2 := TFileStream.Create('Datei2.txt', fmOpenRead);
  dst := TFileStream.Create('zusammen.txt', fmCreate);
  dst.copyfrom(src1, 0);
  dst.copyfrom(src2, 0);
  dst.free;
  src2.free;
  src1.free;
end;
(Ressourcenschutzblöcke solltest du dann selbst hinzufügen)

Klaus01 15. Feb 2008 12:43

Re: 2 Textdateien zu einer zusammenfügen
 
Hallo Jens,

das ist nicht ganz das was der Fragesteller wollte.
Du hängst die Dateien aneinander.
Gefragt war:

Zeile1.Datei1 : Zeile1.Datei2
Zeile2.Datei1 : Zeile2.Datei2.
...

Grüße
Klaus


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:17 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