|
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,633
|
||||||
Вывод информации в файл, Кириллица корректно не выводится23.09.2022, 06:43. Показов 7557. Ответов 81
Метки нет (Все метки)
Здравствуйте! Решил вывести информацию в файл по нажатии на кнопку "сохранить", но в файл отображается либо кракозябры, либо ничего, если текст на русском.
Вот код той части кода, которая должна выполнить задуманное: Кликните здесь для просмотра всего текста
Если честно, то я иссяк и хоть это не так важно на данный момент - я про вывод информации в файл, но, думаю, что лишним подобные знания не будут. В чём мой косяк? По идее должно выводить без проблем. Считывая строку из элемента управления "edit" в каком формате ANSII или UNICODE она попадает в буфер?
0
|
||||||
| 23.09.2022, 06:43 | |
|
Ответы с готовыми решениями:
81
Вывод информации - кириллица и латиница вместе
Ввод вывод в файл и консоль.(Кириллица) |
|
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,633
|
||||||
| 02.10.2022, 06:11 [ТС] | ||||||
|
мне _getch() ближе и работает быстрее, что так что так нужно подключать дополнительную библиотеку, так что хрен едьки не слаще.
0
|
||||||
|
4070 / 2704 / 433
Регистрация: 09.09.2017
Сообщений: 12,023
|
|||||||||||
| 02.10.2022, 10:07 | |||||||||||
|
Сейчас это для вас не критично, но если уж есть возможность "забесплатно" сохранить кроссплатформенность, лучше ей пользоваться. Просто хорошая привычка. UPD: аж любопытно стало, проверил в gtk - да, там такая возможность есть, включается gtk_label_set_line_wrap.
0
|
|||||||||||
|
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,633
|
|||
| 03.10.2022, 11:22 [ТС] | |||
|
Это у вас на картинке так текст равномерно распределён от левого верхнего до правого нижнего угла.
0
|
|||
|
4070 / 2704 / 433
Регистрация: 09.09.2017
Сообщений: 12,023
|
|||||
| 03.10.2022, 13:48 | |||||
|
0
|
|||||
|
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,633
|
|||||
| 04.10.2022, 05:38 [ТС] | |||||
|
Текст из N-символов попробовать разделить на равные значения в идеале нужно получить r-строк по m-символов в каждой строке. Если при деление текста на значения от 2 до 9 нет результатов, которые в остатке имеют нуль, то можно отбросить остаток, предварительно, вычислив результаты r и m такие, при которых хвостик буде минимальным. Далее m умножить на ширину символа мы получили ширину окна, тоже самое нужно проделать с r - умножив на высоту символа и получив высоту окна. Теперь мы имеем окно в которое помещается текст согласно условию. Теперь нужно текст вывести в окно - первый этап завершён, инициализация пройдена, теперь нужно понять, как его(текст) обрабатывать при работе с размером окна.
0
|
|||||
|
4070 / 2704 / 433
Регистрация: 09.09.2017
Сообщений: 12,023
|
||||
| 04.10.2022, 09:41 | ||||
|
Что-то мне подсказывает, что для такой интерпретации задачи достаточно решить какое-то уравнение, которое даст единственное решение. . В общем, вариант с label'ом мне кажется наиболее правдоподобным - добавить код изменения ширины виджета, возможно шрифта и т.п. Ну и сами попробуйте прикинуть варианты где это задание может использоваться в реальной жизни.
0
|
||||
|
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,633
|
|||||
| 04.10.2022, 10:14 [ТС] | |||||
|
0
|
|||||
|
4070 / 2704 / 433
Регистрация: 09.09.2017
Сообщений: 12,023
|
|||||
| 04.10.2022, 11:59 | |||||
|
Моноширинный это скорее для консоли, сред программирования и т.п. В окне помещается W/wf символов по ширине и H/hf по высоте, оба числа должны быть целыми. А всего символов L. Отсюда несложно найти Останется только подобрать f более точно, чтобы ни по ширине, ни по высоте буквы не обрезались. Разумеется, это самый примитивный способ, делящий текст просто по буквам, не разбираясь где слова. Если так, осталось только ловить оконное событие изменения размера окна и менять размер Label'а. Он же в winapi тоже считается окном, и позволяет задавать свои размеры. Или я что-то неправильно понимаю?
0
|
|||||
|
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,633
|
|||||||
| 05.10.2022, 04:56 [ТС] | |||||||
|
0
|
|||||||
|
4070 / 2704 / 433
Регистрация: 09.09.2017
Сообщений: 12,023
|
||||||
| 05.10.2022, 09:56 | ||||||
|
А там - кто знает, вдруг заказчик потребует Comic Sans использовать. Опять же зависит от того, как именно вы хотите решить задачу - через стандартные виджеты или через ручную отрисовку. Оба варианта имеют учебную ценность. На всякий случай: рассуждения про W, H и f - простейшее решение, которое я за пару минут придумал. А не какое-то стандартное решение. Собственно, поэтому для "практической интерпретации" я рекомендую фиксировать размер шрифта и ширину окна, а по высоте - как повезет. Может, внизу останется куча пустого места, может придется прокрутку добавлять, может окно само растянется по вертикали. Любой из этих вариантов лучше, чем если юзер не сможет прочитать важную информацию.
0
|
||||||
|
4070 / 2704 / 433
Регистрация: 09.09.2017
Сообщений: 12,023
|
|
| 05.10.2022, 10:18 | |
|
Надо же, нашел свой код тех времен, когда развлекался с winapi, немного допилил его - SS_LEFT работает как надо. Осталось отловить событие ресайза и менять размер Label'а.
0
|
|
|
фрилансер
6495 / 5724 / 1133
Регистрация: 11.10.2019
Сообщений: 15,286
|
|
| 05.10.2022, 10:28 | |
|
COKPOWEHEU, а ещё можно сам диалог подогнать под размер клиентской области AdjustWindowRectEx
0
|
|
|
4070 / 2704 / 433
Регистрация: 09.09.2017
Сообщений: 12,023
|
|
| 05.10.2022, 10:50 | |
|
Алексей1153, я в лоб сделал, через событие WM_SIZE и SetWindowPos:
0
|
|
|
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,633
|
||||||||||||||
| 05.10.2022, 11:52 [ТС] | ||||||||||||||
|
Хотя сейчас пробовал, если текст не поместился в строке окна, то слово, которое не пометилось было перенесено на вторую строку. Может в текст нужно ставить ограничители вроде '\n' или ещё какие-нибудь?! Добавлено через 2 минуты
0
|
||||||||||||||
|
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,633
|
|
| 05.10.2022, 13:27 [ТС] | |
|
0
|
|
|
4070 / 2704 / 433
Регистрация: 09.09.2017
Сообщений: 12,023
|
||||||
| 05.10.2022, 13:55 | ||||||
|
Как исправить то, что текст не всегда видно, вариантов несколько. Можно уменьшать шрифт, но для реальных применений так делать не стоит: ничего будет не разобрать. Можно ограничить изменение размеров окна, чтобы меньше допустимого предела оно не уменьшалось. Можно добавить полосу прокрутки. Да, я не следую тексту вашей задачи буквально, а подгоняю ее под практическое применение. А то если следовать буквально, можно вообще в одну строчку по диагонали вывести, от угла до угла. Тоже, конечно, упражнение, но уже с совсем непонятной практической перспективой.
0
|
||||||
|
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,633
|
|
| 05.10.2022, 14:03 [ТС] | |
|
Так работает, но это не то, что нужно.
0
|
|
|
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,633
|
|||||
| 05.10.2022, 14:11 [ТС] | |||||
|
0
|
|||||
|
4070 / 2704 / 433
Регистрация: 09.09.2017
Сообщений: 12,023
|
|||||
| 05.10.2022, 16:54 | |||||
0
|
|||||
|
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,633
|
||||||||||
| 06.10.2022, 12:38 [ТС] | ||||||||||
0
|
||||||||||
| 06.10.2022, 12:38 | |
|
Кодировка , кириллица не корректно отображается Не выводится кириллица Не выводится кириллица из БД Не выводится кириллица в консоль Кириллица выводится некорректно Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
|
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS
Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
|
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи.
Через несколько переработок от PHP кода к C89 (надеюсь, 89).
Но довольно запутанно получилось. Код для Linux.
Но если убрать time и то, что с ним. . .
|
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки
Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
|
|
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы
Всем привет! Хочу поделиться свежим (и довольно. . .
|
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
|
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения:
- добавлена многоязычность
- добавлено снятие скриншотов
- добавлено поддержание бафов хождения по воде (для жреца, дк и шамана)
- и так, по. . .
|
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу)))
Критические ошибки, мешающие компиляции и. . .
|