Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Перевод Dos-кодировки в Win [D5, Win95/98, WinME, NT4, Win2k, WinXP]


Lexer ©   (2003-01-29 11:16:00) 

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


Lexer   (2003-01-29 12:30:00) [1]

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


Lexer   (2003-01-29 12:28:00) [2]

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

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

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


han_malign   (2003-01-29 12:24:00) [3]

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


Anatoly Podgoretsky   (2003-01-29 12:23:00) [4]

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


Lexer   (2003-01-29 12:17:00) [5]

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


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

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


Lexer   (2003-01-29 12:12:00) [7]

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


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


Lexer   (2003-01-29 12:07:00) [8]

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


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

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


Lexer   (2003-01-29 11:56:00) [10]

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


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

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


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

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

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

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


Anatoly Podgoretsky   (2003-01-29 11:42:00) [13]

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


Lexer   (2003-01-29 11:36:00) [14]

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


В итоге cStr = nil.


Anatoly Podgoretsky   (2003-01-29 11:28:00) [15]

OemToChar(p1,p2)


Lexer   (2003-01-29 11:22:00) [16]

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


Anatoly Podgoretsky   (2003-01-29 11:20:00) [17]

OemToChar


Наверх

Титульная страница Поиск, карта сайта Написать письмо