سؤال

وأنا باستخدام CreateFileA وطلب & ReadFile في Visual C ++ 2008 لفتح وقراءة ملف نصي ASCII في الذاكرة. وهذا يعمل على ما يرام (لا أستطيع عرض محتوياتها في الذاكرة)، ولكن مع استثناء واحد. لسبب ما يجري تغيير الأحرف TAB (0x09) إلى القيم الخالية (0x00). وغني عن القول، وهذا هو تعيث فسادا عندما أحاول تحليل الملف. لا أحد يعرف ما يمكن أن يسبب هذا، أو كيف يمكن إصلاح ذلك؟

وهذه هي الطريقة التي أنا فتح الملف:

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 );

ورمز المشروع بلدي ديه قوة معالجة الأخطاء، وأنا لا تحصل على أية أخطاء. سيكون موضع تقدير أي اقتراحات.

وشكرا.

هل كانت مفيدة؟

المحلول

وهذا يبدو من غير المحتمل حقا. هل استخدمت بعض أداة أخرى لفحص ملف على القرص، والتحقق من أن أحرف الجدولة هي هناك؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top