FreeBasic
Главная
Вход
Регистрация
Пятница, 07.10.2022, 18:49Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 2 из 2
  • «
  • 1
  • 2
Форум » Freebasic » Вопросы по языку FreeBasic » Dir (Русские имена)
Dir
RStandart26Дата: Среда, 10.08.2022, 19:51 | Сообщение # 16
Рядовой
Группа: Пользователи
Сообщений: 8
Репутация: 0
Статус: Offline
То что надо, Генералисимус, =) про это и спрашивал. Незнал как функция называется но пологал, что должна быть такая. И не мутил я нечего с Dir, string тип везде и все норм там)) Wstring пользую крайне редко, потомучто это Ад в FB.
А Api пользую только когда стандартных, встрренных функций нехватает. Вот этот случай biggrin
В Юникоде только исходники, потому, что консоль не выпечатывает Ansi, а только oem или Юникод. Но компиль, блокнот и все такое, вечно распознает oem как ansi, отличить не может. Меня это достало в край. И перевел все исходники в Uni. Ждем когда компиль дорастет до нормального пользования этого типа, а не через ссылки и выделения памяти и прочую фигню. А просто wstroka = "строка абв"
Можно попросить кому не трудно перевести припер польщования функции из C++ в читаемый вид FB. Спасибо!

https://docs.microsoft.com/en-us....rectory
 
haavДата: Четверг, 11.08.2022, 06:00 | Сообщение # 17
Генералиссимус
Группа: Администраторы
Сообщений: 1289
Репутация: 46
Статус: Offline
Код
#define UNICODE
#Include "windows.bi"

Dim As WIN32_FIND_DATA FI

dim as handle hDir = FindFirstFile("C:\*.*", @FI)

if hDir <> INVALID_HANDLE_VALUE then
    
    Do
        
        If FI.dwFileAttributes And FILE_ATTRIBUTE_DIRECTORY  Then
            
            Print "Folder:" , FI.cFileName
            
        else
            
            Print "File:" , FI.cFileName
            
        endif
        
    Loop While FindNextFile(hDir, @FI)
    
    FindClose(hDir)
    
endif

Sleep


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
zamabuvaraeuДата: Пятница, 12.08.2022, 08:25 | Сообщение # 18
Подполковник
Группа: Друзья
Сообщений: 116
Репутация: 1
Статус: Offline

Код
И перевел все исходники в Uni
Я раньше тоже так делал. UTF-16 LE работает даже в FbEdit: комментарии можно писать на русском языке без возни с кодировками.

Но потом грандиозный корабль великого проекта напоролся на подводные камни:
отладчик отображает кракозябры вместо исходного файла
git и svn отказываются видеть такие файлы как текстовые, видят как бинарные
невозможно посмотреть diff
все строковые литералы становятся юникодными
компилятор в некоторых случаях может вставлять лишние конвертации в Ansi при присваивании к типу String
функция Print при перенаправлении вывода печатает литералы в кодировке UTF-16, и обычно это вызывает проблемы
проблемы с некоторыми редакторами кода
какие‐то винапи‐функции начинают вызываться как юникодные, а другие как Ansi.
 
haavДата: Пятница, 12.08.2022, 11:25 | Сообщение # 19
Генералиссимус
Группа: Администраторы
Сообщений: 1289
Репутация: 46
Статус: Offline
Не понимаю все эти извращения с кодировками.

1) Хочешь писать в ASCII , создавай исходник в стандартной виндовой кодировке ASCII. Для русской винды это будет кодовая страница 1251. Все редакторы (в том числе блокнот) будут прекрасно поддерживать эту кодировку. И пользуйся всеми функциями ASCII (в том числе и DIR). Для вывода в консоль русских букв можно перед выводом преобразовывать текст при помощи CharToOem.
2) Хочешь писать в юникоде , сохраняй все исходники в UTF-16le и пользуйся юникодными функциями. У FB не все функции поддерживают юникод , поэтому что-то придется тягать из winapi.


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
zamabuvaraeuДата: Воскресенье, 21.08.2022, 05:50 | Сообщение # 20
Подполковник
Группа: Друзья
Сообщений: 116
Репутация: 1
Статус: Offline
Вот из‐за этой непроработанности функций стандартной библиотеки остановилась моя работа над учебнику по фрибесику.
У нас было бы два варианта:
Для встроенных функций постоянно делать ремарку «не работает с русскими буквами», и такие фразы в учебнике делают плохую рекламу.
Вызывать функции системы напрямую, а это некроссплатформенный путь.

Впрочем, эту проблему не могут решить даже ряд таких мейнстримовых языков как Си и Си Плас Плас. Достаточно открыть любой форум, и там в каждой первой теме будет вопрос о выводе строк без кракозябр или каких‐нибудь конфликтов char и WCHAR.
 
DarkDemonДата: Воскресенье, 25.09.2022, 22:17 | Сообщение # 21
Полковник
Группа: Друзья
Сообщений: 184
Репутация: -2
Статус: Offline
Цитата zamabuvaraeu ()
и в современном мире для написания GUI непригодна.

Пригодна. Если руки из правильного места. А если как на CF-е ребята делают, там точечки, кружочки, линии - тогда да, тогда всё печально.

