Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.07.2007, 12:44   #1
oleg kutkov
Unix C++ developer
Форумчанин
 
Аватар для oleg kutkov
 
Регистрация: 16.04.2007
Сообщений: 651
Вопрос Как сохранить текст в DOS кодировке?

Моя программа экспортирует текстовый файлик, содержащий инфу: цифры и кириллицу, появилась необходимость экспортировать этот файл в DOS кодировке, никак не могу найти путной инфы, везде нытакаюсь на использование функций:
CharToOEM
OEMToChar
CharToOEMBuff
OEMToCharBuff
OemToAnsi
AnsiToOem:
но ничего не выходит, постоянно высыпаются ошибки о несовместимости типов и прочее.
Подскажите, кто, что знает.
oleg kutkov вне форума Ответить с цитированием
Старый 31.07.2007, 12:47   #2
ZhekON
Форумчанин
 
Аватар для ZhekON
 
Регистрация: 24.01.2007
Сообщений: 323
По умолчанию

Воспользуйся поиском по форуму. Здесь гдето была ужэ такая тема.
Всё проще чем вы думаете, нужно только правильно подойти к тому или иному вопросу?
ZhekON вне форума Ответить с цитированием
Старый 31.07.2007, 13:15   #3
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

procedure WinToDos;
var
Src, Str: PChar;
begin
Src := Memo1.Lines.GetText; //Берем текст из TMemo как тип PChar
CharToOem(Src, Str); //API функция для перевода текста
Memo2.Lines.Text := StrPas(Str);//Записываем назад
end;

procedure DosToWin;
var
Src, Str: PChar;
begin
Src := Memo1.Lines.GetText; //Берем текст из TMemo как тип PChar
OemToChar(Src, Str); //API функция для перевода текста
Memo2.Lines.Text := StrPas(Str);//Записываем назад
end;
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 31.07.2007, 18:54   #4
oleg kutkov
Unix C++ developer
Форумчанин
 
Аватар для oleg kutkov
 
Регистрация: 16.04.2007
Сообщений: 651
По умолчанию

Спасибо за быстрый отвтет, но эти примеры мне знакомы, но к сожалению, вот они и не работают. Поэтому я и обратился за помощью. При вызове CharToOem(Src, Str) (при запуске программы из под проводника, а не из делфи вылетает ошибка:
Acces violation at adress 004303B4 in module .... . Read of adress E2E1A5CE.

При запуску из под делфи сообщение намного длинее.

В любом случае после сообщения приложение впадает в ступор, как будто находится в бесконичном цикле, программа выключается только завершением процесса.
Memo1 содержит всего одну строчку текста на киррилице: "тестовая строчка".
oleg kutkov вне форума Ответить с цитированием
Старый 31.07.2007, 19:09   #5
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Под строки PChar надо вроде память выделять.

Можно попробовать
CharToOem(@Src,@Dest);
где src,dest:array[0..255] of char например

или (х/з, проверить негде)
CharToOem(pchar(s1),pchar(s2)); s1,s2 - строки (не pchar)
тут наверно ошибка вылезет, если s1 или s2=''
пыщь

Последний раз редактировалось JTG; 31.07.2007 в 19:13.
JTG вне форума Ответить с цитированием
Старый 01.08.2007, 08:42   #6
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

с каких пор DOS-кодировка поддерживает русские буквы ?
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 01.08.2007, 09:48   #7
oleg kutkov
Unix C++ developer
Форумчанин
 
Аватар для oleg kutkov
 
Регистрация: 16.04.2007
Сообщений: 651
По умолчанию

Всем спасибо, все получилось.
DOS-кодировка поддерживает русские буквы, по крайней мере, то что у меня получается в результате преобразования киррилических символов распознается редакторами, как дос-кодировка и обрабатывается дос-приложениями.
oleg kutkov вне форума Ответить с цитированием
Старый 01.08.2007, 14:38   #8
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Цитата:
с каких пор DOS-кодировка поддерживает русские буквы ?
Да все поддеоживает 866 OEM - Russian
пыщь
JTG вне форума Ответить с цитированием
Старый 05.08.2007, 18:42   #9
chingiz
Пользователь Подтвердите свой е-майл
 
Аватар для chingiz
 
Регистрация: 21.05.2007
Сообщений: 88
По умолчанию

Цитата:
Сообщение от oleg kutkov Посмотреть сообщение
Всем спасибо, все получилось.
Мне почему-то охота заматериться когда я вижу такие ответы - "всем спасибо, все получилось, до свидания" - меня, да может и не только меня тоже заинтересовала данная тема. Может господин "oleg kutkov" скажет конкретнее как у него получилось???
Уже Чему-то научился Но этого мало
chingiz вне форума Ответить с цитированием
Старый 06.08.2007, 09:32   #10
oleg kutkov
Unix C++ developer
Форумчанин
 
Аватар для oleg kutkov
 
Регистрация: 16.04.2007
Сообщений: 651
По умолчанию

Я не стал конкретно расписывать, как у меня получилось, т.к. исчерпывающий ответ дан в предидущих постах. Нужно просто внимательно их прочитать, разобраться и пробовать, тогда все получится.
oleg kutkov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сохранить artemavd Общие вопросы Delphi 3 31.07.2008 19:08
Выбор данных из таблицы Mysql в кодировке Utf - 8 OSKiller PHP 4 26.01.2008 10:04
Как сохранить текст из мемо в блакнот? BETONOMESHALKA Общие вопросы Delphi 2 22.12.2007 02:16
как определить в какой кодировке текстовый файл? PuzzleC Общие вопросы C/C++ 7 11.12.2007 13:52
Сохранить как? InseR Общие вопросы Delphi 31 27.06.2007 16:18