AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken BlobStream in StringGrid speichern
Thema durchsuchen
Ansicht
Themen-Optionen

BlobStream in StringGrid speichern

Ein Thema von Smiley · begonnen am 6. Mai 2022 · letzter Beitrag vom 23. Mai 2022
Antwort Antwort
Seite 3 von 3     123   
Poelser

Registriert seit: 21. Apr 2008
Ort: Europa
145 Beiträge
 
Delphi 10.4 Sydney
 
#21

AW: BlobStream in StringGrid speichern

  Alt 23. Mai 2022, 11:29
Ohne jetzt genauer in die Materie einzutauchen, ist mein erster Gedanke Length(AktData.JpegArray). SizeOf ist doch nur die Größe des Pointers, du brauchst hier aber doch die Länge der Daten.
LG aus dem hohen Norden, Edmund
  Mit Zitat antworten Zitat
Benutzerbild von Smiley
Smiley

Registriert seit: 9. Dez 2004
Ort: Gedern
205 Beiträge
 
Delphi 10.4 Sydney
 
#22

AW: BlobStream in StringGrid speichern

  Alt 23. Mai 2022, 11:43
Muss da vielleicht sowas wie
BlobStream.ReadBuffer(AktData.JpegArray,BlobStream .Size);
rein ?

Streams sind mir noch völlig fremd daher so merkwürdige Fragen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.016 Beiträge
 
Delphi 12 Athens
 
#23

AW: BlobStream in StringGrid speichern

  Alt 23. Mai 2022, 12:30
BlobStream.WriteBuffer(AktData.JpegArray, SizeOf(AktData.JpegArray));

Aber NEIN.

So wird bloß die Array-Variable gespeichert.

Wäre es ein dynmaisches Array, dann bloß der Array-Zeiger
und bei einem statischen Array die Felder, also bloß die Objekt-Zeiger zu den TJpegImage.



Du willst mußt aber den Inhalt (die Daten) der JpegImage speichern, also jeweils SaveToStream.
Soll das dann noch alles zusammen in einen Stream, mußt du die die größe der einzelnen Streams speichern
und dann beim Laden die Streams aufteilen und jeweils in einen MemoryStream umkopieren.
* speichernd an einen Stream anhängen geht
** vorher die alte Position/Ende merken, ein paar Byte (z.B. Integer) als Platzhalter einfügen, mit SaveToStream das Jpeg anhängen und dann den Platzhalter mit der Größe überschreiben
** oder SaveToStream in einen zwischenStream (TMemoryStream) und dann Stream.Size in den Blob und anschließend die Daten mit CopyData rüberkopieren
* beim Laden weiß dann aber LoadFromStream nicht, wo es endet
** also das Size auslesen, die Daten in einen TMemoryStream, MS.Position zurück auf 0 und LoadFromStream(MS)
** und dann so weiter, für die anderen Streams
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (23. Mai 2022 um 13:46 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Smiley
Smiley

Registriert seit: 9. Dez 2004
Ort: Gedern
205 Beiträge
 
Delphi 10.4 Sydney
 
#24

AW: BlobStream in StringGrid speichern

  Alt 23. Mai 2022, 13:29
Na, jetzt wissen wir wenigstens dass es so nicht funktioniert.
Wäre ja zu schön gewesen.

Ich lasse meine Praktikanten auch immer erst mal einige Zeit suchen und sich mit dem Thema beschäftigen und gebe nur kleine Hinweise aber irgendwann ist dann doch die Schmerzgrenze erreicht und dann sage ich ihnen wie es geht.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   

 

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:33 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