Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

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

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

Не подскажете как организовать такой поиск? Наверное требуется данную строку str = “Основные показатели*” перекодировать в utf-8 и с этой строкой сравнить название файла.
340
07 октября 2016 года
Fellinggood
170 / / 27.04.2009
более подробно нужно как то найти файл по имени если он в формате utf-8. Если имя файла "основные показатели_4454" в формате utf-8, то какая должна быть строка текста с которой нужно сравнить имя данного файла?
340
07 октября 2016 года
Fellinggood
170 / / 27.04.2009
Код:
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 SettingsAdminРабочий столосновные показатели"
 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 SettingsAdminРабочий столОбразец 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
В этом куске кода сравниваю

 
Код:
With fs
            .LookIn = put_files 'Путь файлов
           .SearchSubFolders = True
            .FileName = "Основные показатели*"
В этой строке
 
Код:
.FileName = "Основные показатели*"
Строка содержит "Основные показатели*" - со звездочкой, то есть нужно найти файлы которые начинаются строкой "Основные показатели*",
а продолжение может быть любым
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог