Дельфи + кодировка
2815
11
Имеется исходный текстовый файл в ДОС-кодировке.
Нужно поместить его содержимое, ну пусть в MEMO на некоей форме...
Как при этом отобразить его уже в виндовой кодировке, чтобы вместо кракозябры можно было прочесть текст нормально.
Конечно проще всего поправить кодировку исходного текста, а другие варианты? :-))
Прикрутить перекодировщик. Чтобы на лету перекодировал туда-обратно.
А если в лом добавлять в программу перекодировщик, то проще всего в TMemo задать Font - Terminal - кажется так называется...
Прилагаю дельфийский модулек где помимо прочего есть
и перекодировщик - функция TransCode
( знает win,dos,koi8,iso)

так что просто Memo.Lines.Add(TransCode(dosstr,dos,win);
а потом обратно
dosstr:=TransCode(Memo.Lines[i], win,dos);

поправка
Странно! Вроде пристегивал файл, и ничего не пристегнулось...
Максимыч
Размер не превысил?
А то лезет 100К всего...
RTFM AnsiToOEM[buff], OEMToAnsi[buff]
+ Таблицы перерекодировки
У меня на паге есть пример с использованием перевода на основе таблиц

---
Full http://full.nm.ru
-------
Обналичим нобелевскую премию.
SibProgrammer
Да, действительно, проще придумать сложно
:-)))
Миленько и быстренько!
Full
Тоже вариант.
Переводит, читаемо :-))
Только эта зараза столбцы портит...

Например в исходнике было:
|ля-ля-ля | 22| 22.55|
|бе-бе-бе | 77| 333|

Результат будет в нужной то бишь виндовой кодировке, но со смещением столбцов:
|ля-ля-ля | 22| 22.55|
|бе-бе-бе | 77| 333|

Ну или что-то подобное, нет стройной и симпатишной таблицы.
Зато при таком варианте можно смело текст на принтер выдавать не опасаясь получить кракозябру :-)))
Что то я не понял. а с чего возмется смещение столбцов то? Разве что только потому, что используешь не моноширный шрифт (типа Courier или MS Sans Serif).

---
Full http://full.nm.ru
-------
Одна голова хорошо, а все тело лучше.
Full
Вот именно в шрифте-то собака и порылась ;-)))
Нет, ну просто тупица, сколько возилась, а какой шрифт на Memo по умолчанию стоит - внимания не обратила! Цирк!!! На колесиках...
Ой, зато теперь все встало на свои места и в том числе шарики наконец-то за ролики :-)))
Большое СПАСИБО!!!
можно тут присоседится?
вопрос примерно в ту же тему, по этому не стала заводить отдельный топик.))

Имею фокспрошные таблицы dbf, мне нужно их отображать в приложение написанном на дельфях. Русские буквы отображаются не по-русски)))) коряво короче.
Вопрос: Как программно можно поменять кодировку таблицы? Именно программно, в ручную я знаю как))
Язва
BDE administrator - выставляешь нужную кодировку (LangDriver := dBASE RUS cp866 например)
Не прокатывает, если в dbf-ке прописано, что в базе кодовая страница другая, например, 1251, а фактически 866. В таких случаях - только вручную, либо затирать этот идентификатор в базе

---
Full http://full.nm.ru
-------
Предлагаю руку и сердце в обмен на грудь и бедра.