Форум: "WinAPI";
Текущий архив: 2005.08.28;
Скачать: [xml.tar.bz2];
ВнизПроблемы перекодировки Найти похожие ветки
← →
***_Diman_*** (2005-07-10 09:43) [0]Люди подскажите плз нижеприведенная функция вытаскивает из обычного текстового файла строку разделённую #, с выводом в MessageBox английских букв цифр и пр. символов никаких проблем нет а вот русские ну не в какую не выводятся. Что делать, как поправить?
LRESULT LoadContragents(HWND hItem)
{
HANDLE hFile;
PCHAR Buffer;
TCHAR Naimenovanie[100] = TEXT("");
TCHAR RNN[15] = TEXT("");
TCHAR Address[100] = TEXT("");
TCHAR RS[15] = TEXT("");
TCHAR MFO[15] = TEXT("");
TCHAR Phone[20] = TEXT("");
DWORD nCnt;
INT count,i,nFileSize,sPart;
hFile = CreateFile(TEXT ("\\1CSoftware\\Databases\\contragents.dat"),GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,0,NULL);
if (hFile == INVALID_HANDLE_VALUE)
{
MessageBox(0,TEXT ("Файл не найден !"),TEXT ("Ошибка"),MB_ICONWARNING);
return 0;
}
nFileSize = GetFileSize(hFile,NULL);
sPart = 1;
count = 0;
for (i = 0; i < nFileSize-1; i++)
{
//а вот тут будет считывание до CRLF
ReadFile(hFile,&Buffer,1,&nCnt,NULL);
if ((UCHAR)Buffer == "#")
{
sPart++;
count = 0;
continue;
}
switch (sPart)
{
case 1:
Naimenovanie[count] = (UCHAR)Buffer;
break;
case 2:
RNN[count] = (UCHAR)Buffer;
break;
case 3:
Address[count] = (UCHAR)Buffer;
break;
case 4:
RS[count] = (UCHAR)Buffer;
break;
case 5:
MFO[count] = (UCHAR)Buffer;
break;
case 6:
Phone[count] = (UCHAR)Buffer;
break;
}
count++;
//теперь добавл.
}
SendMessage(hItem,CB_ADDSTRING,0,LPARAM(Naimenovanie));
MessageBox(0,Naimenovanie,TEXT("text"),MB_OK);
MessageBox(0,RNN,TEXT("text"),MB_OK);
MessageBox(0,Address,TEXT("text"),MB_OK);
MessageBox(0,RS,TEXT("text"),MB_OK);
MessageBox(0,MFO,TEXT("text"),MB_OK);
MessageBox(0,Phone,TEXT("text"),MB_OK);
CloseHandle(hFile);
return 0;
}
Кстати может подскажите более простой способ построчного чтения файла чем этот (ну он ещё немного не доделан), а то кажется наворотил я там с избытком много лишнего.
← →
Virgo_Style © (2005-07-10 11:02) [1]Вероятно, проблемы с кодировкой?
← →
***_Diman_*** (2005-07-10 12:20) [2]ну да. вместо русских букв всякая лабуда нечитаемая. а с кодировками я уже запутался окончательно. билли в зубы надо было дать в своё время чтобы только одну придумал и людям голову не морочил.
← →
Anatoly Podgoretsky © (2005-07-10 12:52) [3]Не Билли надо дать, а местный доморащеных умельцев на Колыму. Они до сих пор продолжают свою вредительскую деятельность.
← →
***_Diman_*** (2005-07-10 13:14) [4]ну, это всё лирика, и не по существу вопроса. так что делать дабы и русские буквы нормально отображались?
← →
Anatoly Podgoretsky © (2005-07-10 13:23) [5]Делать правильно.
← →
Virgo_Style © (2005-07-10 16:01) [6]Открыть исходный файл для просмотра, например, Total Commander"ом, подобрать кодировку, при загрузке перекодировать из этй кодировки в нужную.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2005.08.28;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.04 c