Форум: "Основная";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];
ВнизСохранение в кодировке DOS(866) Найти похожие ветки
← →
NSerge © (2004-11-29 18:57) [0]Доброго времени суток!
Возникла необходимость создать большое количество bat-файлов для автоматизации настройки Windows. В командах встречаются русские буквы и после создания этих файлов в момент исполнения все эти русские буквы превращаются в закорючки. Само собой команды не исполняются :(
Подскажите, пожалуйста, как сохранить эти файлы в DOS кодировке, чтобы русские буквы адекватно воспринимались эмулятором DOS на Windows машинах?
← →
palva © (2004-11-29 19:07) [1]Редактор файлового менеджера FAR может сохранять в DOS. Есть также куча Windows-редакторов. Я пользуюсь www.Textpad.com Правда он коммерческий.
← →
ALS © (2004-11-29 19:44) [2]Перед сохранением перекодируй. AnsiToOem поможет
← →
Юрий Зотов © (2004-11-29 19:44) [3]Программно - CharToOem.
Вручную - шрифт Terminal.
← →
NSerge © (2004-11-29 21:39) [4]Да нет, вы меня не совсем правильно поняли... а может и я не совсем нормально объяснил...
Нужно сделать чтобы программа, которая создает эти bat-файлы сохраняла в них текст таким образом, чтобы русский текст был в формате DOS.
Насчет AnsiToOem и CharToOem можно подробнее, плиз :) А то когда необходимо файл из ДОС формата перекодировать в Виндовую кодировку всегда используют Memo, а тут так же нужно будет?
Сохранять в файл в формате Виндов, а потом открывать его и перекодировать? А сразу задать формат файла нельзя?
← →
palva © (2004-11-29 21:44) [5]Ну тогда перекодируйте русские буквы перед тем как записать их в файл. AnsiToOem и CharToOem подойдут - всё равно чем. Тогда и перекодировать не надо будет.
← →
NSerge © (2004-11-30 10:42) [6]А если можно, то подробнее... Т.е. нужно создать переменную типа String of Char, потом присвоить ей значение в виде строки русского текста, затем побуквенно перекодировать эту строку в другую с помощью CharToOem, а только потом уже новую строчку сохранить в файле?
Все ли я правильно понял?
← →
HSolo © (2004-11-30 11:21) [7]>NSerge © (30.11.04 10:42)
Не все и неправильно :) Зачем побуквенно-то? Вы в help загляните, многое прояснится :)
← →
NSerge © (2004-11-30 11:44) [8]Если бы я мог сам во всем этом разобраться, то не стал бы просить помощи на этом форуме :(
Если есть что-нибудь по существу вопроса, то подскажите, пожалуйста, а к мануалам и хелпу послать каждый сможет :)
← →
ALS © (2004-11-30 12:40) [9]
procedure SaveOemStringToFile(const S: string; const FName: string);
var sTmp: string;
begin
if S = "" then exit;
SetLength(sTmp, length(S));
AnsiToOem(PChar(S), PChar(sTmp));
with TStringList.Create do
try
Text := sTmp;
SaveToFile(FName)
finally
Free
end;
end;
← →
NSerge © (2004-11-30 12:55) [10]ALS спасибо за ответ в виде кода :)
Еще один вопрос:
Мне нужно сохранить в файл последовательность строк, а в данном примере, TStringList.Create.SaveToFile(FName) разве не будет перезаписывать создаваемый файл каждый раз при вызове процедуры SaveOemStringToFile?
Сорри, возможно это вопросы ламера, но, видно я таковым в Делфи и являюсь :( не ругайтесь сильно :)
← →
Anatoly Podgoretsky © (2004-11-30 13:23) [11]NSerge © (30.11.04 11:44) [8]
а к мануалам и хелпу послать каждый сможет :)
Тебя же не просто в справку послали, а в конкретный пункт справки, который обязателен к прочтению, может тогда бы ты более критичнее отнесься к приведеному коду. Этот код для Win 3.11 и работает на платформе НТ только, поскольку поддержан для совместимости.
А про оптимальность кода тоже особенно говорить не приходится.
← →
NSerge © (2004-11-30 16:31) [12]Все бы хорошо, но только AnsiToOem и CharToOem у меня в хелпе вообще нет :(
Делфи 7.0
← →
ALS © (2004-11-30 16:45) [13]Help -> Windows SDK -> Index -> CharToOem :
The CharToOem function translates a string into the OEM-defined character set. (OEM stands for original equipment manufacturer.) This function supersedes the AnsiToOem function.
BOOL CharToOem(
LPCTSTR lpszSrc, // pointer to string to translate
LPSTR lpszDst // pointer to translated string
);
...
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.069 c