Недавно при написании программы обработки данных столкнулся со следующей задачей: необходимые данные для сортировки содержались только в имени файла. Соответственно, нужно было получить имя файла и дальше уже работать с ним.
Как оказалось, реализуется все достаточно просто. Выкладываю решение, надееюсь кому-нибудь оно поможет. Итак, в моем случае создавалось диалоговое окно, в котором пользователь должен был выбрать нужный файл. При помощи свойства .SelectedItems(1) я загружал полный путь к нужному файлу в переменную (для примера, назовем ее path_sample).
Полный путь имеет примерно следующий вид:
"D:\Sample\test\samle.xls"
Выделить из полного пути только имя файла поможет следующий код:
s = InStrRev(path_sample, "\")
file_name = Right(path_sample, Len(path_sample) - s)
Как именно он работает? Все очень просто. Команда InStrRev ищет первое вхождение указанного символа, начиная с конца строки, и выдает нам номер позиции этого символа.
А с помощью команды Right в переменную file_name заносится все, что в path_sample находится справа от символа "\". То есть в результате получаем "sample.xls".
Но и этого может оказаться недостаточно. Например, мне потребовалось получить имя файла без расширения.
Это реализуется следующим образом:
s = InStrRev(file_name, ".")
file_name = Left(file_name, s - 1)
Здесь при помощи команды Left в переменную записывается имя файла до символа ".", номер позиции которого мы получили уже знакомой командой InStrRev.
|