Was für die ::Hyper.Experten...Am verzweifeln :-(
-
Hi camper...erstmal danke für deine Bemühungen/Ausführungen bzgl. POD^^ ...

Also ich hab das:
camper schrieb:
cout << string(pszFileBuffer,ulFileBytes);
einfach mal ausprobiert...Aber das hat nix gebracht...gleiches (unvollständiges) Ergebnis wie zuvor mit "cout << pszFileBuffer << endl << endl;"
camper schrieb:
enthält sie offenbar auch \0 zeichen eingebettet
Ja muss sie ja...naja ich schreibe die Datei so:
// TAG: DEF_IDXPOS_GFX fsIdxFile.write(cszFTBeginIdxFile, strlen(cszFTBeginIdxFile)); // <- Dateianfangs-Tag schreiben // TAG: #FILE_VERSION# fsIdxFile.write(cszFTFileVersion, strlen(cszFTFileVersion)); // <- Dateiversion-Tag schreiben // VALUE: lFileVer fsIdxFile.write(reinterpret_cast<char*>(&lFileVer), sizeof(long)); // <- Dateiversion schreiben // TAG: #DATAPOS_BLOCK_BEGIN# fsIdxFile.write(cszFTIdxBlockBegin, strlen(cszFTIdxBlockBegin)); // <- Datenpositionsblockanfang-Tag schreiben // TAG: #IPLB_BLOCK_BEGIN# fsIdxFile.write(cszFTPlaybackBegin, strlen(cszFTPlaybackBegin)); // <- Playback-Blockanfang-Tag schreiben // VALUE: IPlaybackCfg.dspDSetPos.ulBegin fsIdxFile.write(reinterpret_cast<char*>(&this->IPlaybackCfg.dspDSetPos.ulBegin), sizeof(unsigned long)); // TAG: % fsIdxFile.write(reinterpret_cast<const char*>(&chSeparator), sizeof(char)); // <- Wert-Trennzeichen schreiben // VALUE: IPlaybackCfg.dspDSetPos.ulEnd fsIdxFile.write(reinterpret_cast<char*>(&this->IPlaybackCfg.dspDSetPos.ulEnd), sizeof(unsigned long)); // TAG: #IPLB_BLOCK_END# fsIdxFile.write(cszFTPlaybackEnd, strlen(cszFTPlaybackEnd)); // <- Playback-Blockend-Tag schreiben // TAG: #IITF_BLOCK_BEGIN# fsIdxFile.write(cszFTInterfaceBegin, strlen(cszFTInterfaceBegin)); // <- Interface-Blockanfang-Tag schreiben // VALUE: IInterfaceCfg.dspDSetPos.ulBegin fsIdxFile.write(reinterpret_cast<char*>(&this->IInterfaceCfg.dspDSetPos.ulBegin), sizeof(unsigned long)); // TAG: % fsIdxFile.write(reinterpret_cast<const char*>(&chSeparator), sizeof(char)); // <- Wert-Trennzeichen schreiben // VALUE: IInterfaceCfg.dspDSetPos.ulEnd fsIdxFile.write(reinterpret_cast<char*>(&this->IInterfaceCfg.dspDSetPos.ulEnd), sizeof(unsigned long)); // TAG: #IITF_BLOCK_END# fsIdxFile.write(cszFTInterfaceEnd, strlen(cszFTInterfaceEnd)); // <- Interface-Blockend-Tag schreiben // TAG: #ISTP_BLOCK_BEGIN# fsIdxFile.write(cszFTStartupBegin, strlen(cszFTStartupBegin)); // VALUE: IOptionsCfg.IStartupCfg.dspDSetPos.ulBegin fsIdxFile.write(reinterpret_cast<char*>(&this->IOptionsCfg.IStartupCfg.dspDSetPos.ulBegin), sizeof(unsigned long)); // TAG: % fsIdxFile.write(reinterpret_cast<const char*>(&chSeparator), sizeof(char)); // <- Wert-Trennzeichen schreiben // VALUE: IOptionsCfg.IStartupCfg.dspDSetPos.ulEnd fsIdxFile.write(reinterpret_cast<char*>(&this->IOptionsCfg.IStartupCfg.dspDSetPos.ulEnd), sizeof(unsigned long)); // TAG: ]%[ fsIdxFile.write(cszStrLengthSep, strlen(cszStrLengthSep)); // <- Informations-Trennzeichen schreiben // VALUE: IOptionsCfg.IStartupCfg.uiLenKeyName fsIdxFile.write(reinterpret_cast<char*>(&this->IOptionsCfg.IStartupCfg.uiLenKeyName), sizeof(unsigned int)); // TAG: % fsIdxFile.write(reinterpret_cast<const char*>(&chSeparator), sizeof(char)); // <- Wert-Trennzeichen schreiben // VALUE: IOptionsCfg.IStartupCfg.uiLenKeyPath fsIdxFile.write(reinterpret_cast<char*>(&this->IOptionsCfg.IStartupCfg.uiLenKeyPath), sizeof(unsigned int)); // TAG: #ISTP_BLOCK_END# fsIdxFile.write(cszFTStartupEnd, strlen(cszFTStartupEnd)); // TAG: #DATAPOS_BLOCK_END# fsIdxFile.write(cszFTIdxBlockEnd, strlen(cszFTIdxBlockEnd)); // TAG: IDXPOS_GFX_ENDDEF fsIdxFile.write(cszFTEndIdxFile, strlen(cszFTEndIdxFile));...Da muss es doch ne Lösung zu geben

-
Hmm hab noch mal ne Frage wie kann ich denn das:
fsIdxFile.seekg(0L); // nochmal annen Anfang for(char ch; fsIdxFile.get(ch) && cout.put(ch); ); // Ausgabestatt auf cout innen std::string umleiten ?...Also das 'ch' sozusagen immer an den String anhängen... ?
vllt. klappt das ja...
...also vollständig OHNE C-Strings, nur mit ner einfachen char-Variable 
Boah is das ne Kagge...das muss doch irg wie funktionieren...*grummel*
-
std::cout << std::string("Hel\0lo", 6) << std::endl;funzt bei mir
-
tja schrieb:
std::cout << std::string("Hel\0lo", 6) << std::endl;funzt bei mir
Oha...was gibt er denn bei dir da aus...bei mir steht da nur "Hel" ...mehr nicht

-
Hab noch was ausprobiert:
// ... string strLoad; for(char chRead; fsIdxFile.get(chRead); ) strLoad += chRead; cout << strLoad; // ...und das funktioniert auch nicht ... (gleiche unvollständige Ausgabe)
Kann echt nicht wahr sein

-
Ausgabe: Hel lo
Mit MinGW.
-
Hmm ich hab Microsoft Visual C++ 6.0 ...Aber das würde ja bedeuten mein Compiler is schrott bzw. der M$ Compiler hat n fetten Bug...
-
Expertensucher schrieb:
Hmm ich hab Microsoft Visual C++ 6.0 ...Aber das würde ja bedeuten mein Compiler is schrott bzw. der M$ Compiler hat n fetten Bug...
das sollte mittlerweile bekannt sein. der compiler hat bereits einige jahre auf dem buckel und wird auch nicht mehr supported.
-
camper schrieb:
Expertensucher schrieb:
Hmm ich hab Microsoft Visual C++ 6.0 ...Aber das würde ja bedeuten mein Compiler is schrott bzw. der M$ Compiler hat n fetten Bug...
das sollte mittlerweile bekannt sein. der compiler hat bereits einige jahre auf dem buckel und wird auch nicht mehr supported.
Ist das dein ernst ????? Du meinst echt, daran liegt es ??? ...*schluck*
Hmm welchen Compiler benutzt du denn ? Wenn ich mal Fragen darf ?
-
Zum Beispiel nen neueren von MS?
Visual C++ 2005 Express ist z.B. kostenlos...
-
LÖL, jo hab ich auch...mal ausprobiert und damit gehts...KACK M$ is also echt n Bug...*grummel*...Naja der Compiler hat nur leider kein Resourceneditor...naja
DAnk euch!