Domanda

Sto usando CreateFileA e ReadFile in Visual C ++ 2008 per aprire e leggere un file di testo ASCII in memoria. Funziona bene (posso visualizzare i suoi contenuti in memoria), ma con un'eccezione. Per qualche motivo i caratteri TAB (0x09) vengono cambiati in NULL (0x00). Inutile dire che questo sta causando il caos quando provo ad analizzare il file. Qualcuno sa cosa potrebbe causare questo o come posso risolverlo?

Ecco come sto aprendo il file:

hHandle = CreateFileA( pPath, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL );
GetFileSizeEx( hHandle, &tFileSize );
pBuf = (UINT8 *)malloc( tFileSize.LowPart );
ReadFile( hHandle, pBuf, tFileSize.LowPart, &dwBytesRead, NULL );

Il mio codice di progetto ha una solida gestione degli errori e non visualizzo alcun errore. Eventuali suggerimenti sarebbero apprezzati.

Grazie.

È stato utile?

Soluzione

Questo sembra davvero improbabile. Hai usato qualche altro strumento per esaminare il file su disco e verificare che i caratteri della scheda siano presenti?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top