Bitmaps o. ä. als Text laden
-
Hi,
Wie kann ich Bitmaps, Mp3s u.s.w. als Text laden? Ich kann sie ja auch z.B. im Editor laden. Diesen Text möchte ich bekommen. Ich bekomme mit LoadFromFile() von TStringList aber immer nur die ersten paar Zeichen. Das gleiche Problem gibt es mit fread() und mit TFileStream.
Kann ich noch was anderes probieren?
-
fread hat so einen schönen Binärmodus der nicht nur bis zur nächsten Leerzeile liest(daher bei dir nur "ein paar Zeichen") sondern soviel wie DU willst
edit: ich wusst garnicht das man soviele Fehler in einem Satz machen kann
[ Dieser Beitrag wurde am 18.07.2002 um 10:04 Uhr von dreaddy editiert. ]
-
Hallo
Datei als Binaerdatei oeffnen (sonst geht es nicht)
MfG
Klaus
-
Das klappt nicht so ganz...
Immer noch nur ein paar Zeichen...void __fastcall TForm1::FormCreate(TObject *Sender) { FILE *stream = new FILE; int handle; char *FileName = "C:\\a.bmp"; handle = open(FileName, O_RDWR | O_BINARY); if ((stream = fopen(FileName, "r+b"))== NULL) { ShowMessage("Datei kann nicht geöffnet werden!"); delete stream; return; } int length = filelength(handle); char *buf = new char[length]; rewind(stream); fread(buf, 1, length, stream); Memo1->Lines->Text = buf; fclose(stream); delete stream; delete[] buf; }
Edit: Source Code aktualisiert, mit selbem Problem.
[ Dieser Beitrag wurde am 18.07.2002 um 14:16 Uhr von eßer editiert. ]
-
Scheint anscheinend keiner zu wissen. Kann ein Mod den Thread vielleicht nach C++ verschieben? Hat ja auch nicht mehr viel mit der VCL zu tun.
Danke.
-
Das liegt wohl daran, dass irgendwo ein Nullbyte drin ist und das Textfeld (Memo oder wie das heißt) dann denkt, der Text sei zu Ende.
-
Ersetze einfach alle Bytes im Buffer, die 0 sind durch irgendwas ungleich 0.
-
Danke!
-
Hmm, wie soll das denn funktionieren?