Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi In Stream mehrere Dateien laden? (https://www.delphipraxis.net/30181-stream-mehrere-dateien-laden.html)

Sharky 21. Sep 2004 18:53

Re: In Stream mehrere Dateien laden?
 
Zitat:

Zitat von Mr Whoopee
....gesstream:=stream1+stream2?

Fast ;-)

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  st1 : TMemoryStream;
  st2 : TMemoryStream;
begin
  st1 := TMemoryStream.Create;
  st2 := TMemoryStream.Create;
  try
    st1.LoadFromFile('c:\test1.txt');
    st2.LoadFromFile('c:\test2.txt');
    st1.Position := st1.Size; // Stream auf das Ende positionieren
    st1.CopyFrom(st2,0); // Alles vom Beginn des Streams2 in Stream1 kopieren.
    st1.SaveToFile('c:\test12.txt');
  finally
    st1.Free;
    st2.Free;
  end;
end;
Es wird mit .CopyFrom der Inhalt von Stream2 ab der aktuellen Position in Stream1 kopiert.

Mr Whoopee 21. Sep 2004 19:18

Re: In Stream mehrere Dateien laden?
 
ah das sieht doch mal gut aus, DANKE :D

Mr Whoopee 23. Sep 2004 18:56

Re: In Stream mehrere Dateien laden?
 
Zitat:

Zitat von Sharky
Zitat:

Zitat von Mr Whoopee
....gesstream:=stream1+stream2?

Fast ;-)

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  st1 : TMemoryStream;
  st2 : TMemoryStream;
begin
  st1 := TMemoryStream.Create;
  st2 := TMemoryStream.Create;
  try
    st1.LoadFromFile('c:\test1.txt');
    st2.LoadFromFile('c:\test2.txt');
    st1.Position := st1.Size; // Stream auf das Ende positionieren
    st1.CopyFrom(st2,0); // Alles vom Beginn des Streams2 in Stream1 kopieren.
    st1.SaveToFile('c:\test12.txt');
  finally
    st1.Free;
    st2.Free;
  end;
end;
Es wird mit .CopyFrom der Inhalt von Stream2 ab der aktuellen Position in Stream1 kopiert.

