Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Roman1
Зарегистрирован: 21.06.2011 Сообщения: 7
|
Добавлено: Пт Авг 12, 2011 8:25 am Заголовок сообщения: поиск внешних файлов |
|
|
Я знаю само название файла, а путь к нему не знаю. Как программно найти все файлы с таким именем и расширением, чтобы можно было с ними работать? Например, для функции FileExists() нужен полный путь, а я его не знаю.
Подскажите, пожалуйста. |
|
Вернуться к началу |
|
|
Alex_47
Зарегистрирован: 01.07.2009 Сообщения: 66 Откуда: Н.Новгород
|
Добавлено: Пт Авг 12, 2011 10:09 am Заголовок сообщения: |
|
|
Не знаю как в MapInfo скорее всего нельзя. Я бы сделал так:
Open File path_name_dir +"Dir.bat" for Output As #1 Charset "WindowsCyrillic"’ создаем батник в калоге path_name_dir (если просто диск например D: то не работает )
Print #1, "dir " +"name_table /b /a-d > 1.txt"’ записываем в него параметры поиска. name_table имя искомого фалаю.
Close File #1
Run Program path_name_dir+"Dir.bat"’ запускаем батник и ждем. В итоге тхт-шный файл со списком всех файлов в этом каталоге и его подкаталогах с полным DOS маршрутом. |
|
Вернуться к началу |
|
|
Roman1
Зарегистрирован: 21.06.2011 Сообщения: 7
|
Добавлено: Пт Авг 12, 2011 11:32 am Заголовок сообщения: |
|
|
Спасибо!
Но почему-то у меня не сработала эта программа... |
|
Вернуться к началу |
|
|
Alex_47
Зарегистрирован: 01.07.2009 Сообщения: 66 Откуда: Н.Новгород
|
Добавлено: Пт Авг 12, 2011 2:54 pm Заголовок сообщения: |
|
|
А какие файлы? таб или другие? |
|
Вернуться к началу |
|
|
Alex_47
Зарегистрирован: 01.07.2009 Сообщения: 66 Откуда: Н.Новгород
|
Добавлено: Пт Авг 12, 2011 3:22 pm Заголовок сообщения: |
|
|
Если просто табы открыть то вот так:
Declare Sub main
Sub main
Dim name_table,path_name_dir,str As String
Dim i As Integer
path_name_dir = FileSaveAsDlg ( "" , "", "*.*", "Введите имя файла с расширением" )
name_table = PathToFileName$(path_name_dir )
path_name_dir = PathToDirectory$( path_name_dir )
Open File path_name_dir +"Dir.bat" for Output As #1 'Charset "WindowsCyrillic"
Print #1, "dir " +name_table+" /b /s /a-d > 1.txt"
Close File #1
Run Program path_name_dir+"Dir.bat"
Note "Ждем закрытия окна DOS..."
Open File path_name_dir +"1.txt" for Input As #1
Do While Not EOF(1)
i = i + 1
Line Input #1, str
If Not EOF(1) Then
name_table = PathToTableName$( str)
Open Table str As name_table +"_"+i
End If
Loop
Close File #1
Kill path_name_dir +"1.txt"
Kill path_name_dir +"dir.bat"
End Sub |
|
Вернуться к началу |
|
|
Андрей Могильный
Зарегистрирован: 21.03.2006 Сообщения: 864
|
Добавлено: Пт Авг 12, 2011 7:25 pm Заголовок сообщения: |
|
|
Организуйте обход каталогов в MapBasic с помощью WinAPI функций:
Declare Function FindFirstFile Lib "kernel32.dll" Alias "FindFirstFileA" (ByVal AFileName As String, FindFileData As WIN32FindData) As Integer
Declare Function FindNextFile Lib "kernel32.dll" Alias "FindNextFileA" (ByVal AHandle As Integer, FindFileData As WIN32FindData) As Integer
Declare Function FindClose Lib "kernel32.dll" Alias "FindClose" (ByVal AHandle As Integer) As Integer |
|
Вернуться к началу |
|
|
|