Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Конвертирование DOS->Windows 
:(
    Опции темы
TyP
Дата 31.3.2006, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 31.3.2006
Где: Россия-матушка, г рад Смоленск

Репутация: нет
Всего: нет



Как отобразить на форме текстовый файл в досовой кодировке в читаемом виде?
Может существует какая-то встроенная функция конвертирования в виндовую кодировку?

PM MAIL   Вверх
Yanis
Дата 31.3.2006, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



  • CharToOem
  • OemToChar



--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Alexeis
Дата 31.3.2006, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



вроде OemToAnsi



--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Yanis
Дата 31.3.2006, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



Цитата(alexeis1 @ 31.3.2006, 14:30 Найти цитируемый пост)
вроде OemToAnsi

Цитата

The OemToAnsi function is obsolete.



--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
TyP
Дата 31.3.2006, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 31.3.2006
Где: Россия-матушка, г рад Смоленск

Репутация: нет
Всего: нет



OEMConvert перегнало одни кракозяблы в другие (:
Типа было:
(141):„‹Ÿ ‚›Ž‹…ˆŸ ?Ž’ Ž ‡?Ÿ‚Š… Œ‘ …ށ•Ž„ˆŒŽ 4 „Ÿ:
Типа стало:
(141):"<_ '>__<_:___ ____' __ +__'_:

CharToOem требует указатель на Char, а у меня целый набор строк. Как весь файл переконвертить?



PM MAIL   Вверх
Matematik
Дата 31.3.2006, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1027
Регистрация: 11.3.2006

Репутация: 17
Всего: 50



Цитата(TyP @ 31.3.2006, 15:57 Найти цитируемый пост)
Как весь файл переконвертить

Загрузить его в String и переконвертить.
PM MAIL WWW ICQ   Вверх
TyP
Дата 31.3.2006, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 31.3.2006
Где: Россия-матушка, г рад Смоленск

Репутация: нет
Всего: нет



Так String тоже не понимает:
[Error] FindAllFiles.pas(125): Incompatible types: 'String' and 'PChar'
PM MAIL   Вверх
Matematik
Дата 31.3.2006, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1027
Регистрация: 11.3.2006

Репутация: 17
Всего: 50



Код

function(Pchar(String));

PM MAIL WWW ICQ   Вверх
Romikgy
Дата 31.3.2006, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146



TyP, ты уверен что это дос?


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
TyP
Дата 31.3.2006, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 31.3.2006
Где: Россия-матушка, г рад Смоленск

Репутация: нет
Всего: нет



Вот запускаю следующую функцию.

CharToOem(Pchar(Text1), Pchar(Text2))

Вылетает с ошибкой.
Добавлено @ 15:20
На счет ДОСа: в FAR'e пишется, что кодировка DOS. Наверно все-таки это оно. А может FAR любую другую отличную от виндовой кодировки именует досовой?
PM MAIL   Вверх
Romikgy
Дата 31.3.2006, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146



Код

var a,b: pchar;
begin
getmem(a,length(Text1)+1);
getmem(b,length(Text1)+1);
StrPCopy(a,Text1);
CharToOem(a, b);
Text2:=StrPas(b);
freemem(a);
freemem(b);
end;



--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Alexeis
Дата 31.3.2006, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



ну тогда можно попробовать что-то типа этого
Код

procedure TForm1.FormCreate(Sender: TObject);
var
  i, j: integer;
  s: string;
  c: set of char;
begin
  c := ['А'..'Я', 'а'..'я'];
  memo1.Lines.LoadFromFile('c:\11.txt');
  for i:=0 to memo1.Lines.Count do
  begin
    s:=memo1.Lines.Strings[i];
    for j:=1 to length(s) do
      if chr(ord(S[j])+64) in c then
        s[j]:=chr(ord(S[j])+64);
    memo1.Lines.Strings[i]:=s;
  end;
end;





--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Демо
Дата 31.3.2006, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 3.11.2005

Репутация: 30
Всего: 50



Код

function Win2Dos(const aStr: String): String;
begin
  Result := aStr;
  if Result='' then Exit;
  CharToOem(PChar(Result),PChar(Result));
end;

function Dos2Win(const aStr: String): String;
begin
  Result := aStr;
  if Result='' then Exit;
  OemToChar(PChar(Result),PChar(Result));
end;




--------------------
    
PM MAIL ICQ Skype   Вверх
Romikgy
Дата 31.3.2006, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146



TyP, тебе 2 пример
Демо, надо


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Romikgy
Дата 31.3.2006, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146



Есть еще свойство у Edit`а OEMConvert, дык вот оно , все что попадает в эдит преобразует в дос-кодировку, а вот обратного не нашел smile


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Демо
Дата 31.3.2006, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 3.11.2005

Репутация: 30
Всего: 50



Цитата(Romikgy @ 31.3.2006, 16:51 Найти цитируемый пост)
Есть еще свойство у Edit`а OEMConvert, дык вот оно , все что попадает в эдит преобразует в дос-кодировку, а вот обратного не нашел


Да достаточно шрифт Terminal выбрать для TMemo;)


--------------------
    
PM MAIL ICQ Skype   Вверх
TyP
Дата 3.4.2006, 08:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 31.3.2006
Где: Россия-матушка, г рад Смоленск

Репутация: нет
Всего: нет



To alexeis1:
Хороший код, почти работает, но вот со строчными буквами беда. Заглавные отображаются так, как надо, а вот строчные - многие перепутаны, только некоторые буквы стоят на своих местах: у заменено на г, с - на б, я - на п. Видно сдвиг в кодировке не везде 64 (:

To Romikgy:
Даже память выделяется и освобождается. Это правильный стиль написания. Бум стремиться. Свойство у Edit`а OEMConvert пробовалось еще в самом начале, но оно никак не хочет преобразовывать Дос в Вин (:

То Демо:
Все получилось! Спасибо! (:
PM MAIL   Вверх
TyP
Дата 3.4.2006, 09:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 31.3.2006
Где: Россия-матушка, г рад Смоленск

Репутация: нет
Всего: нет



То Демо:
Не, ну Терминал конечно работает, но только для отображения. Пытаюсь скопировать в другой какой-то листбокс, уже все кракозяблами. Хороший все-таки ты пример привел перегона из Дос кодировки в Вин, теперь с этим текстом можно работать.
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0688 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.