Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
 Аватар для Fellinggood
2 / 2 / 0
Регистрация: 06.06.2009
Сообщений: 325

Найти файл по имени в visual basic если он создан в формате utf-8

07.10.2016, 09:47. Показов 974. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Такая ситуация – создается отчет из программы sppa t-3000 в формате utf-8 как файл csv. В программе требуется организовать поиск файлов по названию. Но когда сравниваешь название файла со строкой текста, (например str = “Основные показатели*”, где * - это продолжение названия файла, то есть найти все файлы, которые начинаются с «основные показатели…») то он ее не находит, хотя другие файлы созданные на windows находит.

Не подскажете как организовать такой поиск? Наверное требуется данную строку str = “Основные показатели*” перекодировать в utf-8 и с этой строкой сравнить название файла.

Добавлено через 27 минут
более подробно нужно как то найти файл по имени если он в формате utf-8. Если имя файла "основные показатели_4454" в формате utf-8, то какая должна быть строка текста с которой нужно сравнить имя данного файла?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.10.2016, 09:47
Ответы с готовыми решениями:

Файлы. Если файл не создан, то rewrite, если создан - reset
Ребят подскажите, существует ли проверка на наличие типизированного файла? Просто мне нужно сделать так, что если файл не создан, то...

Как сделать надпись "файл не создан" если нужно его прочитать но файл ещё не создан?
Как сделать надпись "файл не создан" если нужно его прочитать но файл ещё не создан? Например в такой программе: uses crt; Type...

IIS + CGI + Visual Basic = стучимся об UTF?
Такая проблема: Сделал CGI на Visual Basicе - принимает некое слово из веб-формы и тут же выдает его обратно. Эдакий примерчик для...

3
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
07.10.2016, 10:04
Цитата Сообщение от Fellinggood Посмотреть сообщение
какая должна быть строка текста с которой нужно сравнить имя данного файла?
А у Вас сейчас какая?
0
 Аватар для Fellinggood
