AGB  ·  Datenschutz  ·  Impressum  







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

In Stream schreiben und lesen ?

Ein Thema von madina · begonnen am 24. Jun 2008 · letzter Beitrag vom 26. Jun 2008
Antwort Antwort
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#1

Re: In Stream schreiben und lesen ?

  Alt 25. Jun 2008, 13:54
Mein Vorschlag (ungetestet) wäre wie folgt:
Du baust dir deinen Stream aus mehreren einzelnen Streams (welche den einzelnen Icons entsprechen) zusammen und speicherst vorher immer noch die Länge des folgenden Icons.

Delphi-Quellcode:
var c:cardinal;
    tempStream:TMemorytsream;
begin
  Stream:= TMemoryStream.Create;
  tempStream:=TMemorystream.Create;
  try
    frmMain.CDS_Laden(cdsLand, '\Land.dat');

    for i:=0 to 240 do
      begin
        frmMain.ilFlaggen.GetIcon(i, icBild);
        // SaveImageToStream
        tempstream.clear;
        icBild.SaveToStream(tempStream);
        c:=tempstream.size;
        stream.write(c,4); //Größe des IconStreams speichern
        tempstream.seek(0,sofrombeginnig);
        stream.copyfrom(tempstream,c); //IconStream kopieren / anhängen
        
        cdsLand.Insert;
          cdsLand['sLand'] := cbLand.Items[i]; // LandName eintragen
          // LoadBlobFieldFromStream
          TBlobField(cdsLand.FieldByName('blbFahne')).LoadFromStream(Stream); // Icon eintragen
        cdsLand.Post;
      end;
  finally
    Stream.free;
    tempstream.free;
  end;

end;
 


begin
  Stream:= TMemoryStream.Create;
  tempStream:=TMemorystream.Create;

  try
     
    //warum hier keine Schleife?
  
    // DatenLesen
    TBlobField(cdsLand.FieldByName('blbFahne')).SaveToStream(Stream);
    Stream.seek(0,sofrombeginnig);
    Stream.read(c,4); //Länge des ersten/nächsten Icons lesen
    tempstream.clear;
    tempstream.copyfrom(stream,c); //Icon rauskopieren
    
    icBild.LoadFromStream(tempStream);
    Image1.Picture.Assign(icBild);
  finally
    Stream.Free;
    tempstream.free;
  end;
end;
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  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 14:11 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