TMemoryStream speichern
-
hola leute
folgendes problem:
ich moechte den inhalt eines MemoryStreams in ein file speichern.
hab es mit folgendem code probiertvoid __fastcall TForm1::Button1Click(TObject *Sender) { test *field=new test; void *v; TMemoryStream *test1=new TMemoryStream; liste->Items->SaveToStream(test1); test1->Read(v,test1->Size); field->str1="Test1"; field->str2="Test2"; field->str3="Test3"; TFileStream *datei=new TFileStream("tescht.txt",fmCreate); v=(void*)field; datei->WriteBuffer(field->str1.c_str(),field->str1.Length()+1); datei->WriteBuffer(field->str2.c_str(),field->str2.Length()+1); datei->WriteBuffer(field->str3.c_str(),field->str3.Length()+1); datei->WriteBuffer(test1,test1->Size); delete datei; }
"liste" ist ne TListBox die ich mit ein paar woertern gefuellt habe.
wenn ich mir dann das file "tescht.txt" im editor angucke, steht dort wo der stream abgespeichert werden sollte, nur mist.vielleicht kann mir da ja wer weiter helfen
Deadman
-
Du hast dir die Methoden von TMemoryStream schon angesehn oder?
-junix
-
ja hab ich.
hab im uebrigen den code von nem delphi project abgeguckt. die bcb hilfe hab ich mir auch angesehen.
test1->position=0; hab ich auch schon gesetzt. hab das mal mit der listbox getestet. wenn ich den stream wieder in die listbox schreibe, passt alles. nur beim speichern klappts nichDeadman
-
derzeitiges versuchsstadium:
void __fastcall TForm1::Button1Click(TObject *Sender) { test *field=new test; void *v; TMemoryStream *test1=new TMemoryStream; liste->Items->SaveToStream(test1); liste->Clear(); test1->Position=0; liste->Items->LoadFromStream(test1); test1->Read(v,test1->Size); field->str1="Test1"; field->str2="Test2"; field->str3="Test3"; TFileStream *datei=new TFileStream("tescht.txt",fmCreate); v=(void*)field; test1->Position=0; datei->WriteBuffer(field->str1.c_str(),field->str1.Length()+1); datei->WriteBuffer(field->str2.c_str(),field->str2.Length()+1); datei->WriteBuffer(field->str3.c_str(),field->str3.Length()+1); datei->WriteBuffer(test1,test1->Size); delete datei; }
-
oki doki, habs nun gerafft...
mercyDeadman