Вот несколько утилит: 
https://docs.google.com/documen....dit

2, 4, 5, 6 - на FB.

Техническая графика без особых красивостей для разных целевых задач.

Добавлено (25.09.2022, 22:52)
---------------------------------------------

Цитата
Впрочем, эту проблему не могут решить даже ряд таких мейнстримовых языков как Си и Си Плас Плас. Достаточно открыть любой форум, и там в каждой первой теме будет вопрос о выводе строк без кракозябр

Абсолютно верно, проблема стара как мир. Проблема кодировок уже жёвана пережёвана. И основные аспекты тут:

1) Стандартизация формата
2) Сложность обслуживания (создание шрифтов, регламентирование нюансов[управляющих символов], написание функций поддержки)
3) Патентные заморочки (с авторами шрифтов)
4) Куча софта, тяготеющего к старым форматам (OEM, ANSI).
5) Наличие полноценных IDE именно интегрированных сред и их полная поддержка операционными системами(а то на одной винде так,
на другой эдак, а на линуксе мол вот так получите и распишитесь).

Поэтому каждый ковыряется как умеет. Кто-то избавляется от рантайма, кто-то как я шьёт шрифт в программу и при случае
взаимодействия - ипётся с конвертерами кодировок системы. Кому-то нужны смайлики и иероглифы в именах файлов, мне пока не нужны,
т.к. мой софт не китайцам и корейцам, в обычном случае - русские\английские файлы прочитает, русский\английский шрифт отобразит,
а иного и не заявлено.

Вообще считаю, что делать шрифт каким-то там "мультибайтовым" - это полная, вытекающая последствиями жопа.
Для безгеморности нужен фиксированный размер данных на символ, сколько надо символов столько памяти и завёл, всё известно, всё понятно.
И как только начинаются вот эти плавающие, как тунцы в проруби, размеры - вот тут все пляски с бубнами и начинаются.

И конечно люди теряются, в какой формат переводить, какие функции использовать, как правильно отобразить.
Я тут недавно пытался поставить HaoZip новый, на XP 64 Бита(SP2) по совету Стаса и скидывал ему скриншоты смешные, кнопка есть,
надписи нет, окно есть - текста нет. Если он найдёт в переписке - скинет посмеяться. В итоге старую, кончено, скачали и там всё нормально,
но как говорится "осадочек остался". Т.е. отстреливают карачку даже матёрые программисты, явно не новички.

Это о вопросе стандартизации и обратной совместимости с ещё не устаревшей физически системой, которая многое может.
 
zamabuvaraeuДата: Понедельник, 26.09.2022, 11:50 | Сообщение # 22
Подполковник
Группа: Друзья
Сообщений: 116
Репутация: 1
Статус: Offline
Пытаться повторить хотя бы те элементы управления, которые были ещё в Windows 95?
Ну не знаю…

Вот корпорация QT тоже до сих пор пытается рисовать с нуля всё GUI. Выглядит очень похоже, но родным не является. Буквально тут и там торчат такие неприятные мелочи, как забытая навигация по TAB, списки, которые не раскрываются по Ctrl+↓, кнопки которые доступны только мышью и нельзя нажать с клавиатуры.
Прикрепления: 8436839.png(163.1 Kb)
 
DarkDemonДата: Вторник, 27.09.2022, 01:33 | Сообщение # 23
Полковник
Группа: Друзья
Сообщений: 184
Репутация: -2
Статус: Offline
Цитата zamabuvaraeu ()
Пытаться повторить хотя бы те элементы управления, которые были ещё в Windows 95?

Повторение - мать учения. Но я за полный кастом под целевую задачу. Концептуально новаторское изобрести - это не по мне,
просто стараюсь делать под задачу и как можно удобнее(больше интерактива с пользователем), а новое тут нужны идейные
люди и много тестирования. WinAPI мне никогда не нравились как и сама винда, просто приходится это использовать, потому
что это наиболее используемая операционная система. Что-то сделано хорошо, что-то - скверно.
Монструозный функционал и того же уровня проблемы, React OS захотели повторить - повязли по уши, а потом взяли
инородный wine и все всё сразу поняли. Когда кто-то что-то хочет сделать, делает, сталкивается с проблемами, а потом
берёт чужое, отказавшись от своих разработок - это отчётливо бросает тень на разработчика. Это выглядит, примерно
как Геракл, пришедший убивать немейского льва и трусливо сбежавший, после первого укуса))).
QT - не знаю что он и как рисует - не изучал. Отсутствие навигации по TAB - боль многих приложений, встречал кучу приложений
где ни ALT, ни F6, ни F10, ни TAB - ничего не дают, сидишь тыкаешь тыкаешь как осёл - а оно не работает. С другой стороны
- не всегда оно надо, если прога строго ориентирована на мышь.
Вообще это весомо, когда пишешь для слабовидящих, сам пока ориентируюсь на зрячих, просто не хочу лезть туда вообще,
это очень глобальная область и для людей мягко сказать, либо выдающихся, либо выдающихся воров.
 
Форум » Freebasic » Вопросы по языку FreeBasic » Dir (Русские имена)
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск: