Форум программистов, компьютерный форум, киберфорум
VBScript/JScript/WSH/WMI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.80/25: Рейтинг темы: голосов - 25, средняя оценка - 4.80
62 / 6 / 1
Регистрация: 09.09.2012
Сообщений: 138

Верхний регистр наименования файлов и кодировка создаваемого txt файла

29.01.2019, 10:42. Показов 6163. Ответов 40

Студворк — интернет-сервис помощи студентам
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Option Explicit
'================= Изменяемые параметры ===============================
Const Num = 5 ' число файлов на перенос в папки №
'======================================================================
Dim oFSO, oDir, Path, oItems, oFiles, Count, i, c, F, Name, A, Mask
Dim T: T = Timer
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oDir = CreateObject("Shell.Application")._
NameSpace(oFSO.GetParentFolderName(WSH.ScriptFullName))
If oDir Is Nothing Then WSH.Quit
Path = oDir.Self.Path
Set oItems = oDir.Items
Set oFiles = oDir.Items
oItems.Filter 73920, "*_*_*_*_фас*.jpg"
Count = oItems.Count: i = Count/Num
If i > Fix(i) Then i = Fix(i) + 1
For c = 1 To Fix(i) : oDir.NewFolder c : Next
i = 0 : c = 1
For Each F In oItems
   Name = oFSO.GetFileName(F.Path)
   A = Split(oFSO.GetBaseName(Name), "_")
   With oFSO.CreateTextFile(Path & "\" & c & "\" & Name & ".txt", 1, 1)
      .Write "Fam," & A(0) & vbCrLf & "Im," & A(1) &_
      vbCrLf & "Otch," & A(2) :.Close
   End With
   i = i + 1 : Mask = Mask & ";" & Name
   If i Mod Num = 0 Or i = Count Then
      oFiles.Filter 73920, Mid(Mask, 2) : Mask = Empty
      oDir.ParseName(c).GetFolder.MoveHere oFiles, 5652
      c = c + 1
   End If
Next
MsgBox " Скрипт выполнен за " & Timer - T & " сек.", 4160, " Подготовка файлов для экспорта      "
1) При выполнении этого скрипта в папке находятся файлы по такому условию - "*_*_*_*_фас*.jpg" (пример - Иванов_Иван_Иванович_5987_фас.jpg)
2) К каждому файлу создается txt с именем, которое в точности повторяет название jpg файла "*_*_*_*_фас*.jpg.txt"
3) В txt файл вносится информация, которая берется из имени jpg файла и получается например в таком виде
Fam,Иванов
Im,Иван
Otch,Иванович
4) Далее в зависимости от значения "Num" они в необходимом количестве переносятся во вновь создаваемые папки

Вот какие вопросы хотелось бы решить:
1) как наименования файлов jpg и txt сделать только прописными буквами (в верхнем регистре), и соответственно чтобы в самом txt тоже появились только прописные буквы
2) txt файл сохраняется почему-то в кодировке 1200 (UTF-16 LE) с BOM
как поменять кодировку например на 1251 ANSI или на 866 OEM или на 65001 UTF-8?
Просто я пока не знаю какая потребуется - файлы в итоге используются в Linux для конвертации в базу и я не знаю в какой кодировке не будет проблем с русским шрифтом
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.01.2019, 10:42
Ответы с готовыми решениями:

Переименование файлов в верхний или нижний регистр (WSH)
Всем доброго времени суток)) Подскажите как создать скрипт, заданиетакое: Переименование файлов в верхний или нижний регистр, Поля ввода...

Кодировка создаваемого скриптом файла
Open fileName As fileNumber Чтобы записать файл в нужной кодировке, нужно указать соответствующий параметр Charset =...

Перевод файла в верхний регистр
Помогите пожалуйста. Нужно перед считыванием файла в массив перевести всё содержимое в верхний регистр. procedure...

40
62 / 6 / 1
Регистрация: 09.09.2012
Сообщений: 138
06.02.2019, 19:58  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от FlasherX Посмотреть сообщение
Вы именно в свой присланный код вставляли?
да, именно в свой
0
7690 / 2887 / 1110
Регистрация: 06.06.2017
Сообщений: 9,817
06.02.2019, 20:51
Цитата Сообщение от Kaliostro82 Посмотреть сообщение
я не понимаю что происходит, но дома у меня все работает корректно
Как раз происходит то, что должно происходить.
Цитата Сообщение от Kaliostro82 Посмотреть сообщение
Причем на работу принесу именно эту же папку с файлами.
Ну, вообще отладочное сообщение я запросил для папки с проблемными файлами. Но раз там такие дела, то и эта не будет лишней.
Скорее тут какая-то проблема shell32.dll. Какая на работе и дома? Версии Windows?
0
62 / 6 / 1
Регистрация: 09.09.2012
Сообщений: 138
07.02.2019, 13:33  [ТС]
Дома win7 ultimate sp1
Работа win7 prof sp1

