|
7 / 7 / 0
Регистрация: 21.12.2016
Сообщений: 152
|
||||||
FindFirstFile не корректно определяет имена файлов с диакритическими знаками18.04.2023, 21:49. Показов 4897. Ответов 88
Метки нет (Все метки)
Доброго времени суток.
Делаю програмку, необходимо получить содержимое папки (список папок и файлов) и после определить ФАЙЛ или ПАПКА и другие атрибуты. Как всегда делал раньше, через API "FindFirstFile", привык, удобно и есть заготовки кода. И вот, выясняется такая неприятная ситуация. На компьютере есть несколько видео файлов с испанскими названиями. В них содержатся слова с Диакритическими знаками. например: "Niño cristiano GANA! concurso secular YouTube.flv español.mp4" Как выяснилось, "FindFirstFile" возвращая имя этого файла, возвращает его как: "Nino cristiano GANA! concurso secular YouTube.flv espanol.mp4" - ну и в дальнейшем соответственно вся обработка рушится. Вот код, давно когда-то нашёл на просторах интернета и всегда использовал:
Облазил весь интернет, так и не понял, как можно исправить данную ситуацию. Читал на каком-то зарубежном С++ форуме, что используют FindFirstFileW и WIN32_FIND_DATAW Но как это оформить и поможет ли это в моём случае, до конца так и не понял. Даже не понял, как объявить правильно на vb6. Если не затруднит, подскажите кто знает, решение. А лучше готовый кусок кода. Буду очень признателен.
0
|
||||||
| 18.04.2023, 21:49 | |
|
Ответы с готовыми решениями:
88
Работа с файлами поиск файлов FindFirstFile,FindNextFile |
|
7 / 7 / 0
Регистрация: 21.12.2016
Сообщений: 152
|
||||||||||||
| 19.04.2023, 14:11 [ТС] | ||||||||||||
|
В частности:
Я беру ваши данные из WFD.ftCreationTime
0
|
||||||||||||
|
Вернулся
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
||
| 19.04.2023, 14:37 | ||
|
Добавлено через 11 минут Если внимательней бы посмотрели то поняли бы что структуру с FILETIME я немного изменил на Currency для упрощения Добавлено через 4 минуты Кстати, там надо использовать WFD.ftLastWriteTime для правильно получения даты и времени файла. Добавлено через 27 секунд ftCreationTime не подходит, мой косяк, не подумал
0
|
||
|
7 / 7 / 0
Регистрация: 21.12.2016
Сообщений: 152
|
||||||||||||||||||||||
| 19.04.2023, 15:11 [ТС] | ||||||||||||||||||||||
|
Вот здесь вы мне выложили код, который почти полностью меня устраивает! Я взял из него вот эту часть:
через неё, вы передаёте изнутри функции наружу, массив имён файлов. Я просто добавил к этим именам ещё и дату и время.
0
|
||||||||||||||||||||||
|
Вернулся
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
|||
| 19.04.2023, 16:10 | |||
|
dirDateTime As Currency Моя функция определения даты оперирует с Currency Добавлено через 27 минут Добавлено через 45 секунд Плюс надо проверять объявления APi на Currency или на FILETIME Добавлено через 3 минуты Моя функция итак прекрасно работает на Currency. Добавлено через 16 минут От пользовательского типа советую отказаться, как было сделано у меня, у меня всё работало. Добавлено через 7 минут Лучше уже два разных массива уж точно работает код чем один массив структуры не хочет работать Добавлено через 32 секунды Чем не устроило как у меня два разных массива один String а другой Currency Добавлено через 11 секунд И всё работает у меня.
0
|
|||
|
7 / 7 / 0
Регистрация: 21.12.2016
Сообщений: 152
|
|||
| 19.04.2023, 16:18 [ТС] | |||
|
Это какой-то вопрос непосредственно с самой функцией: FileTimeToSystemTime Именно к ней вопрос. Вопрос в том, как корректно ftCreationTime As FILETIME превратить в SYSTEMTIME? остальное работает.
0
|
|||
|
Вернулся
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
|
| 19.04.2023, 16:27 | |
|
Я всё сделал. С массивом пользовательского типа FileNameAndDateTime даже. Всё работает.
0
|
|
|
Вернулся
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
||||||
| 19.04.2023, 16:55 | ||||||
|
Получайте массив Currency а потом перебирая этот массив Currency просто профильтровывайте используя функцию FileTimeToString
Всё, ставьте лайке, не жалейте спасибок, и обязательно пометьте самое лучший пост как решение. Всем спасибо. Добавлено через 18 минут Где мои лайки??? Где спасибки???
0
|
||||||
|
7 / 7 / 0
Регистрация: 21.12.2016
Сообщений: 152
|
||
| 19.04.2023, 17:04 [ТС] | ||
|
Второе, спасибо я вам сказал, уже не однократно. За код, который вы мне дали в самом начале. Именно он мне нужен и он мне подошёл. И третье, знаете, ПОМОЩЬ - это когда ты человеку даёшь то, что ОН просит и то, что ему нужно, а не то, что ВАМ кажется ему лучше и проще дать. Искренне признателен за Вашу помощь. Я покопался в коде, поудалял дубликаты деклараций и заРЕМил некоторые строки. Вроде ошибка пропала, сейчас последовательно будут снимать REMы и искать почему появляется эта ошибка.
0
|
||
|
Вернулся
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
||
| 19.04.2023, 18:09 | ||
|
Добавлено через 1 минуту Никаких ошибок у меня нет.
0
|
||
|
|
|
| 21.04.2023, 18:27 | |
|
DirW
Юникодный аналог VB Dir (изначально, автор The Trick). GetFileDate Можно передавать либо путь к файлу (либо его хендл последним аргументом). 2-й аргумент тип получаемых данных - дата создания, изменения или создания. На выходе - Date. Учитываются конвертации, с учётом выставленного локально UTC. Прим.: Все декларации можно найти в том же модуле, либо в modGlobals. Функцию ToggleWow64FSRedirection можно удалить из кода, если доступ к файлам папки C:\windows\system32 не интересует.
1
|
|
|
7 / 7 / 0
Регистрация: 21.12.2016
Сообщений: 152
|
|||||||||||
| 21.04.2023, 21:07 [ТС] | |||||||||||
|
HackerVlad,
Доброго времени суток, опять. Всё великолепно работает, я всё поправил и исправил ошибки. Но выяснилась одна проблема. У меня оказывается среди файлов, завалялись ресурсы вот с такими именами:
в этом месте:
Возможно ли как-то поправить этот момент?
0
|
|||||||||||
|
Вернулся
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
|||
| 21.04.2023, 21:22 | |||
|
Добавлено через 11 минут
0
|
|||
|
7 / 7 / 0
Регистрация: 21.12.2016
Сообщений: 152
|
||
| 21.04.2023, 21:35 [ТС] | ||
|
0
|
||
|
Вернулся
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
|
| 21.04.2023, 21:48 | |
|
Китайские иероглифы не отображаются в Windows XP если не качать специальные уникодные шрифты. Начиная с Windows 7 никаких проблем не должно быть. Шрифт лучше выставить который уж точно поддерживает китайщину, например Segoi UI. Выводить на экран китайщину можно функцией DrawTextW для проверки, пример у меня в соседней теме: Функция QueryFullProcessImageName врёт и возвращает неправильный, уже не существующий, путь к исполняемому файлу
0
|
|
|
7 / 7 / 0
Регистрация: 21.12.2016
Сообщений: 152
|
||||||
| 21.04.2023, 21:59 [ТС] | ||||||
|
HackerVlad, Это никак не связано со Шрифтами!
В системе у меня отображаются эти файлы корректно. Как в Проводнике, так и в Far manager.
0
|
||||||
|
Вернулся
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
|||
| 21.04.2023, 22:03 | |||
|
Добавлено через 1 минуту
0
|
|||
|
Вернулся
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
|
| 21.04.2023, 22:05 | |
|
Никаких проблем с китайщиной в моём коде уж точно нет. Внимание на экран :-)
0
|
|
|
Вернулся
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
|
| 21.04.2023, 22:12 | |
|
И даже Ваш код проверил, никаких 63, 63, 63, 63 там и в помине нет даже, никаких вопросительных знаков, внимание на скриншот!
0
|
|
|
Вернулся
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
|
| 21.04.2023, 22:20 | |
|
Хотя, Debig.Print таким дебильным образом и правда будет возвращать 63, это же надо было додуматься до такого тупого кода блин
Добавлено через 2 минуты Mid нельзя использовать здесь Добавлено через 52 секунды Хотя нет, Mid использовать можно Надо использовать AscW
0
|
|
|
7 / 7 / 0
Регистрация: 21.12.2016
Сообщений: 152
|
|
| 21.04.2023, 22:21 [ТС] | |
|
HackerVlad,
Послушайте, во первых я взял код ваш отсюда, а не из файла с ЛистБоксом. Ваш файл я не использовал. Во вторых, не имейте привычки судить других людей по себе. Я принципиально никогда не лгу, мне не зачем. Доказывать я вам ничего не намерен. Требовать я с вас ничего не требую. Я сказал как есть, Ваш код возвращает знаки вопроса - это не опровержимый факт. Если вы реально помочь не способны, психовать ненужно. Может кто-то другой что-то подскажет. Попробую код который предложил Dragokas.
0
|
|
| 21.04.2023, 22:21 | |
|
Переименование PDF-файлов в имена, берущиеся из содержимого этих файлов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
интеграция 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
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу)))
Критические ошибки, мешающие компиляции и. . .
|
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата)
Этот документ предназначен для того, чтобы новый чат Claude мог продолжить
работу без необходимости заново разбираться в. . .
|