Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.04.14;
Скачать: [xml.tar.bz2];

Вниз

Текст кодировки DOS в Windows кодировку   Найти похожие ветки 

 
VadimS   (2003-04-02 10:30) [0]

Необходимо текст из одной кодировки преобразовать в другую, подскажите как это сделать.


 
MBo   (2003-04-02 10:31) [1]

oemtochar chartooem


 
Serega   (2003-04-02 10:39) [2]

CharToOEM, OEMToChar, CharToOEMBuff, OEMToCharBuff.

1. if S <> "" then CharToOem(PChar(S),PChar(S));
2. CharToOem(Pointer(S),Pointer(S));

Примечания:

1. Не стоит вызывать эту функцию если S = "" будет ошибка, второй вариан не имеет этой ошибки.

2. Заметьте однако, что эти функции не умеют делать таких, вещей, как koi8-r в DOS и т. п.

3. Не стоит использовать эту функцию также для преобрахования из русской кодировки DOS в русскую Windows и обратно, так как это не преобразование по русскому алфавиту а перекодирова именно из DOS в Windows, то есть на основе текущей локализации системы, если нужна абсоютная гарантия, то следует вопользоваться перекодировкой по таблице, рекомендуется по полной таблице из всех 256 символов, на моей странице ( http://podgoretsky.com) есть универсальная функция перекодировки (CharCvt) с набором некоторых основных таблицю

Кроме того, высылаю еще три процедурки, которыми пользуюсь.

function DOS_WinCode(strtok : string): string;
var
ch :integer;
kod : char;
i :integer;
strout :string;
begin
strout:="";
for i:=1 to Length(strtok)do
begin
ch:=ord(strtok[i]);
case ch of
128..175 : kod:=chr(ch+64);
224..239 : kod:=chr(ch+16);
242 : kod:=chr(165);
243 : kod:=chr(180);
244 : kod:=chr(170);
245 : kod:=chr(186);
246 : kod:=chr(178);
247 : kod:=chr(179);
248 : kod:=chr(175);
249 : kod:=chr(191);

176..182 : kod:=chr(124);
185..186 : kod:=chr(124);
193..195 : kod:=chr(124);
197..199 : kod:=chr(124);
202..204 : kod:=chr(124);
206..210 : kod:=chr(124);
215..216 : kod:=chr(124);
219 : kod:=chr(124);
221..222 : kod:=chr(124);

183..184 : kod:=chr(45);
187..192 : kod:=chr(45);
196 : kod:=chr(45);
200..201 : kod:=chr(45);
205 : kod:=chr(45);
211..214 : kod:=chr(45);
217..218 : kod:=chr(45);
220 : kod:=chr(45);
223 : kod:=chr(45);

252 : kod:=chr(78);
else
kod:=chr(ch);
end;
strout:=strout+kod;
end;
result :=strout;
end;

{..................................................}
function Win_DOSCode(strtok : string): string;
var
ch :integer;
kod : char;
i :integer;
strout :string;
begin
strout:="";
for i:=1 to Length(strtok)do
begin
ch:=ord(strtok[i]);
case ch of
192..239 : kod:=chr(ch-64);
240..255 : kod:=chr(ch-16);
165 : kod:=chr(242);
180 : kod:=chr(243);
170 : kod:=chr(244);
186 : kod:=chr(245);
178 : kod:=chr(246);
179 : kod:=chr(247);
175 : kod:=chr(248);
191 : kod:=chr(249);

else
kod:=chr(ch);
end;
strout:=strout+kod;
end;
result :=strout;
end;

function CWinCode(cc : char): char;
var
ch :integer;
kod : char;
begin
ch:=ord(cc);
case ch of
192..239 : kod:=chr(ch-64);
240..255 : kod:=chr(ch-16);
165 : kod:=chr(242);
180 : kod:=chr(243);
170 : kod:=chr(244);
186 : kod:=chr(245);
178 : kod:=chr(246);
179 : kod:=chr(247);
175 : kod:=chr(248);
191 : kod:=chr(249);
else
kod:=chr(ch);
end;
result :=kod;
end;


 
VadimS   (2003-04-02 10:43) [3]

Встречный вопрос, как строку типа String преобразовать в PChar, а потом обратно.
Может oemtochar сразу может преобразовать переменную типа String?


 
Nic_B   (2003-04-02 10:58) [4]

Может это чем-то поможет

function TMainForm.StrToOem(const AnsiStr: string): string;
begin
SetLength(Result, Length(AnsiStr));
if Length(Result) > 0 then
oemtochar (PChar(AnsiStr), PChar(Result));
// CharToOem(PChar(AnsiStr), PChar(Result));
// В зависимости из чего во что конвертировать
end;




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

Форум: "Основная";
Текущий архив: 2003.04.14;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.009 c
6-44301
Dan
2003-02-20 18:23
2003.04.14
Загрузка картинок в TWebBrowser


14-44413
T2
2003-03-28 16:32
2003.04.14
Halcyon 6


3-44081
Pontic
2003-03-26 19:19
2003.04.14
Проблема с Interbase


3-44071
maksyaha
2003-03-26 02:25
2003.04.14
Как присоединить файл DBF к программе


1-44199
odyssey
2003-04-01 16:57
2003.04.14
DateTimePicker





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский