Идентификация записей на диске с названием в Юникоде
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
-
- Старожил
- Сообщения: 230
- Зарегистрирован: 10 Ноябрь 2005, 23:07
- Откуда: Краснодар
- Благодарил (а): 4 раза
Идентификация записей на диске с названием в Юникоде
Всем привет!
Как решить следующую задачу?
На диске имеются файлы, в том числе, с названиями в юникоде. Которые средой Клариона или переводятся в похоже-подходящие символы или заменяются знаками вопроса, например, для иероглифов. В любом из этих случаев, после того, как файлы в папке отсканированы оператором Directory, программа не может обратиться к ним для манипуляций.
Приходилось ли кому решать данную задачу и каковы методы её решения?
Интуитивно на ум приходит идея считывать каким-то образом идентификаторы этих файлов во внутренней среде Windows (если таковы там имеются) и прописывать их в таблицу БД.
Как решить следующую задачу?
На диске имеются файлы, в том числе, с названиями в юникоде. Которые средой Клариона или переводятся в похоже-подходящие символы или заменяются знаками вопроса, например, для иероглифов. В любом из этих случаев, после того, как файлы в папке отсканированы оператором Directory, программа не может обратиться к ним для манипуляций.
Приходилось ли кому решать данную задачу и каковы методы её решения?
Интуитивно на ум приходит идея считывать каким-то образом идентификаторы этих файлов во внутренней среде Windows (если таковы там имеются) и прописывать их в таблицу БД.
- Дед Пахом
- Старичок
- Сообщения: 3247
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 14 раз
- Поблагодарили: 46 раз
- Контактная информация:
Идентификация записей на диске с названием в Юникоде
Я бы посмотрел в сторону FindFirstFile/FindNextFile api: https://learn.microsoft.com/en-us/windo ... -directory.
С уважением, ДП
-
- Старожил
- Сообщения: 230
- Зарегистрирован: 10 Ноябрь 2005, 23:07
- Откуда: Краснодар
- Благодарил (а): 4 раза
Идентификация записей на диске с названием в Юникоде
Спасибо за быстрый отклик!
Никогда не сталкивался с данными функциями. Но судя по названию и описанию, даже не знаю, как их приложить к решению обозначенной задачи.
Например, функция FindFirstFileA: Выполняет поиск в каталоге файла или подкаталога с именем, совпадающим с определенным именем (или частью имени, если используются подстановочные знаки). Открывает дескриптор поиска и возвращает информацию о первом файле, который находит файловая система с именем, соответствующим указанному шаблону.
А если в базе данных нет (релевантного) имени, по которому можно производить поиск. Вместо имени - одни знаки вопросов?!
Неужто сработает? Имеются ли у кого положительное решение озвученной задачи рассматриваемым методом?
Никогда не сталкивался с данными функциями. Но судя по названию и описанию, даже не знаю, как их приложить к решению обозначенной задачи.
Например, функция FindFirstFileA: Выполняет поиск в каталоге файла или подкаталога с именем, совпадающим с определенным именем (или частью имени, если используются подстановочные знаки). Открывает дескриптор поиска и возвращает информацию о первом файле, который находит файловая система с именем, соответствующим указанному шаблону.
А если в базе данных нет (релевантного) имени, по которому можно производить поиск. Вместо имени - одни знаки вопросов?!
Неужто сработает? Имеются ли у кого положительное решение озвученной задачи рассматриваемым методом?
- Дед Пахом
- Старичок
- Сообщения: 3247
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 14 раз
- Поблагодарили: 46 раз
- Контактная информация:
Идентификация записей на диске с названием в Юникоде
Эти функции могут заменить кларионовский DIRECTORY там, где он не работает. Не понял, причём тут база данных.
С уважением, ДП
-
- Старожил
- Сообщения: 230
- Зарегистрирован: 10 Ноябрь 2005, 23:07
- Откуда: Краснодар
- Благодарил (а): 4 раза
Идентификация записей на диске с названием в Юникоде
В БД хранятся наименования (с расширениями) файлов из директории. По этим наименованиям и должен программой производиться поиск файлов и манипуляции с ними (редактирование наименования, удаление, запуск на исполнение).
То есть, БД - это, в первую очередь, своеобразный каталог имеющихся файлов на диске.
- Дед Пахом
- Старичок
- Сообщения: 3247
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 14 раз
- Поблагодарили: 46 раз
- Контактная информация:
Идентификация записей на диске с названием в Юникоде
Ну если у Вас в бд вместо имён файлов знаки вопроса, то у меня плохие новости.
С уважением, ДП
-
- Старожил
- Сообщения: 230
- Зарегистрирован: 10 Ноябрь 2005, 23:07
- Откуда: Краснодар
- Благодарил (а): 4 раза
Идентификация записей на диске с названием в Юникоде
С этими плохими новостями пытаюсь как-то сжиться, параллельно ища возможности локального преодоления данного ограничения, накладываемого Кларион.
Тема проблемы юникода в Кларе древняя как и сам Кларион, поэтому и подумалось, что кто-то уже к этому моменту придумал "волшебный" костыль!
- Игорь Столяров
- Ветеран движения
- Сообщения: 7735
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 26 раз
- Поблагодарили: 73 раза
Идентификация записей на диске с названием в Юникоде
Это не проблема и решение известно и опубликовано в самом Clarion.
Например, проверка наличия файла с таким именем на диске - см. метод FileExists() в файле CWUTIL.CLW
Вам абсолютно верно рекомендовали получить список таких имён через Windows API,
и на ClaHUB есть информация, например https://clarionhub.com/t/win32-api-find ... er/5585/11
Вообще имена в юникоде - это тема серверов UNIX (например обмен с FTP сервисом) и т.д.
Make Clarion Great Again !