Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 2 963

/ вопрос открыт /

Доброго времени суток, уважаемые эксперты!
Вопрос может быть совсем банальный... но ппц.
Допустим имеется программа. простенькая. На форме всего 1 компонент. TMemo (Или TRich, без разницы)
Напишем туда "ПРивет". Нормально пишется, возьмем, вырежем это привет, вставим допустим в окошечко аськи, все хорошо, все норм... но если сделать пару простых действий...
Возьмем, и стандартной функцией сохраним этот текст в файл
Memo1.Lines.SaveToFile('text.txt');
Далее его можно загрузить снова
Memo1.Lines.LoadFormFile('text.txt');
ОН так же нормально загрузится... но если уже из загруженного скопировать слово привет куданибуть... он уже выдаст Äýâèä Áåëëü вместо русских букв, а если открыть в обычном блокноте только что сохраненный файл.. блокнот его нормально откроет, а вот из блокнота хоть куда этот текст вставляй - будут одни вопросики
??? ????? ?????.... Так же если в самом начале, просто в TMemo скопировать чтонибуть из Windows (например нажать на файле "новая папка12.rar" переименовать, текст скопировать и вставить в Memo), то точно так же будут вместо русских букв одни вопросики...
при чем английский текст не трогается. все эти глюки с русским... мб кто то сталкивался с подобным ? инет молчит как партизан((( За раннее Премного благодарен...

BloodVIRUS Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: BloodVIRUS (статус: Посетитель)
Вопрос отправлен: 2 июля 2009, 00:39
Состояние вопроса: открыт, ответов: 2.

Ответ #1. Отвечает эксперт: Вадим К

Здравствуйте, BloodVIRUS!
Старая известная проблема Windows при копировании с неюникодного приложения (а все делфовские до 2007 включительно такими являются) в юникодное. В это этом случае Windows поступает "очень мудро и использует текущую раскладку клавиатуры как базовую для перевода. И получаем абракадабру, так как часто бывает выставлена английская раскладка. А надо что бы перед копированием в обоих приложениях уже была выставлена русская (или другая нужная национальная кодировка).
А все другие последствия, которые наблюдаются - следствие многократного преобразования. Знаки вопроса - это ситуация "докодировались". когда неюникодный текст расценивается как юникодный и пытается в неюникод сконвертировать с неверной кодовой таблицей. В принципе каждый случай в цепочке преобразований могу объяснить, но смысл?
Лечить? делать юникодные приложения, либо позвонить в майкрософт... хотя они вряд ли сделают.
А так - мучиться, не забывая переключать раскладку.

Ответ отправил: Вадим К (статус: Академик)
Время отправки: 2 июля 2009, 03:31

Ответ #2. Отвечает эксперт: min@y™

Попробуй ковырнуть настройки раскладки в реестре и перезагрузиться.
Где ковырять - смотри скриншот в прицепе.
К ответу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки ответа)

Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 2 июля 2009, 08:23


Мини-форум вопроса

Всего сообщений: 6; последнее сообщение — 7 июля 2009, 16:55; участников в обсуждении: 2.

2 июля 2009, 09:26: Вопрос перемещён из тематического раздела Delphi » Прочее в раздел Delphi » Алгоритмы, преобразования модератором Ерёмин А.А.

BloodVIRUS

BloodVIRUS (статус: Посетитель), 2 июля 2009, 09:31 [#1]:

Такс, ладно, сейчас попробовал из блокнота сохранить текст в юникоде, и из буфера повставлять текст везде, раньше там были или вопросики или иероглифы, сейчас все нормально. Но если через
memo1.Lines.LoadFormFile('text.txt') загружать, то отображаются такие кракобяки яю0720=85, ну и наверно следовательный вопрос:
Как сохрянять текст из Memo в юникоде, и как его загружать ?
Вадим К

Вадим К (статус: Академик), 2 июля 2009, 09:52 [#2]:

видите 0400? (у меня в фаерфоксе это даже тут отображается).
Выходов три
- научиться конвертировать текст с юнинкода и обратно
- перейти на делфи 2009
- использовать компоненты tnt.
Галочка "подтверждения прочтения" - вселенское зло.
BloodVIRUS

BloodVIRUS (статус: Посетитель), 2 июля 2009, 15:19 [#3]:

- использовать компоненты tnt.
Около 2х часов ищу уже, у меня delphi 7, нашел много компонентов, но не один не ставится, есть у вас ссылки на точно работающие компоненты ? зараннее премного благодарен...
Вадим К

Вадим К (статус: Академик), 2 июля 2009, 15:30 [#4]:

tnt теперь стали платные. поэтому "ссылки на точно работающие" это уже варёз....
Галочка "подтверждения прочтения" - вселенское зло.
BloodVIRUS

BloodVIRUS (статус: Посетитель), 2 июля 2009, 16:15 [#5]:

Ну а аналоги есть ? Мне надо то 2 вещи. Из мемо сохранять в юникоде, и открывать в юникоде... все...
BloodVIRUS

BloodVIRUS (статус: Посетитель), 7 июля 2009, 16:55 [#6]:

Все, всем спасибо за помощь в данном вопросе. UNICODE компонентов нет. Есть только TNT,TNS и их производные, не один крякнутый не работает, а покупать их нет резона. Скачал Delphi 2009, полностью им доволен, он даже удобнее 7ки. Всем спасибо :)

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 29 мая 2023, 06:31
Выполнено за 0.02 сек.
Рейтинг@Mail.ru