![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Перевод 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