geht das auch mit binären dateien? irgendwie kommen bei mir fehler :(

Sharky 23. Sep 2004 19:46

Re: In Stream mehrere Dateien laden?
 
Zitat:

Zitat von Mr Whoopee
...geht das auch mit binären dateien? irgendwie kommen bei mir fehler :(

Sollte eigentlich gehen. :gruebel:
Hast Du mal ein Beispiel deiner Daten?

Mr Whoopee 24. Sep 2004 14:22

Re: In Stream mehrere Dateien laden?
 
Delphi-Quellcode:
Unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
  IdHTTP, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    IdHTTP1: TIdHTTP;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  stream: TFileStream;
  stream1, stream2: TMemoryStream;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
try
stream := TFileStream.Create('c:\temp', fmCreate);
IdHTTP1.Get('http://home.arcor.de/delphi_checker/testdl/1.gif', stream);
finally
stream.Free;
end;
   try
   stream1:=TMemoryStream.Create;
   stream2:=TMemoryStream.Create;
   stream1.LoadFromFile('c:\temp');
   stream2.LoadFromFile('c:\final');
   stream1.Position:=stream1.Size;
   stream1.CopyFrom(stream2,0);
   stream1.SaveToFile('c:\final');
   finally
   stream2.Free;
   stream1.Free;
   end;
try
stream := TFileStream.Create('c:\temp', fmCreate);
IdHTTP1.Get('http://home.arcor.de/delphi_checker/testdl/2.gif', stream);
finally
stream.Free;
end;
   try
   stream1:=TMemoryStream.Create;
   stream2:=TMemoryStream.Create;
   stream1.LoadFromFile('c:\temp');
   stream2.LoadFromFile('c:\final');
   stream1.Position:=stream1.Size;
   stream1.CopyFrom(stream2,0);
   stream1.SaveToFile('c:\final');
   finally
   stream2.Free;
   stream1.Free;
   end;
try
stream := TFileStream.Create('c:\temp', fmCreate);
IdHTTP1.Get('http://home.arcor.de/delphi_checker/testdl/3.gif', stream);
finally
stream.Free;
end;
   try
   stream1:=TMemoryStream.Create;
   stream2:=TMemoryStream.Create;
   stream1.LoadFromFile('c:\temp');
   stream2.LoadFromFile('c:\final');
   stream1.Position:=stream1.Size;
   stream1.CopyFrom(stream2,0);
   stream1.SaveToFile('c:\final');
   finally
   stream2.Free;
   stream1.Free;
   end;
try
stream := TFileStream.Create('c:\temp', fmCreate);
IdHTTP1.Get('http://home.arcor.de/delphi_checker/testdl/4.gif', stream);
finally
stream.Free;
end;
   try
   stream1:=TMemoryStream.Create;
   stream2:=TMemoryStream.Create;
   stream1.LoadFromFile('c:\temp');
   stream2.LoadFromFile('c:\final');
   stream1.Position:=stream1.Size;
   stream1.CopyFrom(stream2,0);
   stream1.SaveToFile('c:\final');
   finally
   stream2.Free;
   stream1.Free;
   end;
try
stream := TFileStream.Create('c:\temp', fmCreate);
IdHTTP1.Get('http://home.arcor.de/delphi_checker/testdl/5.gif', stream);
finally
stream.Free;
end;
   try
   stream1:=TMemoryStream.Create;
   stream2:=TMemoryStream.Create;
   stream1.LoadFromFile('c:\temp');
   stream2.LoadFromFile('c:\final');
   stream1.Position:=stream1.Size;
   stream1.CopyFrom(stream2,0);
   stream1.SaveToFile('c:\final');
   finally
   stream2.Free;
   stream1.Free;
   end;
try
stream := TFileStream.Create('c:\temp', fmCreate);
IdHTTP1.Get('http://home.arcor.de/delphi_checker/testdl/6.gif', stream);
finally
stream.Free;
end;
   try
   stream1:=TMemoryStream.Create;
   stream2:=TMemoryStream.Create;
   stream1.LoadFromFile('c:\temp');
   stream2.LoadFromFile('c:\final');
   stream1.Position:=stream1.Size;
   stream1.CopyFrom(stream2,0);
   stream1.SaveToFile('c:\final');
   finally
   stream2.Free;
   stream1.Free;
   end;

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
stream := TFileStream.Create('c:\final', fmCreate);
stream.Free;
end;

end.
So sieht es aues - ist noch umständlich gemacht - ich weiß - war zu faul - wollte es geh nur testen...
rauskommen MÜSSTE eigentlich ne exe - als auf C:\ die "Final" Datei in "Final.exe" umbenennen - aber dann geht die exe nicht.
Hochgeladen habe ich es im Binary Mode.

Sharky 1. Okt 2004 16:48

Re: In Stream mehrere Dateien laden?
 
:gruebel:
Mir ist nicht klar was das Programm machen soll.
Du lädst irgendwelche Bilder aus dem Internet und möchtest daraus eine EXE machen?

Mr Whoopee 7. Okt 2004 16:13

Re: In Stream mehrere Dateien laden?
 
also nochmal zur erklärung:

ich habe eine exe. die habe ich zerschnitten,
einfach in mehrere dateien aufgesplittet.
wenn man die 2. Datei an die 1. hängt, die 3. an die 2. usw.
und die dann wieder in .exe umbenennt ist die exe wieso so wie sie
war. bloß ich würde das ganz gern im stream machen. also immer
reinladen und dann dann hinten ranhängen und dann zum schluss nur eine datei haebn

toms 7. Okt 2004 16:17

Re: In Stream mehrere Dateien laden?
 
Einige Beispiele dazu:
http://www.swissdelphicenter.ch/de/showcode.php?id=1075
http://www.swissdelphicenter.ch/de/showcode.php?id=1617
http://www.swissdelphicenter.ch/de/showcode.php?id=1266


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