Форум

им. Зелёного Батискафа

АвторСообщение



Зарегистрирован: 05.03.07
Откуда: Россия, Тюмень
ссылка на сообщение  Отправлено: 24.01.10 00:36. Заголовок: Диалог открытия файлов в Basic6.0


 
Option Explicit
Dim arr_name_file() As String 'В этот массив будут писаться полные имена файлов


Sub open_file(ByRef arr_name_file)
Dim Len_str As Integer 'длина строки с именами
Dim num_file As Byte
Dim tmp As Variant
Dim add_arr(10000) As Integer
Dim i As Integer

num_file = 0

With CD1_OF
.FilterIndex = 1 'Применение фильтра
.Flags = &H200 + &H80000 + &H4 + cdlOFNFileMustExist 'Установка multiselect(&H200), приведение к красивому виду(&H20000), нет значка "только чтение"(&H4)
.InitDir = "C:\" 'Папка по умолчанию
.ShowOpen 'Показать диалоговое окно открытия файла
End With
'Бля! Я, конечно, понимаю, что многое из нижеприведённого ну полный бред, и наверняка это делается намного проще, но за неимением лучшего варианта пусть будет пока так.
Len_str = Len(CD1_OF.FileName)
If Len_str = 0 Then 'Условие, чтоб хоть что-то было выбрано
ReDim arr_name_file(0)
arr_name_file(0) = "Надо бы что-то выбрать..."
num_file = 0
Else
add_arr(num_file) = InStr(1, CD1_OF.FileName, Chr(0)) + 1 'Поиск первого Null
If add_arr(num_file) = 1 Then 'Коли такового не найдётся, то читаем путь и имя для одного файла
num_file = 1
ReDim arr_name_file(1)
arr_name_file(num_file) = CD1_OF.FileTitle
arr_name_file(0) = CurDir 'Путь к папке
Else
'А иначе дрочимся со многими...
Do
num_file = num_file + 1
add_arr(num_file) = InStr(add_arr(num_file - 1), CD1_OF.FileName, Chr(0)) + 1
Loop Until add_arr(num_file) = 1 'Вот... Посчитали количество Null+1, т.е. количество файлов. Заодно, мимоходом, записали их положение в строке

ReDim arr_name_file(num_file) 'Задание размерности массива с именами файлов
arr_name_file(0) = Mid(CD1_OF.FileName, 1, add_arr(0) - 2) 'Путь к папке

For i = 1 To num_file - 1
arr_name_file(i) = Mid(CD1_OF.FileName, add_arr(i - 1), add_arr(i) - add_arr(i - 1) - 1)
Next i
arr_name_file(i) = Mid(CD1_OF.FileName, add_arr(i - 1)) 'Ну а тут, собственно, все имена сводятся в масив, в индексе 0 путь к папке
End If
End If

'Каменты к итогу: _
1. Впринципе, мне не очень надо знать длину файла, но с другой стороны, я с её помощью нормально так цепляюсь к ппередаче в след. процедуру.

End Sub


Вопрос: Что это за белое вещество в птичьем дерьме?
Ответ: Это тоже птичье дерьмо.
Спасибо: 0 
Профиль Цитата Ответить
Новых ответов нет


Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  5 час. Хитов сегодня: 1
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет



Создай свой форум на сервисе Borda.ru
Текстовая версия