|
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,638
|
||||||
Вывод информации в файл, Кириллица корректно не выводится23.09.2022, 06:43. Показов 7691. Ответов 81
Метки нет (Все метки)
Здравствуйте! Решил вывести информацию в файл по нажатии на кнопку "сохранить", но в файл отображается либо кракозябры, либо ничего, если текст на русском.
Вот код той части кода, которая должна выполнить задуманное: Кликните здесь для просмотра всего текста
Если честно, то я иссяк и хоть это не так важно на данный момент - я про вывод информации в файл, но, думаю, что лишним подобные знания не будут. В чём мой косяк? По идее должно выводить без проблем. Считывая строку из элемента управления "edit" в каком формате ANSII или UNICODE она попадает в буфер?
0
|
||||||
| 23.09.2022, 06:43 | |
|
Ответы с готовыми решениями:
81
Вывод информации - кириллица и латиница вместе
Ввод вывод в файл и консоль.(Кириллица) |
|
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,638
|
||||||
| 02.10.2022, 06:11 [ТС] | ||||||
|
мне _getch() ближе и работает быстрее, что так что так нужно подключать дополнительную библиотеку, так что хрен едьки не слаще.
0
|
||||||
|
4148 / 2726 / 433
Регистрация: 09.09.2017
Сообщений: 12,080
|
|||||||||||
| 02.10.2022, 10:07 | |||||||||||
|
Сейчас это для вас не критично, но если уж есть возможность "забесплатно" сохранить кроссплатформенность, лучше ей пользоваться. Просто хорошая привычка. UPD: аж любопытно стало, проверил в gtk - да, там такая возможность есть, включается gtk_label_set_line_wrap.
0
|
|||||||||||
|
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,638
|
|||
| 03.10.2022, 11:22 [ТС] | |||
|
Это у вас на картинке так текст равномерно распределён от левого верхнего до правого нижнего угла.
0
|
|||
|
4148 / 2726 / 433
Регистрация: 09.09.2017
Сообщений: 12,080
|
|||||
| 03.10.2022, 13:48 | |||||
|
0
|
|||||
|
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,638
|
|||||
| 04.10.2022, 05:38 [ТС] | |||||
|
Текст из N-символов попробовать разделить на равные значения в идеале нужно получить r-строк по m-символов в каждой строке. Если при деление текста на значения от 2 до 9 нет результатов, которые в остатке имеют нуль, то можно отбросить остаток, предварительно, вычислив результаты r и m такие, при которых хвостик буде минимальным. Далее m умножить на ширину символа мы получили ширину окна, тоже самое нужно проделать с r - умножив на высоту символа и получив высоту окна. Теперь мы имеем окно в которое помещается текст согласно условию. Теперь нужно текст вывести в окно - первый этап завершён, инициализация пройдена, теперь нужно понять, как его(текст) обрабатывать при работе с размером окна.
0
|
|||||
|
4148 / 2726 / 433
Регистрация: 09.09.2017
Сообщений: 12,080
|
||||
| 04.10.2022, 09:41 | ||||
|
Что-то мне подсказывает, что для такой интерпретации задачи достаточно решить какое-то уравнение, которое даст единственное решение. . В общем, вариант с label'ом мне кажется наиболее правдоподобным - добавить код изменения ширины виджета, возможно шрифта и т.п. Ну и сами попробуйте прикинуть варианты где это задание может использоваться в реальной жизни.
0
|
||||
|
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,638
|
|||||
| 04.10.2022, 10:14 [ТС] | |||||
|
0
|
|||||
|
4148 / 2726 / 433
Регистрация: 09.09.2017
Сообщений: 12,080
|
|||||
| 04.10.2022, 11:59 | |||||
|
Моноширинный это скорее для консоли, сред программирования и т.п. В окне помещается W/wf символов по ширине и H/hf по высоте, оба числа должны быть целыми. А всего символов L. Отсюда несложно найти Останется только подобрать f более точно, чтобы ни по ширине, ни по высоте буквы не обрезались. Разумеется, это самый примитивный способ, делящий текст просто по буквам, не разбираясь где слова. Если так, осталось только ловить оконное событие изменения размера окна и менять размер Label'а. Он же в winapi тоже считается окном, и позволяет задавать свои размеры. Или я что-то неправильно понимаю?
0
|
|||||
|
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,638
|
|||||||
| 05.10.2022, 04:56 [ТС] | |||||||
|
0
|
|||||||
|
4148 / 2726 / 433
Регистрация: 09.09.2017
Сообщений: 12,080
|
||||||
| 05.10.2022, 09:56 | ||||||
|
А там - кто знает, вдруг заказчик потребует Comic Sans использовать. Опять же зависит от того, как именно вы хотите решить задачу - через стандартные виджеты или через ручную отрисовку. Оба варианта имеют учебную ценность. На всякий случай: рассуждения про W, H и f - простейшее решение, которое я за пару минут придумал. А не какое-то стандартное решение. Собственно, поэтому для "практической интерпретации" я рекомендую фиксировать размер шрифта и ширину окна, а по высоте - как повезет. Может, внизу останется куча пустого места, может придется прокрутку добавлять, может окно само растянется по вертикали. Любой из этих вариантов лучше, чем если юзер не сможет прочитать важную информацию.
0
|
||||||
|
4148 / 2726 / 433
Регистрация: 09.09.2017
Сообщений: 12,080
|
|
| 05.10.2022, 10:18 | |
|
Надо же, нашел свой код тех времен, когда развлекался с winapi, немного допилил его - SS_LEFT работает как надо. Осталось отловить событие ресайза и менять размер Label'а.
0
|
|
|
фрилансер
6500 / 5731 / 1134
Регистрация: 11.10.2019
Сообщений: 15,338
|
|
| 05.10.2022, 10:28 | |
|
COKPOWEHEU, а ещё можно сам диалог подогнать под размер клиентской области AdjustWindowRectEx
0
|
|
|
4148 / 2726 / 433
Регистрация: 09.09.2017
Сообщений: 12,080
|
|
| 05.10.2022, 10:50 | |
|
Алексей1153, я в лоб сделал, через событие WM_SIZE и SetWindowPos:
0
|
|
|
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,638
|
||||||||||||||
| 05.10.2022, 11:52 [ТС] | ||||||||||||||
|
Хотя сейчас пробовал, если текст не поместился в строке окна, то слово, которое не пометилось было перенесено на вторую строку. Может в текст нужно ставить ограничители вроде '\n' или ещё какие-нибудь?! Добавлено через 2 минуты
0
|
||||||||||||||
|
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,638
|
|
| 05.10.2022, 13:27 [ТС] | |
|
0
|
|
|
4148 / 2726 / 433
Регистрация: 09.09.2017
Сообщений: 12,080
|
||||||
| 05.10.2022, 13:55 | ||||||
|
Как исправить то, что текст не всегда видно, вариантов несколько. Можно уменьшать шрифт, но для реальных применений так делать не стоит: ничего будет не разобрать. Можно ограничить изменение размеров окна, чтобы меньше допустимого предела оно не уменьшалось. Можно добавить полосу прокрутки. Да, я не следую тексту вашей задачи буквально, а подгоняю ее под практическое применение. А то если следовать буквально, можно вообще в одну строчку по диагонали вывести, от угла до угла. Тоже, конечно, упражнение, но уже с совсем непонятной практической перспективой.
0
|
||||||
|
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,638
|
|
| 05.10.2022, 14:03 [ТС] | |
|
Так работает, но это не то, что нужно.
0
|
|
|
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,638
|
|||||
| 05.10.2022, 14:11 [ТС] | |||||
|
0
|
|||||
|
4148 / 2726 / 433
Регистрация: 09.09.2017
Сообщений: 12,080
|
|||||
| 05.10.2022, 16:54 | |||||
0
|
|||||
|
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,638
|
||||||||||
| 06.10.2022, 12:38 [ТС] | ||||||||||
0
|
||||||||||
| 06.10.2022, 12:38 | |
|
Кодировка , кириллица не корректно отображается Не выводится кириллица Не выводится кириллица из БД Не выводится кириллица в консоль Кириллица выводится некорректно Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
|
Лето уходит
kumehtar 17.08.2026
|
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
|
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины".
За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html
Задача: . . .
|
|
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео:
https:/ / vkvideo. ru/ video-240781534_456239017
YouTube:
eY5-5PyI9NM
Текстовая версия
|