Форум программистов, компьютерный форум, киберфорум
Lazarus
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/21: Рейтинг темы: голосов - 21, средняя оценка - 4.95
59 / 0 / 0
Регистрация: 10.02.2019
Сообщений: 54
1

Кириллица ANSI в тексте TMemo

27.02.2019, 16:44. Показов 4111. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравия всем!
Почему-то кракозябры, хотя фонт Verdana, чарсет RUSSIAN_CHARSET, а Нотпад++ определяет кодировку файла как ANSI
Pascal
1
        Memo1.Lines.LoadFromFile(FName);
фонт менял на консольный, системный,
Delphi
1
        Memo1.Lines.Text := AnsiToUTF8(Memo1.Lines.Text);
тоже ничего не меняет.
или это в настройках проекта и программы искать?

Добавлено через 20 минут
Вернее знаки вопроса вместо букв.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.02.2019, 16:44
Ответы с готовыми решениями:

ANSI в TMemo или TRichEdit
Добрый вечер! Как мне выводить дополнительные символы ANSI. Например. Я введу в TMemo alt+NUM7 и...

Убрать из TMemo запятые, числа расположить в столбик, и вывести все это во второе поле TMemo
Привет всем вообщем помогите с программой ) у нас есть поле TMemo в котором числа расположены числа...

Подсчитать количество вхождений буквы (кириллица) в строку (кириллица)
Суть такая: по требованию программы ввести строку символов (обыкновенный текст, кириллица(!!!)) и...

Обработка .txt кодировка ANSI и UTF-8 (буква "я" в ANSI воспринимается как EOF)
Есть следующий кусок кода: FILE* fp = fopen("G:\OPND1.txt", "r"); if (fp!=NULL) // если файл...

6
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
27.02.2019, 17:32 2
Pascal
1
  Memo1.Lines.Text := CP1251ToUTF8(ReadFileToString(filename));
(в Uses добавить FileUtil и LConvEncoding)

Добавлено через 2 минуты
Цитата Сообщение от igelizm Посмотреть сообщение
Нотпад++ определяет кодировку файла как ANSI
Очень странно. У меня если даже при сохранении кодировка определяется как ANSI, то при переоткрытии этого файла уже показывается Win1251. Ни разу не видел файлов, которые при переоткрытии в Notepad++ показывали бы ANSI.
1
59 / 0 / 0
Регистрация: 10.02.2019
Сообщений: 54
27.02.2019, 17:58  [ТС] 3
volvo, FileUtil был, LConvEncoding добавил - всё равно вопросы.
Пробовал и переоткрывать- всегда ANSI и в FAR тоже. Прилеплял пример тут https://www.cyberforum.ru/atta... 1549928078
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
27.02.2019, 18:14 4
Ну тогда не знаю. У меня вот так отображается:

Кириллица ANSI в тексте TMemo


Как видим, во-первых - никаких вопросиков, а во-вторых - кодировка-таки определяется как 1251. Больше ничем помочь не могу.
1
59 / 0 / 0
Регистрация: 10.02.2019
Сообщений: 54
27.02.2019, 18:50  [ТС] 5
Чудеса.. Попробовал и Memo1.Lines.Text := CP1251ToUTF8(Memo1.Lines.Text); - картина не меняется. Непонятно почему даже Нотпад по-разному определяет. Верно я мыслю что в диалоге шрифта если в окне Пример видно кириллицу- то она должна отображаться? А можно мой проект запустить? Как он на другом компе скомпилится- с ошибкой или без?
Миниатюры
Кириллица ANSI в тексте TMemo  
Вложения
Тип файла: 7z v4.7z (65.9 Кб, 5 просмотров)
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
27.02.2019, 19:50 6
Лучший ответ Сообщение было отмечено igelizm как решение

Решение

Когда ты перестанешь изгаляться, и напишешь то, что тебе говорят:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
procedure TForm1.SpeedButton2Click(Sender: TObject);
var
i, j, raz: integer;
prev, curr : double;
mycolor : TColor;
begin
  if OpenDialog1.Execute then
  begin
        prev:=0;
        FName:= OpenDialog1.FileName;
        Memo.Lines.Add('Загружён протокол датчиков '+FName);
        //Memo1.Lines.LoadFromFile(FName);
        //Memo1.Lines.Text := CP1251ToUTF8(Memo1.Lines.Text);
        Memo1.Lines.Text:=CP1251ToUTF8(ReadFileToString(FName));
        StringGrid1.rowcount:=memo1.lines.count;
// ...
- все как по мановению волшебной палочки заработает:

Кириллица ANSI в тексте TMemo


Или ты действительно не видишь разницы между
Pascal
1
Memo.Lines.Add(CP1251ToUTF8(ReadFileToString(FName)));
и
Pascal
1
2
Memo1.Lines.LoadFromFile(FName);
Memo1.Lines.Text := CP1251ToUTF8(Memo1.Lines.Text);
?
1
59 / 0 / 0
Регистрация: 10.02.2019
Сообщений: 54
27.02.2019, 21:14  [ТС] 7
volvo, Благодарю за науку и извиняюсь за тупость и трату времени. Теперь только дошло, что конвертировать второй строкой то, что криво считано первой- безтолку.

Добавлено через 2 минуты
но почему Нотпады по-разному определяют кодировку я так и не понял.. та й нихай..
0
27.02.2019, 21:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.02.2019, 21:14
Помогаю со студенческими работами здесь

UTF8 и Ansi в Ansi
В программу на вход поступают текстовые документы с разными кодировками (UTF8 или Ansi)....

ANSI C
Приветики ! Срочно нужно закрыть сессию,но никак не могу сделать несколько прог... помогите плиз,...

ANSI C, примеры
Добрый день. ребята будьте добры, накидайте пожалуйста примеры работы с DirectX (очень...

Стандарт ANSI X9
Есть ли у кого-то стандарт ANSI X9.52 ? Если есть, то не могли бы поделиться? Если нету, то не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru