Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Pattern или Ось гонят... ну или я.... Добавлено: 27.09.04 00:12  

Автор вопроса:  Neco | Web-сайт: neco.pisem.net | ICQ: 247906854 
Ещё раз здрасте.
Что за фигня?
Проблема с поиском файлов.
По сути там FindFirst и остальное глючит, но для демонстрации возьмите File1, установите у него Pattern = "*1.txt" и Path="c:\".
Теперь запустите прогу и если у вас в корневом каталоге диска валяется только вами созданный "Текстовый документ.txt", то он отобразится в окне контрола!
Какого ФИГА?
Кто-нибудь объясните прикол, пожалуйста...

Ответить

  Ответы Всего ответов: 10  

Номер ответа: 1
Автор ответа:
 Александр



Разработчик Offline Client

ICQ: 204034 

Вопросов: 106
Ответов: 1919
 Профиль | | #1 Добавлено: 27.09.04 19:18
Ну попробуй через Dir...

Ответить

Номер ответа: 2
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #2 Добавлено: 27.09.04 22:05
то он отобразится в окне контрола


А где он должен отобразится?

Ответить

Номер ответа: 3
Автор ответа:
 Neco



ICQ: 247906854 

Вопросов: 133
Ответов: 882
 Web-сайт: neco.pisem.net
 Профиль | | #3
Добавлено: 27.09.04 23:12
Да он вообще не должен появляться там. Pattern же "*1.txt"! Где тут "Текстовый документ"? Набей в обычном поиске *1.txt и винда его не найдёт. И правильно сделает.

Ответить

Номер ответа: 4
Автор ответа:
 Александр



Разработчик Offline Client

ICQ: 204034 

Вопросов: 106
Ответов: 1919
 Профиль | | #4 Добавлено: 28.09.04 07:26
???

Ответить

Номер ответа: 5
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #5
Добавлено: 28.09.04 08:00
Neco, а о каком контроле или о каком примере речь-то идет? Может упомянуто вскользь, но я что-то не заметил. Отсюда непонимание...

Ответить

Номер ответа: 6
Автор ответа:
 Александр



Разработчик Offline Client

ICQ: 204034 

Вопросов: 106
Ответов: 1919
 Профиль | | #6 Добавлено: 28.09.04 13:53
Да похоже на FileListBox...

Ответить

Номер ответа: 7
Автор ответа:
 Neco



ICQ: 247906854 

Вопросов: 133
Ответов: 882
 Web-сайт: neco.pisem.net
 Профиль | | #7
Добавлено: 28.09.04 22:05
Да-да. Именно FileListBox.
Просто у него по умоланию имена File1, File2... поэтому не стал уточнять.
Кстати, если кто когда-нибудь писал рекурсивный обход папок через FSO (а это точно делал boevik - его код), то обратите внимание, что и FileSystemObject тоже ошибается, включая данные имена в список подходящих по маске. Даже больше. К примеру мой код (через API) находит 4560 файлов с заданной маской "*1.txt" в одной из моих папок. После этого делаю тоже самое через FSO она находит ~4700.
Видосовский пёсик нашёл ровно 500!!!
Я больше верю пёсику.
Вот приблизительный код Боевика (с моими дополнениями):
[CODE]Public Sub FindFile(ByVal Path As String, ByVal FileName As String, ByVal colPath As Collection)
    Dim objFileSystem As Object
    Dim objFolder As Object
    Dim objSubFolder As Object
    Dim Ret As String
    'Debug.Print Path
    Set objFileSystem = CreateObject("Scripting.FileSystemObject")
    Set objFolder = objFileSystem.GetFolder(Path)
    Set objSubFolder = objFolder.SubFolders

'погружение в рекурсию
    For Each objFolder In objSubFolder
         FindFile Path & objFolder.Name & "\", FileName, colPath
    Next

   'поиск файла
        'Ret = Dir(Path & FileName)
        Box.Path = Path
        Box.Pattern = FileName
        For i = 0 To Box.ListCount - 1
            colPath.Add Path + Box.List(i)
            colFileName.Add Box.List(i)
        Next i
        DoEvents
End Sub[/CODE]Вопрос всё ещё открыт!
ЧТО МНЕ ДЕЛАТЬ?
Кто-нибудь проверьте, пожалуйста, у себя. Хотя бы прикол с File1. Может у меня ось гонит? А?
P.S.
Вот блин!!!
Попробовал перепроверяться после нахождения с помощью Dir'а (по совету Александра) - та же фигня. Ощущение, что маска на самом деле задаётся совсем не знаком умножения, а знак умножения означает что-то другое...
P.S.S.
Уф. Ну хотя бы у диалоговых окон всё тип-топ...
Хотя, имхо, это та же псина.

Ответить

Номер ответа: 8
Автор ответа:
 shuffle



Администратор

ICQ: 201502381 

Вопросов: 15
Ответов: 737
 Профиль | | #8 Добавлено: 28.09.04 23:49
Это глюк VB, который заключается в том, что он показывает все файлы,
длинна имени которых больше 8 символов (без расширения, ессно), не
смотря на маску.

Ответить

Номер ответа: 9
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #9
Добавлено: 29.09.04 00:27
А лекарство от всех глюков VB но не от глюков системы: FindFist(Next)File ;)

правдо как оказалось они в каждой версии ОС называются по-разному... а это всего-лишь псевдонимы...

Ответить

Номер ответа: 10
Автор ответа:
 Neco



ICQ: 247906854 

Вопросов: 133
Ответов: 882
 Web-сайт: neco.pisem.net
 Профиль | | #10
Добавлено: 29.09.04 23:00
Я это первоначально делал на FindFirst 8)
Теперь уже написал тот же код на С++ - та же хрень.
Ничего не выходит. Неужели надо писать собственный уточнитель имени файла? Это сильно замедлит алгоритм... 8(

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам