Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.08.28;
Скачать: CL | DM;

Вниз

Проблемы перекодировки   Найти похожие ветки 

 
***_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 вся ветка

Текущий архив: 2005.08.28;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.073 c
1-1123155876
vol
2005-08-04 15:44
2005.08.28
в Memo есть scroll


14-1122630027
ANB
2005-07-29 13:40
2005.08.28
История России и Украины.


1-1123612655
Aleksandrrr
2005-08-09 22:37
2005.08.28
Блокировка выделенных клавиш !!!


8-1113919174
MAXIMUM666
2005-04-19 17:59
2005.08.28
Зацикливание


1-1123495332
rolex
2005-08-08 14:02
2005.08.28
Из TStrings в String (и обратно), при помощи разделителя.