Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Dateien,vor allem Bilder lassen sich nicht komplett auslesen (https://www.delphipraxis.net/45568-dateien-vor-allem-bilder-lassen-sich-nicht-komplett-auslesen.html)

Lenny-k 8. Mai 2005 16:33


Dateien,vor allem Bilder lassen sich nicht komplett auslesen
 
Ich will eine JPG-Datei auslesen, sie dann verändern und unter anderem Namen abspeichern.
Es werden aber nie alle Zeichen ausgelesen... Zum verzweifeln... Ich hoffe ihr wisst rat:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var infile,outfile:textfile;
ch:char;
begin
AssignFile(infile,'c:\elle.jpg');
reset(infile);
AssignFile(outfile,'c:\elle2.jpg');
rewrite(outfile);
while not eof(infile) do begin
read(infile,ch);
write(outfile,ch);
end;
CloseFile(infile);
CloseFile(outfile);
end;

SirThornberry 8. Mai 2005 16:49

Re: Dateien,vor allem Bilder lassen sich nicht komplett ausl
 
vielleicht liegs an "textfile"?

Lenny-k 8. Mai 2005 16:54

Re: Dateien,vor allem Bilder lassen sich nicht komplett ausl
 
wie mach ich das dann? :S sorry, steh grad aufm schlauch!

SirThornberry 8. Mai 2005 16:58

Re: Dateien,vor allem Bilder lassen sich nicht komplett ausl
 
Versuchs doch einfach mit "TFileStream"
Delphi-Quellcode:
var LStream1, LStream2: TStream;
begin
  LStream1 := TFileStream.Create('c:\elle1.jpg', fmOpenRead);
  LStream2 := TFileStream.Create('c:\elle2.jpg', fmCreate);
  LStream2.CopyFrom(LStream1, LStream1.Size);
  //Jetzt noch bischen in LStream2 rumändern
  LStream2.Free;
  LStream1.Free;
end;

Lenny-k 8. Mai 2005 17:03

Re: Dateien,vor allem Bilder lassen sich nicht komplett ausl
 
is irgendwie ungünstig, weil die ausgangsdatei praktisch komplett verändert werden muss... also wärs praktisch, wenn ich die einzelnen zeichen direkt verändern könnte... oder geht das mit dem stream auch?

3_of_8 8. Mai 2005 17:08

Re: Dateien,vor allem Bilder lassen sich nicht komplett ausl
 
machma ein file of Byte bzw. file of Char.

SirThornberry 8. Mai 2005 17:11

Re: Dateien,vor allem Bilder lassen sich nicht komplett ausl
 
das geht mit stream auch (und ist vor allem objectorientierter als "file of char" etc.
Delphi-Quellcode:
var LStream1, LStream2: TStream;
    LCount: Integer;
    LBuffer: Char;
begin
  LStream1 := TFileStream.Create('c:\elle1.jpg', fmOpenRead);
  LStream2 := TFileStream.Create('c:\elle2.jpg', fmCreate);
  for LCount := 0 to LStream1.Size - 1 do
  begin
    LStream1.Read(LBuffer, 1);
    //jetzt eventuell noch "LBuffer" verändern
    LStream2.Write(LBuffer, 1);
  end;
  LStream2.Free;
  LStream1.Free;
end;

Lenny-k 8. Mai 2005 17:13

Re: Dateien,vor allem Bilder lassen sich nicht komplett ausl
 
Zitat:

Zitat von SirThornberry
das geht mit stream auch (und ist vor allem objectorientierter als "file of char" etc.
Delphi-Quellcode:
var LStream1, LStream2: TStream;
    LCount: Integer;
    LBuffer: Char;
begin
  LStream1 := TFileStream.Create('c:\elle1.jpg', fmOpenRead);
  LStream2 := TFileStream.Create('c:\elle2.jpg', fmCreate);
  for LCount := 0 to LStream1.Size - 1 do
  begin
    LStream1.Read(LBuffer, 1);
    //jetzt eventuell noch "LBuffer" verändern
    LStream2.Write(LBuffer, 2);
  end;
  LStream2.Free;
  LStream1.Free;
end;

hab ich soweit schon verstanden... der haken ist nur, die ausgabedatei ist doppelt so groß wie die eingabedatei und wird nicht angezeigt :(

[edit] aaaah, es muss LStream2.Write(LBuffer, 1); heißen! Wenn jetzt noch was nicht klappt, meld ich mich nochmal! Aber schonmal vielen Dank an Euch :)


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