Какой-то ужас происходит вообщем. Я смог повторить проблему.
Смотрите видео.

Краткое пояснение - на файлах jpg, которые являются пустыми и созданы автоматически, скрипт работает корректно, а вот на реальных файлах не работает.
Вложения
Тип файла: 7z Video_2019-02-07_151325.7z (2.15 Мб, 2 просмотров)
0
7690 / 2887 / 1110
Регистрация: 06.06.2017
Сообщений: 9,817
07.02.2019, 14:07
А где в вашем видео окно с единицей, о котором шла речь?
И где на видео показано, что в 26 строке скрипта маска "*_*_*_*.jpeg" ?

Файлы нулевого размера такие же реальные как и непустые. Для скрипта это неважно.
0
62 / 6 / 1
Регистрация: 09.09.2012
Сообщений: 138
07.02.2019, 15:23  [ТС]
FlasherX, прикладываю
Вложения
Тип файла: 7z Video_2019-02-07_171903.7z (3.93 Мб, 2 просмотров)
0
7690 / 2887 / 1110
Регистрация: 06.06.2017
Сообщений: 9,817
07.02.2019, 16:33
Kaliostro82, интересно девки пляшут.
А если в 26-й поменять 73920 на 8256 ?
0
62 / 6 / 1
Регистрация: 09.09.2012
Сообщений: 138
07.02.2019, 16:37  [ТС]
FlasherX, ничего абсолютно не изменилось, точно такое же происходит как и на последнем видео
0
7690 / 2887 / 1110
Регистрация: 06.06.2017
Сообщений: 9,817
07.02.2019, 16:56
Kaliostro82, а на 64 ? Я так понял, что у данной версии поломанный Filter.
И вы мне так и не назвали версию shell32.dll. А также битность.
0
62 / 6 / 1
Регистрация: 09.09.2012
Сообщений: 138
07.02.2019, 19:19  [ТС]
Дома win7 ultimate sp1 x64, shell32.dll 6.1.7601.17755
Работа win7 prof sp1 x86, shell32.dll 6.1.7601.24234

Добавлено через 7 минут
при замене 73920 на 8256 - эффект такой же как на видео выше.
при замене на 64 - эффект такой же как на видео выше.
0
62 / 6 / 1
Регистрация: 09.09.2012
Сообщений: 138
07.02.2019, 19:24  [ТС]
И ещё, хочу напомнить вот про такой эффект, о котором писал выше - см. видео.
Вложения
Тип файла: 7z Video_2019-02-07_212345.7z (3.08 Мб, 2 просмотров)
0
7690 / 2887 / 1110
Регистрация: 06.06.2017
Сообщений: 9,817
07.02.2019, 19:40
А если вместо _фас указать знак вопроса?
И если через ПКМ на shell32.dll восстановить прежнюю версию?
0
62 / 6 / 1
Регистрация: 09.09.2012
Сообщений: 138
07.02.2019, 19:45  [ТС]
Цитата Сообщение от FlasherX Посмотреть сообщение
А если вместо _фас указать знак вопроса?
"*_*_*_*?.JPEG"
по-прежнему та же ошибка, ничего нового.

Цитата Сообщение от FlasherX Посмотреть сообщение
И если через ПКМ на shell32.dll восстановить прежнюю версию?
это никак не отразится на работоспособности компьютера? я просто не знаю для чего это необходимо, потому и задаю такой может быть глупый вопрос.
0
7690 / 2887 / 1110
Регистрация: 06.06.2017
Сообщений: 9,817
07.02.2019, 19:50
Цитата Сообщение от Kaliostro82 Посмотреть сообщение
это никак не отразится на работоспособности компьютера
Обновление уже, как мы видим, отразилось. Хуже уже вряд ли будет. Тем более версия гораздо новее той, что у вас дома.

И ещё попробуйте знак вопроса не после, а до звёздочки прописать.
0
62 / 6 / 1
Регистрация: 09.09.2012
Сообщений: 138
07.02.2019, 19:56  [ТС]
Цитата Сообщение от FlasherX Посмотреть сообщение
Обновление уже, как мы видим, отразилось. Хуже уже вряд ли будет. Тем более версия гораздо новее той, что у вас дома.
Я сейчас все действия провожу дома. И скрипт у меня не работает ни дома, ни на работе. Работает все корректно ТОЛЬКО на созданных пустышках, либо если я добавлю "_фас", либо вообще даже любую одну букву.

