AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Base64Encode funktioniert nicht

Ein Thema von Neutral General · begonnen am 20. Jan 2011 · letzter Beitrag vom 21. Jan 2011
Antwort Antwort
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Base64Encode funktioniert nicht

  Alt 20. Jan 2011, 09:04
Hallo,

Ich verstehe gerade nicht das Problem. Folgendes:

Delphi-Quellcode:
procedure Beispiel(AStream: TMemoryStream);
var tmp: TMemoryStream;
begin
  tmp := TMemoryStream.Create;
  try
    tmp.SetSize(CalcEncodedSize(AStream.Size));
    Base64Encode(AStream.Memory^,AStream.Size,tmp.Memory^);
    AStream.Clear; // <--
    AStream.Write(tmp.Memory^,tmp.Size);
  finally
    tmp.Free;
  end;
end;
An der markierten Stelle kracht es. Außerdem stehen in tmp nach Base64Encode nur 0-Bytes.
Was mache ich denn falsch?

Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

AW: Base64Encode funktioniert nicht

  Alt 20. Jan 2011, 12:38
Hallo Michael,

eigentlich müsste es in der Zeile davor "gekracht" haben, wenn ich deinen Code mit anderen Beispielen hier in der DP vergleiche.

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: Base64Encode funktioniert nicht

  Alt 20. Jan 2011, 12:45
Hallo,

Also ich benutze diese Überladung von Base64Encode:

procedure Base64Encode(const InBuffer; InSize: Cardinal; var OutBuffer);

Was ist denn das Problem?
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

AW: Base64Encode funktioniert nicht

  Alt 20. Jan 2011, 12:57
Die von Dir verwendete Überladung war klar zu sehen.
Ich hatte die DP nach Base64Encode durchsucht und diesen Beitrag gefunden.
Du dereferenzierst Memory, Matthias nicht.
Dieser Unterschied könnte über Erfolg und Misserfolg entscheiden.
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: Base64Encode funktioniert nicht

  Alt 20. Jan 2011, 13:02
Ja.. den Beitrag habe ich schon gesehen.
Allerdings müsste seine Übergabe (ohne Dereferenzierung) falsch sein.

Was ich grade feststelle: Mit und ohne Dereferenzierung ist nach dem Aufruf AStream = nil
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.487 Beiträge
 
Delphi 12 Athens
 
#6

AW: Base64Encode funktioniert nicht

  Alt 20. Jan 2011, 14:23
Allerdings müsste seine Übergabe (ohne Dereferenzierung) falsch sein.
Ohne Dereferenzierung ist schon richtig:
Delphi-Quellcode:
var
  p: Pointer;
{...}
  p := tmp.Memory;
  Base64Encode(AStream.Memory, AStream.Size, p);
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:27 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 by Thomas Breitkreuz