Unicode und verschluckte Zeichen?!?



  • Hallo NG,

    ich versuche Text in eine Unicode Datei zu bringen, jedoch wird der 1. Buchstabe immer abgeschnitten.

    HANDLE hFile;
        int x = 0;
        int i = 0;
        DWORD numWrite;
        TCHAR zwTchar;
        CString Zeile = "";
    
        const TCHAR* szFilename1 = GeoeffneteDateimitPfad;
    
        hFile = CreateFile(szFilename1, GENERIC_WRITE, 0, 0, CREATE_ALWAYS, 0, 0);
    
        if(hFile == INVALID_HANDLE_VALUE){
            MessageBox(_T("Kann Datei nicht öffnen!"),NULL,MB_OK);}
    
        else{
    
            while(x <= ZeilenCounter){
    
                Zeile = ...;
                while (i < Zeile.GetLength ()){
                    zwTchar = MAKEWORD(Zeile.GetAt(i) ,0);
                    WriteFile(hFile,&zwTchar,sizeof(zwTchar),&numWrite,0);
                    i++;
                }
                i = 0;
                x++;
            }
        }
    
        CloseHandle(hFile);
    

    Meine Frage:

    Muss ich etwas besonderes beachten, wenn ich in diese datei schreiben will?

    ODER:

    Mache ich den Fehler bereits beim Öffnen?

    HANDLE hFile;
        WORD wLeadin;
        DWORD dwNumRead;
        CString Pfad = "My\ Documents\\Task\\";
        CString Datei = pmyListCtrl->GetItemText (selItem,4);
        GeoeffneteDateimitPfad = Pfad + Datei;
        const TCHAR* szFilename = GeoeffneteDateimitPfad;
        TCHAR szChar[2], zwTchar;
    
        DateiInhalt = "";
    
        hFile = CreateFile(szFilename, GENERIC_READ, 0, 0, OPEN_EXISTING, 0, 0);
    
        if(hFile == INVALID_HANDLE_VALUE){
            MessageBox(TEXT("Invalide File Handle"),NULL,MB_OK);
        }
    
        if(ReadFile(hFile, &wLeadin, 2, &dwNumRead, 0)){
    
                while(ReadFile(hFile, szChar, sizeof(TCHAR), &dwNumRead, 0) && dwNumRead >0){
                    szChar[1] = '\0';
                    DateiInhalt = DateiInhalt + szChar[0];
                }
        }
        else{
            MessageBox(TEXT("Kann Datei nicht öffnen"),NULL,MB_OK);
        }
    
        CloseHandle(hFile);
    

    Vielen Dank für die Hilfe!

    Gruß Walter


Anmelden zum Antworten