2 / 2 / 0
Регистрация: 06.06.2009
Сообщений: 325
07.10.2016, 10:24  [ТС]
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
Private Sub Command1_Click()
    Dim MyExcel As Object
    Set MyExcel = CreateObject("Excel.Application")
   ' MyExcel.Visible = True
  '  MyExcel.Workbooks.Add
 
    
    
 Dim fs, f, s, stroka
 Dim MyTime
 Dim MyDate
 Dim time_Prover, time_created, timeDate_created
 Dim arrPutFile(10) As String
 Dim arrNameFile(10) As String
 Dim arrTimeCreation(10) As String
 Dim arrOnlyHour(10) As String
 Dim put_files
 Dim Put_files_withNamefile
 Dim put_file_s_chert
 Dim str_probel
 Dim kolvo_files
 Dim name_list(10) As String
 Dim time_creatZamenadvoet(10) As String
 Dim index_TEK_FILE
 Dim connect As String 'connection при извлечении из csv
 Const xlDelimited = 1  'xlDelimited это константа и ее надо приравнивать 1 или 2 в зависимости от того нужно извлекать файл с разделителями
 'или нет
 Const xlTextQualifierDoubleQuote = 1 'xlTextQualifierDoubleQuote это константа и ее надо приравнивать 1 или 2 в зависимости от
 'того нужно поставить в качестве разделителя двойные или одинарные кавычки
 
 Dim zapros
 
 str_probel = ""
 put_files = "C:\Documents and Settings\Admin\Рабочий стол\основные показатели"
 put_file_s_chert = put_files & ""
 
    Set fs = MyExcel.FileSearch
        With fs
            .LookIn = put_files 'Путь файлов
            .SearchSubFolders = True
            .FileName = "Основные показатели*"
            
            'MyTime = Time
            'MsgBox MyTime
            MyDate = Date
           ' MsgBox MyDate
            
            time_Prover = "11"
            
            If .Execute() > 0 Then
                kolvo_files = .FoundFiles.Count 'Количество найденных файлов и соответственно количество данных в массиве
                MsgBox "There were " & kolvo_files & _
                " file(s) found."
                
            'Цикл в котором ищутся файлы и сохраняется
            'время, путь файла, имя файла и час создания
                For i = 1 To kolvo_files  'Цикл от 1 до кол-ва найденных файлов
                    arrPutFile(i) = MyExcel.FileSearch.FoundFiles(i)
                    Put_files_withNamefile = arrPutFile(i)
                    'Имя самого файла arrNameFile(i)
                    arrNameFile(i) = Replace(Put_files_withNamefile, put_file_s_chert, str_probel)
                 '   MsgBox arrNameFile(I)
                '    MsgBox arrPutFile(I)
                    Set fs = CreateObject("Scripting.FileSystemObject")
                    Set f = fs.GetFile(arrPutFile(i)) 'Получить доступ к файлу по пути файла arrPutFile(i)
                    timeDate_created = f.DateCreated 'Дата и время создания файла
                    arrTimeCreation(i) = Right(timeDate_created, 8) 'Время (с часами и минутами) создания файла
                    time_creatZamenadvoet(i) = Replace(arrTimeCreation(i), ":", "_") 'Замена : во времени на знак подчеркивания
                  '  MsgBox (time_creatZamenadvoet(i))
                 '   MsgBox (arrTimeCreation(i))
                  '  s = "Created: " & timeDate_created 'f.DateCreated
                   ' MsgBox s
                   
                    arrOnlyHour(i) = Mid(timeDate_created, 12, 1) 'Время (час) создания файла
                   ' MsgBox arrOnlyHour(i)
                    
                    'Проверка что час создания равен заданному
                   ' If time_created = time_Prover Then
                  '      MsgBox ("Время создания 11 часов")
                  '  End If
                Next i
            Else
                MsgBox "There were no files found."
            End If
            End With
            
            MyExcel.Workbooks.Add 'создание новой рабочей книги
            MyExcel.Visible = True
           
            For i = 1 To kolvo_files
                If arrOnlyHour(i) = "0" Then
                    MyExcel.ActiveWorkbook.Sheets("Лист1").Select
                    name_list(1) = "Основные показатели " & time_creatZamenadvoet(i)
                    MyExcel.ActiveWorkbook.Sheets("Лист1").Name = name_list(1)
                    connect = "TEXT;" & arrPutFile(i)
                    '"TEXT;C:\Documents and Settings\Admin\Рабочий стол\Образец CSV.csv"
 
            Set resul_zapros = MyExcel.ActiveSheet.QueryTables.Add(Connection:= _
            connect, _
            Destination:=MyExcel.ActiveSheet.Range("A1"))
            
            With resul_zapros
            .Name = name_list(1)
            .FieldNames = True
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = True
            .RefreshPeriod = 0
            .TextFilePromptOnRefresh = False
            .TextFilePlatform = 1252
            .TextFileStartRow = 1
            .TextFileParseType = xlDelimited
            .TextFileTextQualifier = xlTextQualifierDoubleQuote
            .TextFileConsecutiveDelimiter = True
            .TextFileTabDelimiter = True
            .TextFileSemicolonDelimiter = False
            .TextFileCommaDelimiter = False
            .TextFileSpaceDelimiter = False
            .TextFileOtherDelimiter = "^"
            .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
            .TextFileTrailingMinusNumbers = True
            .Refresh BackgroundQuery:=False
            
            End With
                    Exit For
                End If
            Next i
    MyExcel.Quit
End Sub

Visual Basic
1
2
3
4
With fs
            .LookIn = put_files 'Путь файлов
            .SearchSubFolders = True
            .FileName = "Основные показатели*"

В этом куске текста проги .FileName = "Основные показатели*"
И когда он ищет имя файла с кодировкой utf-8 то ничего не находит, но если создать обычный файл word или txt с таким же названием то программа находит данный файл
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
10.10.2016, 00:43
Имя файла в формате utf-8... это вообще как? Может Вы имеете в виду юникодное?

Скопируйте-Вставьте имя файла, которое у Вас не получается найти в голубое поле "детектора кириллицы" (см.ниже). Покажите побуквенную расшифровку.

Кстати, просто для информации, класса FileSearch больше нет в Office 2010, так что Ваш код там не будет работать вообще, если захочется портировать.
Вложения
Тип файла: xls Детектор кириллицы2.xls (88.5 Кб, 7 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.10.2016, 00:43
Помогаю со студенческими работами здесь

Как открыть файл в richtextbox в формате UTF-8
Сделал программу которая открывает текстовые файлы.Всё работает просто я не могу нигде найти как сделать чтобы моя программа открывала...

Как создать электронную книгу в формате fb2 на Visual Basic 6.0
Я не сильна в программировании, но прошу можете помочь.Моя задача заключается в том, что, нужно создать программу на Visual Basic 6.0...

Вывод массива в файл в unix формате и utf-8 кодировке
Собственно, как написать сию функцию? Чем пользоваться? Особенно интересует часть где unix формат.

Не пишет в файл, даже если он создан
Посмотрите что не так в коде. Файл output.txt не создаётся, но даже если он создан в него ничего не пишется. Ошибок никаких нет, программа...

Как найти файл с определенным именем, если последние символы имени могут меняться
Добрый день, помогите, пожалуйста, написать код для кнопки. Задача такая: Есть два файла Excel, необходимо перенести данные или...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru