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

Вниз

Перевод Dos-кодировки в Win   Найти похожие ветки 

 
Lexer ©   (2003-01-29 11:16) [0]

Помогите, как перевести текст из ASCII(DOS charset) в ANSI(Windows charset).


 
Anatoly Podgoretsky ©   (2003-01-29 11:20) [1]

OemToChar


 
Lexer ©   (2003-01-29 11:22) [2]

У ф-ии 2 параметра типа PChar... если можно с примером.


 
Anatoly Podgoretsky ©   (2003-01-29 11:28) [3]

OemToChar(p1,p2)


 
Lexer ©   (2003-01-29 11:36) [4]

?
cChar, cStr: PChar;
StrFile: string;
cChar := PChar(StrFile);
OemToChar(cChar, cStr);


В итоге cStr = nil.


 
Anatoly Podgoretsky ©   (2003-01-29 11:42) [5]

Естественно ведь StrFile ничего не присвоено


 
Lexer ©   (2003-01-29 11:46) [6]

Я привел только 2 отрезка из кода
cChar, cStr: PChar;
StrFile: string;
...

чтение из файла в StrFile
...
cChar := PChar(StrFile);
OemToChar(cChar, cStr);

Здесь cChar вполне реально содержит строку (проверено).


 
Anatoly Podgoretsky ©   (2003-01-29 11:53) [7]

Как проверено, не вижу этого в коде


 
Lexer ©   (2003-01-29 11:56) [8]

Недостающий код (вкратце)
if OpenDialog.Execute then
begin
AssignFile(ExtractFile, OpenDialog.FileName);
Reset(ExtractFile);
ReadLn(ExtractFile, StrFile);
end;


 
Anatoly Podgoretsky ©   (2003-01-29 12:03) [9]

Ты это называешь проверкой?
Проверка это когда используются операторы отношения, у тебя из нет.


 
Lexer ©   (2003-01-29 12:07) [10]

Проверено в отладке. Файл считывается, надо только перевести кодировку.


 
Lexer ©   (2003-01-29 12:12) [11]

Хотя бы так:
cChar := "911";
OemToChar(cChar, cStr);


cStr всеравно...nil


 
Anatoly Podgoretsky ©   (2003-01-29 12:13) [12]

Тогда приведи не обрывки, а достаточно полный кусок текстаБ со всеми описаниями, присвоениями, выделением памяти если есть и проверками.
Функция работает нормально.


 
Lexer ©   (2003-01-29 12:17) [13]

Полный код привести к сожалению не могу... довольно большой.
Это работающая загрузка выписки, но кому-то в банке понадобилось сменить кодировку.


 
Anatoly Podgoretsky ©   (2003-01-29 12:23) [14]

Не надо весь код, за это надо бить, а только воспроизводимую часть без воды.
Тогда вот тебе точный ответ - у тебя в программе ошибка.


 
han_malign ©   (2003-01-29 12:24) [15]

>Anatoly Podgoretsky
- что вы мучаете человека - нельзя было сразу сказать под буфер cStr надо сначала память выделить
З.Ы. а еще проще OemToChar(PChar(StrFile),PChar(StrFile))...


 
Lexer ©   (2003-01-29 12:28) [16]

Привожу самый элементарный код:
cChar, cStr: PChar;
cChar := "911";
OemToChar(cChar, cStr);

-не работает, СStr=nil.

Anatoly Podgoretsky: спасибо за попытку помочь.



 
Lexer ©   (2003-01-29 12:30) [17]

han_malign: ВСЁ РАБОТАЕТ БОЛЬШОЕ СПАСИБО!!!



Страницы: 1 вся ветка

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

Наверх




Память: 0.5 MB
Время: 0.03 c
1-15615
MikeFW
2003-01-29 12:08
2003.02.06
Ошибка - которую я не пойму?


7-15964
opoloXAI
2002-11-23 18:56
2003.02.06
ComPort для терминал-клиента


4-15998
orlov
2002-12-24 11:53
2003.02.06
подскажите плиз как подключится к инету на чистом API


14-15829
Карлсон
2003-01-18 21:02
2003.02.06
диску кранты?


3-15492
alexander_ua
2003-01-17 15:22
2003.02.06
Помогите с DBGrid!