Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi mehrere Dateien in 1 (https://www.delphipraxis.net/115000-mehrere-dateien-1-a.html)

SaFu 4. Jun 2008 10:30

Re: mehrere Dateien in 1
 
Ok hab schonmal einige Fehler raus wie offne ich jetzt jede einzelne Datei und übergebe immer die neuen Strings in die Liste

SaFu 4. Jun 2008 10:50

Re: mehrere Dateien in 1
 
Ok mit ein bissel nachdenken hab ich jetzt geschaft

Kann man das auch schneller machen dauert bissel lange bei mir
Delphi-Quellcode:
procedure TForm1.Button5Click(Sender: TObject);
Var sl1 : TStringList;
     sl2 : TStringList;
     i : Integer;
begin
Memo1.Lines.BeginUpdate;
 try
  sl1:= TStringList.Create;
  sl2:= TStringList.Create;

 for i := 0 to FileListBox1.Items.Count - 1 do
  begin
   sl1.LoadFromFile(FileListbox1.Items[i]);
   sl2.add(sl1.Text);
  end;
  Memo1.Text:= sl2.Text;
 Finally
   memo1.Lines.SaveToFile('c:\test.txt');
   Memo1.Lines.EndUpdate;
 end;
end;

p0w3r5tr34m3r 4. Jun 2008 10:53

Re: mehrere Dateien in 1
 
Delphi-Quellcode:
var
  sl1: TStringlist;
  i: integer;
begin
  memo1.lines.beginupdate;
  try
    sl1 := TStringlist.create;
    for i := filelistbox1.items.count-1 downto 0 do begin
      sl1.loadfromfile(filelistbox1.items[i]);
      memo1.text := memo1.text + sl1.text;
    end;
  finally
    sl1.free;
    memo1.lines.endupdate;
    memo1.savetofile('C:\test.txt');
  end;
end;
is einfach nur runter getippt, sollte aber klappen


MfG

Klaus01 4. Jun 2008 10:56

Re: mehrere Dateien in 1
 
Delphi-Quellcode:
procedure MergeFiles(FileName2add, SumFileName : TFileName) ;
// FileName2add == the name of the first piece of the split file
// SumFileName == the name of the resulting merged file
var
   fs, ss: TFileStream;
   cnt: integer;
begin
   cnt := 1;
   fs := TFileStream.Create(SumFileName, fmCreate or fmShareExclusive) ;
   try
     while FileExists(FileName2add) do
     begin
       ss := TFileStream.Create(FileName2add, fmOpenRead or fmShareDenyWrite) ;
       try
         fs.CopyFrom(ss, 0) ;
       finally
         ss.Free;
       end;
       Inc(cnt) ;
       FileName2add := ChangeFileExt(FileName2add, Format('%s%d', ['._',cnt])) ;
     end;
   finally
     fs.Free;
   end;
end;


Usage:

MergeFiles('c:\mypicture._1','c:\mymergedpicture.bmp') ;
Habe ich hier gefunden.

Grüße
Klaus

SaFu 4. Jun 2008 11:02

Re: mehrere Dateien in 1
 
@Klaus01

ja Danke Klaus den hatte ich auch schon gefunden nur da verstehe ich mal wieder nichts und so habe ich es verstanden.
Wenn ich immer nur abtippe lerne ich nichts und ich laufe gefahr das Ihr irgenwann kein Bock mehr habt auf meine Fragen zu Antworten.

Dank dir trotzdem

DeddyH 4. Jun 2008 11:13

Re: mehrere Dateien in 1
 
Dann versuch es mal so:
Delphi-Quellcode:
procedure TForm1.Button5Click(Sender: TObject);
Var sl1 : TStringList;
     i : Integer;
begin
  Memo1.Lines.BeginUpdate;
  try
    sl1:= TStringList.Create;
    try
      for i := 0 to FileListBox1.Items.Count - 1 do
        begin
          sl1.LoadFromFile(FileListbox1.Items[i]);
          Memo1.Lines.AddStrings(sl1);
        end;
    finally
      sl1.Free;
    end;
    memo1.Lines.SaveToFile('c:\test.txt');
  finally
    Memo1.Lines.EndUpdate;
  end;
end;
Evtl. vorherige Zeilen mit Memo1.Clear entfernen.

Hansa 4. Jun 2008 11:21

Re: mehrere Dateien in 1
 
Zitat:

Zitat von p0w3r5tr34m3r
[delphi]var
memo1.text := memo1.text + sl1.text;

Das wäre wohl tatsächlich der einfachste und sauberste Weg. Unabhängig von DOS-Befehlen etc. Sehr schwer zitierfähiger Nickname. Mann Mann. :mrgreen:

Muetze1 4. Jun 2008 12:35

Re: mehrere Dateien in 1
 
@fuknersascha: du gibst die Stringlisten Instanzen nicht mehr frei.
@p0w3r5tr34m3r: Dein Code sollte eine Warnung bringen, dass sl1 möglicherweise nicht initialisiert worden ist (wo er Recht hat).
@Hansa: Das wäre zwar einfach, aber unperformant, da er ständig Lines[] -> string und string -> Lines[] bastelt. Dafür gibt es Delphi-Referenz durchsuchenAddStrings(), diese wäre der einfachste und deutliche performantere Weg.

Hansa 4. Jun 2008 14:45

Re: mehrere Dateien in 1
 
Wenn das geht, dann soll er das auch so machen, zumindest anfangen. Antworten sind genug da. :P

SaFu 5. Jun 2008 08:05

Re: mehrere Dateien in 1
 
Zitat:

Zitat von Muetze1
@p0w3r5tr34m3r: Dein Code sollte eine Warnung bringen, dass sl1 möglicherweise nicht initialisiert worden ist (wo er Recht hat).

stimmt mit was und wo Initalisiere ich die Stringlisten


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:36 Uhr.
Seite 2 von 3     12 3      

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