AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein XML Gespeicherter String anders als String aus dem Speicher?
Thema durchsuchen
Ansicht
Themen-Optionen

Gespeicherter String anders als String aus dem Speicher?

Ein Thema von creehawk · begonnen am 14. Nov 2018 · letzter Beitrag vom 14. Nov 2018
Antwort Antwort
creehawk

Registriert seit: 1. Jul 2013
Ort: Hamburg
233 Beiträge
 
Delphi 10.4 Sydney
 
#1

Gespeicherter String anders als String aus dem Speicher?

  Alt 14. Nov 2018, 09:54
Zur speicherung in eine XML als base64binary übertrage eine JPG Grafik in einen String.

Code:
function JPEGToBase64String(FileName: String): String;
var
  Stream: TFileStream;
begin
  Stream := TFileStream.Create(FileName, fmOpenRead);
  Result := TIdEncoderMIME.EncodeStream(Stream);
  Stream.Free;
end;
Den erzeugten String speichere ich über eine Stringlist als TXT ab. Diese TXT lade ich mit folgenden Code wieder um den String zu decodieren und anzuzeigen:

Code:
procedure TForm1.Button2Click(Sender: TObject);
var
  Str: String;
  Strem: TMemoryStream;
  JPG: TJPEGImage;
begin
  Str := Path + 'Test.txt'; // die Datei mit dem String
  Stream := TMemoryStream.Create;
  try
    TIdDecoderMIME.DecodeStream(Str, Stream);
    Stream.Position := 0;
    JPG := TJPEGImage.Create;
     try
      JPG.LoadFromStream(Stream);
      Image1.Picture.Assign(JPG);
     finally
      JPG.Free;
     end;
  finally
   Stream.Free;
  end;
end;
Ergebnis: JPEG Fehler #53, soll heißen kein korrektes JPG, also keine Anzeige

WENN ich aber den String global als Variable verwende, also NICHT als String speichere und an die Decodierung gebe geht das alles anstandlos.

Fazit : Beim speichern des Strings passiert irgendwas damit was letztlich zum Fehler führt. Oder? Und wenn ja was?


creehawk
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.060 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Gespeicherter String anders als String aus dem Speicher?

  Alt 14. Nov 2018, 10:13
Du rufst DecodeStream mit den Inhalt von Path + 'Test.txt' , also dem Dateipfad, auf.
Du willst doch sicherlich den DateiINHALT als String auslesen und übergeben, gell?
Nimm noch nen Kaffee!
  Mit Zitat antworten Zitat
creehawk

Registriert seit: 1. Jul 2013
Ort: Hamburg
233 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Gespeicherter String anders als String aus dem Speicher?

  Alt 14. Nov 2018, 14:11
Gut.

Okay.

Schon verstanden.

Ich hasse Kaffee. Ich hol' mir einen schönen Tee. Schwarz. Mit Schuss.

Programmieren lasse ich in Zukunft sein. Häkeln ist einfacher.

Ich danke untertänigst für den Hinweis. Sackerlzement.

creehawk
  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 01:44 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