Идентификация записей на диске с названием в Юникоде

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
NewUser
Старожил
Сообщения: 230
Зарегистрирован: 10 Ноябрь 2005, 23:07
Откуда: Краснодар
Благодарил (а): 4 раза

Идентификация записей на диске с названием в Юникоде

Сообщение NewUser »

Всем привет!
Как решить следующую задачу?
На диске имеются файлы, в том числе, с названиями в юникоде. Которые средой Клариона или переводятся в похоже-подходящие символы или заменяются знаками вопроса, например, для иероглифов. В любом из этих случаев, после того, как файлы в папке отсканированы оператором Directory, программа не может обратиться к ним для манипуляций.
Приходилось ли кому решать данную задачу и каковы методы её решения?
Интуитивно на ум приходит идея считывать каким-то образом идентификаторы этих файлов во внутренней среде Windows (если таковы там имеются) и прописывать их в таблицу БД.
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3247
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 14 раз
Поблагодарили: 46 раз
Контактная информация:

Идентификация записей на диске с названием в Юникоде

Сообщение Дед Пахом »

Я бы посмотрел в сторону FindFirstFile/FindNextFile api: https://learn.microsoft.com/en-us/windo ... -directory.
С уважением, ДП
NewUser
Старожил
Сообщения: 230
Зарегистрирован: 10 Ноябрь 2005, 23:07
Откуда: Краснодар
Благодарил (а): 4 раза

Идентификация записей на диске с названием в Юникоде

Сообщение NewUser »

Спасибо за быстрый отклик!
Никогда не сталкивался с данными функциями. Но судя по названию и описанию, даже не знаю, как их приложить к решению обозначенной задачи.
Например, функция FindFirstFileA: Выполняет поиск в каталоге файла или подкаталога с именем, совпадающим с определенным именем (или частью имени, если используются подстановочные знаки). Открывает дескриптор поиска и возвращает информацию о первом файле, который находит файловая система с именем, соответствующим указанному шаблону.
А если в базе данных нет (релевантного) имени, по которому можно производить поиск. Вместо имени - одни знаки вопросов?!
Неужто сработает? Имеются ли у кого положительное решение озвученной задачи рассматриваемым методом?
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3247
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 14 раз
Поблагодарили: 46 раз
Контактная информация:

Идентификация записей на диске с названием в Юникоде

Сообщение Дед Пахом »

Эти функции могут заменить кларионовский DIRECTORY там, где он не работает. Не понял, причём тут база данных.
С уважением, ДП
NewUser
Старожил
Сообщения: 230
Зарегистрирован: 10 Ноябрь 2005, 23:07
Откуда: Краснодар
Благодарил (а): 4 раза

Идентификация записей на диске с названием в Юникоде

Сообщение NewUser »

Дед Пахом писал(а): 11 Июль 2024, 18:46 Не понял, причём тут база данных.
В БД хранятся наименования (с расширениями) файлов из директории. По этим наименованиям и должен программой производиться поиск файлов и манипуляции с ними (редактирование наименования, удаление, запуск на исполнение).
То есть, БД - это, в первую очередь, своеобразный каталог имеющихся файлов на диске.
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3247
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 14 раз
Поблагодарили: 46 раз
Контактная информация:

Идентификация записей на диске с названием в Юникоде

Сообщение Дед Пахом »

Ну если у Вас в бд вместо имён файлов знаки вопроса, то у меня плохие новости.
С уважением, ДП
NewUser
Старожил
Сообщения: 230
Зарегистрирован: 10 Ноябрь 2005, 23:07
Откуда: Краснодар
Благодарил (а): 4 раза

Идентификация записей на диске с названием в Юникоде

Сообщение NewUser »

Дед Пахом писал(а): 11 Июль 2024, 18:57 то у меня плохие новости.
С этими плохими новостями пытаюсь как-то сжиться, параллельно ища возможности локального преодоления данного ограничения, накладываемого Кларион.
Тема проблемы юникода в Кларе древняя как и сам Кларион, поэтому и подумалось, что кто-то уже к этому моменту придумал "волшебный" костыль!
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7735
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 26 раз
Поблагодарили: 73 раза

Идентификация записей на диске с названием в Юникоде

Сообщение Игорь Столяров »

NewUser писал(а): 11 Июль 2024, 19:04 Тема проблемы юникода в Кларе древняя как и сам Кларион
Это не проблема и решение известно и опубликовано в самом Clarion.
Например, проверка наличия файла с таким именем на диске - см. метод FileExists() в файле CWUTIL.CLW

Вам абсолютно верно рекомендовали получить список таких имён через Windows API,
и на ClaHUB есть информация, например https://clarionhub.com/t/win32-api-find ... er/5585/11

Вообще имена в юникоде - это тема серверов UNIX (например обмен с FTP сервисом) и т.д. ;)
Make Clarion Great Again ! 😎
Ответить