AGB  ·  Datenschutz  ·  Impressum  







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

CodeLibrary BASE64 Unit

Ein Thema von Stoffel1984 · begonnen am 9. Jun 2004 · letzter Beitrag vom 9. Jun 2004
Antwort Antwort
Stoffel1984

Registriert seit: 9. Jun 2004
4 Beiträge
 
#1

CodeLibrary BASE64 Unit

  Alt 9. Jun 2004, 09:48
Hallo,

habe grade die Sakura Base64 Unit aus der Code Library mal ausprobiert und bin eigentlich ganz zufrieden. Funktioniert prima mit Strings. Jedoch bekomme ich es mit String Streams nicht hin. Vielleicht hat jemand ne Idee?

Hier mein Code:

Delphi-Quellcode:
procedure TVerarbeitung.Decode64;
var
  sp: TStringStream;
begin
  try
    sp:= TstringSTREAM.Create('');
    try
      Base64.Base64Decode(FDatenstring,Cardinal(FDatenstring.size),sp);
    except
      Application.Terminate;
    end;
  finally
    FDatenstring.CopyFrom(sp,sp.size);
  end;
end;

Wäre euch dankbar, wenn mir das mal jemand kurz erklären oder ggf korrigieren könnte.

Danke1

Stoffel
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#2

Re: CodeLibrary BASE64 Unit

  Alt 9. Jun 2004, 10:07
Das geht so gar nicht, da Dein Code auf das Object vom Typ TStringStream zeigt, aber nicht auf den von den Daten belegten Speicher

Nicht getestet, sollte aber gehen:

Delphi-Quellcode:
procedure TVerarbeitung.Decode64;
begin
  FDatenstring.DataString := Base64.Base64Decode(FDatenstring.DataString);
end;
......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Stoffel1984

Registriert seit: 9. Jun 2004
4 Beiträge
 
#3

Re: CodeLibrary BASE64 Unit

  Alt 9. Jun 2004, 10:36
Hallo,

danke für die schnelle Antwort.
So gehts nicht - DataString ist ReadOnly. Es gibt die Möglichkeit dies über WriteString zu lösen. Nur: Wenn ich

FDatenstring.WriteString(Base64.Base64Decode(FDatenstring.DataString)); mache hängt er mir den DecodedString an den DataString an.

Also bräuchte ich eine Funktion, welche mir den DataSting überschreibt oder ggf. löscht.

Jemand ne Idee?

Gruß,
Stoffel
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#4

Re: CodeLibrary BASE64 Unit

  Alt 9. Jun 2004, 10:42
Vorher Position auf 0 setzen.

Delphi-Quellcode:
FDatenstring.Position := 0;
FDatenString.WriteString(Base64.Base64Decode(FDatenstring.DataString));
......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Stoffel1984

Registriert seit: 9. Jun 2004
4 Beiträge
 
#5

Re: CodeLibrary BASE64 Unit

  Alt 9. Jun 2004, 10:48
Okay...
was aber, wenn der String der vorher drin steht länger ist als der, der reingeschrieben wird?
Dann hab ich ja theoretisch noch Teile des alten Strings hinter dem neuen, oder?

Stoffel
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#6

Re: CodeLibrary BASE64 Unit

  Alt 9. Jun 2004, 10:51
Zitat von Stoffel1984:
Dann hab ich ja theoretisch noch Teile des alten Strings hinter dem neuen, oder?
Nein, lt. der OH von Delphi ersetzt WriteString alles von der Position bis zum Ende des aktuellen Strings. Evtl. überhängende Daten werden dabei verworfen.

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Stoffel1984

Registriert seit: 9. Jun 2004
4 Beiträge
 
#7

Re: CodeLibrary BASE64 Unit

  Alt 9. Jun 2004, 10:57
Super, danke!
  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 22:23 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