Добавлено через 2 минуты
Цитата Сообщение от FlasherX Посмотреть сообщение
И ещё попробкйте знак вопроса не после, а до звёздочки прописать.
ситуация не изменилась
0
7690 / 2887 / 1110
Регистрация: 06.06.2017
Сообщений: 9,817
07.02.2019, 19:57
Цитата Сообщение от Kaliostro82 Посмотреть сообщение
И скрипт у меня не работает ни дома
Скиньте мне архив с папкой с проблемными файлами.
0
62 / 6 / 1
Регистрация: 09.09.2012
Сообщений: 138
07.02.2019, 19:59  [ТС]
вот он
Вложения
Тип файла: 7z 1.7z (1.7 Кб, 2 просмотров)
0
7690 / 2887 / 1110
Регистрация: 06.06.2017
Сообщений: 9,817
07.02.2019, 20:09
Лучший ответ Сообщение было отмечено Kaliostro82 как решение

Решение

А почему я в коде не вижу этого исправления?
И 8256 можно вернуть на место.
1
62 / 6 / 1
Регистрация: 09.09.2012
Сообщений: 138
07.02.2019, 20:30  [ТС]
Цитата Сообщение от FlasherX Посмотреть сообщение
А почему я в коде не вижу этого исправления?
это моя невнимательность. я похоже запутался с кучей папок дома и на работе, нашел скрипт с этими изменениями у себя в другом месте.. Спасибо огромное!
Неужели это исправляет проблему? Хотя я конечно вижу - результат есть, теперь просто можно писать "*.jpeg" и все прекрасно работает.

Цитата Сообщение от FlasherX Посмотреть сообщение
И 8256 можно вернуть на место.
поясните что это обозначает?
0
7690 / 2887 / 1110
Регистрация: 06.06.2017
Сообщений: 9,817
07.02.2019, 21:39
Цитата Сообщение от Kaliostro82 Посмотреть сообщение
Неужели это исправляет проблему?
Да, так как вы пытались подключиться к уже изменённому объекту F и тащить из него .Name. Т.е. если вы к Msgbox припишите F.Name, а не Name, то ничего не увидите. И в F.Path, разумеется, тоже попадал путь уже без имени, в итоге oFSO.GetFileName(F.Path) брал имя родительской папки. Отсюда и ошибка.
Цитата Сообщение от Kaliostro82 Посмотреть сообщение
теперь просто можно писать "*.jpeg" и все прекрасно работает.
Можно, но не нужно, т.к. в папке могут оказаться jpeg без 3-x знаков подчёркивания, и ошибка вновь появится.
Цитата Сообщение от Kaliostro82 Посмотреть сообщение
поясните что это обозначает?
Флаг фильтрации. 64 (не папки) + 8192 (индексированные данные, ускоряющие поиск). В 73920 (42-43 строка) добавлен поиск скрытых системных файлов. Т.к. это тут не требуется можно оставить 8256. Подробнее об этих и других флагах в hex.
1
62 / 6 / 1
Регистрация: 09.09.2012
Сообщений: 138
08.02.2019, 06:25  [ТС]
FlasherX,
при такой выборке - "*_*_*_*.JPEG", отбираются изображения, в которых имеется минимум три "_", то есть изображения, в которых имеется большее их число, тоже попадут в выборку.
Как выбирать ТОЛЬКО те изображения, в которых ТОЛЬКО три "_".
Просто такое условие позволит избежать дальнейших ошибок при занесении информации в базу.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.02.2019, 06:25

Установить кодировку создаваемого txt файла в ANSI
Доброго времени суток! Есть код, который парсит определенную страницу в инете а после создает файл txt с результатом. Может кто знает как...

Вывести переменную в путь создаваемого txt файла
Всем доброго времени суток. Вопрос такой - как вывести переменную в путь создаваемого txt файла? file =...

Перевод содержимого текстового файла в верхний регистр
Собственно вопрос в шапке. Как перевести всё содержимое текстового файла в верхний регистр? Кодировка UTF-8 без BOM (хотя это особо и не...

Перевести в верхний регистр все слова четных строк файла
Дано задание:: открыть текстовый файл в необходимом режиме (на чтение, на чтение и запись, на добавление). (В файле должно быть не менее 30...

Странная кодировка файлов txt
Знатоки над моей проблемой поржут, а меня она задолбала. Помогите, плиз. В некоторых папках HDD PC (Windows XP) файлы txt в Блокноте...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru