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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.03.2013, 17:09   #1
FleXik
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 770
Вопрос OpenDialog мистика...

Код:
begin
if Form2.sOpenDialog1.Execute then
Form2.sMemo1.Lines.LoadFromFile(Form2.sOpenDialog1.FileName);
//q:=Form2.sMemo1.Lines.Text;
Form2.sMemo1.Lines.Text:=UTF8Decode(Form2.sMemo1.Lines.Text);
end;
Опять проблема при загрузке списка в Memo, загружает и сразу же удаляет, пробовал заводить переменную, не помагает, мистика...
FleXik вне форума Ответить с цитированием
Старый 14.03.2013, 17:37   #2
tsar_
Форумчанин
 
Аватар для tsar_
 
Регистрация: 06.01.2011
Сообщений: 369
По умолчанию

Хм, проверил код в delphi 7 и 2010 - работает...
ОС - windows xp sp2.

Что за файл загружаете?
Программирую по необходимости
tsar_ вне форума Ответить с цитированием
Старый 14.03.2013, 17:41   #3
Kix.IV
Участник клуба
 
Регистрация: 11.08.2012
Сообщений: 1,226
По умолчанию

Цитата:
Опять проблема при загрузке списка в Memo, загружает и сразу же удаляет, пробовал заводить переменную, не помагает, мистика...
Кажется проблема в UTF8Decode. Попробуй UTf8toAnsi.
Kix.IV вне форума Ответить с цитированием
Старый 14.03.2013, 17:41   #4
FleXik
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 770
По умолчанию

файл .txt конечно же... код то рабочий но вот почему их загружает и сразу же удаляет я без понятия, раньше была фигня когда проэкт сохранил в два места и потом так же всегда была одна и та же ошибка, но тут проэкт слишком большой чтобы переделывать с нуля...
FleXik вне форума Ответить с цитированием
Старый 14.03.2013, 17:44   #5
Kix.IV
Участник клуба
 
Регистрация: 11.08.2012
Сообщений: 1,226
По умолчанию

Цитата:
файл .txt конечно же... код то рабочий но вот почему их загружает и сразу же удаляет я без понятия, раньше была фигня когда проэкт сохранил в два места и потом так же всегда была одна и та же ошибка, но тут проэкт слишком большой чтобы переделывать с нуля...
Видимо проблема где-то дальше в коде. Попробуй "пройтись" с f7.
Kix.IV вне форума Ответить с цитированием
Старый 14.03.2013, 17:46   #6
FleXik
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 770
По умолчанию

Цитата:
Сообщение от Kix.IV Посмотреть сообщение
Видимо проблема где-то дальше в коде. Попробуй "пройтись" с f7.
Что делает f7? Проблема не дальше в коде, это исключено.
FleXik вне форума Ответить с цитированием
Старый 14.03.2013, 17:51   #7
Kix.IV
Участник клуба
 
Регистрация: 11.08.2012
Сообщений: 1,226
По умолчанию

Цитата:
Что делает f7?
https://www.google.ru/search?q=трассировка+delphi
Цитата:
Проблема не дальше в коде, это исключено.
Если не дальше, то где? Код, который выше рабочий.
Kix.IV вне форума Ответить с цитированием
Старый 14.03.2013, 17:54   #8
FleXik
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 770
По умолчанию

Код:
Form2.sMemo1.Lines.Text:=UTF8Decode(Form2.sMemo1.Lines.Text);
если убрать эту строку то всё работает...
FleXik вне форума Ответить с цитированием
Старый 14.03.2013, 17:59   #9
Kix.IV
Участник клуба
 
Регистрация: 11.08.2012
Сообщений: 1,226
По умолчанию

Цитата:
Сообщение от FleXik Посмотреть сообщение
Код:
Form2.sMemo1.Lines.Text:=UTF8Decode(Form2.sMemo1.Lines.Text);
если убрать эту строку то всё работает...
Так он загружает и сразу же удаляет?
Или вообще текст не появляется?
Если первое, то ошибку надо искать дальше в коде.
Если второе, то попробуй заменить UTF8Decode.
Kix.IV вне форума Ответить с цитированием
Старый 14.03.2013, 18:00   #10
Luuzuk
Форумчанин
 
Аватар для Luuzuk
 
Регистрация: 18.01.2012
Сообщений: 975
По умолчанию

Если я ничего не путаю, то в Delphi7 штатные VCL-компоненты не поддерживают UTF8.
Следовательно, следующая строка
Код:
Form2.sMemo1.Lines.LoadFromFile(Form2.sOpenDialog1.FileName);
не сможет корректно загрузить в sMemo1 UTF-шный текст.
Следовательно, в Form2.sMemo1.Lines.Text будет какая-то хрень вместо валидного UFT-шного текста.
UTF8Decode нормально отработать не сможет, т.к. ему вместо UTF8 подсовывают какой-то суррогат.
На выход он тоже ничего хорошего не выдаст => это "ничего хорошего" и окажется в Form2.sMemo1.Lines.Text, что и требовалось доказать
-----------------------------
Вариант решения: загружать текст не "быстро и на халяву через Memo", а с помощью файловой переменной. В memo этот загруженный текст записывать СТРОГО ПОСЛЕ UTF8Decode.
P.S. отпишитесь, угадал ли я
Благодарить в репутацию. Проклинать — туда же
Luuzuk вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Стек и мистика. brainexploded Общие вопросы C/C++ 9 14.04.2012 20:56
Однако Мистика. vsrmis Общие вопросы Delphi 12 19.01.2011 00:48
Мистика?!!! SNUPY Свободное общение 9 09.06.2010 13:55
Мистика с USB, мышью, компьютером Rembo Компьютерное железо 6 28.02.2009 17:49
мистика в delphi steck Общие вопросы Delphi 4 27.03.2007 23:57