Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi zur base64 decodefile function aus der dp lib ? (https://www.delphipraxis.net/88800-zur-base64-decodefile-function-aus-der-dp-lib.html)

agm65 21. Mär 2007 10:52


zur base64 decodefile function aus der dp lib ?
 
ich bekomme einen zugriffsfehler ?


Delphi-Quellcode:
Base64DecodeFile(mystring,'c:\test.jpg');


Delphi-Quellcode:
function Base64DecodeFile(ABase64Str: String; AFileName: String): Boolean;
var
  InSize, OutSize: Cardinal;
  PIn, POut: Pointer;
begin
  result:= False;
  // get size of source
  InSize := Length(ABase64Str);
  // calculate size for destination
  PIn := @ABase64Str[1];
  OutSize := CalcDecodedSize(PIn, InSize);
  // prepare string length to fit result data
  with TMemoryStream.Create() do
  try
    SetSize(OutSize);
    POut := Memory;
    // decode !
    if Base64Decode(PIn, InSize, POut) then
    begin
      SaveToFile(AFileName);
      result:= True;
    end;
  finally
    Free;
  end;
end;

DGL-luke 21. Mär 2007 12:08

Re: zur base64 decodefile function aus der dp lib ?
 
Wo denn?

die Funktion scheint eine Datei in den Speicher einzulesen und dann die API(?)-Funktion Base64Decode drüberrumpeln zu lassen.
Zugriffsfehler gibt es viele... eine Access Violation oder ist die Datei gesperrt?

agm65 21. Mär 2007 12:15

Re: zur base64 decodefile function aus der dp lib ?
 
ich bin dem fehler auf der spur, irgendwas stimmt nicht mit dem übermitteln des base64 strings...

agm65 21. Mär 2007 12:44

Re: zur base64 decodefile function aus der dp lib ?
 
hey dabei werde ich echt blöd..
ich hole mir nen array per soap und fülle die werte in meinen listview.
jetzt habe ich die procedure convert image die mir die base64 bilder zurück verwandelt...
er macht das auch ohne probleme, nur nach dem letzten bekomme ich diesen oben benannten fehler.
wenn ich jetzt hier:

Delphi-Quellcode:
for i := 0 to Length(gigCarData) -1
einfach - 2 oder 3 machen bekommen ich natrülich weniger listview einträge, das komische ist jetzt aber er macht trotzdem alle bilder ???? HILFE das ist absolut unerklärlich


Delphi-Quellcode:

Procedure ConvertImage(images,filename:String);
begin

if (images <> inttostr(0)) and (images <> '') then
begin

if Base64DecodeFile(images,'c:\' + filename + '.jpg') = true then showmessage('true')
 else
 showmessage('false');
end;

end;

////////////////////////////////////////////////////////////////////////////////////

for i := 0 to Length(gigCarData) -1   do
begin
 application.ProcessMessages;

 ListItem          := frmmain.lvVehicles.Items.Add;

if gigCarData[i].ID <> '' then

 begin
  ListItem.Caption  := gigCarData[i].vid ;
  ListItem.SubItems.Add(gigCarData[i].brand);
  ListItem.SubItems.Add(gigCarData[i].model);


  ConvertImage(gigCarData[i].picture,gigCarData[i].vid);

  frmmain.lvVehicles.Items[i].Checked := true
 end
 else
 begin
  ListItem.Caption := 'Kein Eintrag';
  ListItem.SubItems.Add('Kein Eintrag');
  ListItem.SubItems.Add('Kein Eintrag');
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:05 Uhr.

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