Binary File in ByteArray laden
-
Hallo zusammen,
ich steige gerade von Delphi auf C++ um und habe jetzt ein Problem.
Ich möchte gerne eine Binary Datei in ein ByteArray laden.Dazu habe ich ein wenig geschaut und gesehen, dass man das mit einem ifstream machen kann.
Hier mein Code:
ifstream inFile; inFile.open(Edit1->Text , ios::binary);Jetzt bekomme ich den Fehler:
E2285 Keine Übereinstimmung für 'ifstream::open(UnicodeString,const std::_Iosb<int>::_Openmode)' gefundenEs scheint so, als wenn die Methode open keinen UnicodeString möchte.
Nur was kann ich jetzt machen?
-
Was (zur Hölle) ist ein UnicodeString?
Irgendwie musst du ihn zu std::string konvertieren.
-
ifstream inFile; inFile.open(Edit1->Text , ios::binary);Nutze den Konstruktor von
ifstream. Dafür wurde er gemacht.ifstream inFile(Edit1->Text, ios::binary);Was dein Problem anbelangt: Falls in dem Dateinamen nur ASCII-Zeichen sind (bzw. Zeichen die in einen
charreinpassen), Konvertiere denUnicodeStringzu einemstd::stringbzw. einem C-String (char const*). Dazu müssten wir aber das Interface kennen...Was (zur Hölle) ist ein UnicodeString?
Durch Nutzung meines Verstandes habe ich gefolgert dass es wohl eine Klasse ist die Unicode-Strings repräsentiert. Was denkst du?
-
Durch eine kleine Recherche bin ich auf folgendes gestoßen.
UnicodeStringist wahrscheinlich eine der folgenden Klassen:-
icu::UnicodeString- dann wäre die Konvertierung AFAICS sehr hässlich (überextract) -
System::UnicodeStringaus der RAD API. Scheint das gesuchte zu sein, da es irgendwie mit Delphi in Verbindung steht. - Der
UnicodeStringvon diesem SO-Post.
@Nathan: Sorry falls das jetzt blöd rübergekommen ist.

-
-
-
ifstream inFile(Edit1->Text.c_str(), ios::binary);Eigentlich gehört das nicht ins C++ Forum sondern nach C++Builder/VCL
-
Du kannst auch den TFileStream nutzen, wenn du magst. Dort entfällt das Konvertieren von ISO-C++ <-> VCL / FML Klassen.
-
TurboC und TurboDebugger - das war noch schön. Heute ist alles so kompliziert.

http://edn.embarcadero.com/article/20841EDIT:
TurboAssembler nicht zu vergessen.EDIT #2:
Jetzt rede ich schon wie mein Bruder, der immer von UNIVAC-Kisten geschwärmt hat (ein Puter etwa so groß wie 4 Überseecontainer.
)
-
So, ersteinmal vielen Dank an euch.
Ich hätte vielleicht erwähnen sollen, dass ich als IDE das RAD Studio von Embarcadero benutze.Aber ich hätte nicht gedacht, dass die IDE für Delphi als auch für C++ als Standardstring einen UnicodeString benutzt.
Dann werde ich es mal mit dem TFileStream versuchen (ist mir vertrauter ^^).
Ich denke aber, dass ihr leider noch weitaus mehr Threads von mir hier sehen werdet ^^