Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 08.04.2008
Сообщений: 132

Извлечение названия файла

05.12.2010, 16:37. Показов 2636. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Druzya kak izvlech nazvaniya fayla iz etoy stroki
O:Sgi_KBR_EngCADAs_Built-Drawings_InABR-1BR-1DFLZZ-ST-DTL-2063-01.dwg
senks
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.12.2010, 16:37
Ответы с готовыми решениями:

Извлечение пути/названия активной папки
Доброго времени суток! В общем, нужна помощь специалистов! Нужно закрыть все активные папки, не окна, без перезапуска explorer. ...

Частичное извлечение файла в переменную и представление его как целикового файла
Есть такая проблемка - есть текстовик, и есть картинка. Картинка должна валятся в той же папке что и текстовик, но во время работы...

Создание txt файла с текстом, полученным из названия файла в папке
Здравствуйте! В папке содержится огромное число файлов (более 300 тыс в каждой папке), которые имеют следующие названия: ...

22
0 / 0 / 0
Регистрация: 04.03.2008
Сообщений: 250
05.12.2010, 17:07
Посредством InstrRev определить позицию последнего слэша, далее через Right отцепить имя файла от строки.
0
6 / 6 / 3
Регистрация: 17.10.2007
Сообщений: 1,119
05.12.2010, 18:11
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
' In Project/References, select Microsoft Scripting Runtime
' Copy this code:
 
Private Sub Command1_Click()
 
    Dim SFO As New Scripting.FileSystemObject
    Dim strFullFileName As String
    Dim strShortFileName As String
    
    strFullFileName = 'O:Sgi_KBR_EngCADAs_Built-Drawings_InABR-1BR-1DFLZZ-ST-DTL-2063-01.dwg'
    strShortFileName = SFO.GetFileName(strFullFileName)
    
    MsgBox strShortFileName
    
    Set SFO = Nothing
 
End Sub
0
2 / 2 / 1
Регистрация: 18.10.2007
Сообщений: 1,748
06.12.2010, 11:48
Использовать FSO только из-за того, что нужно из пути вычленить имя файла - глупо. Гораздо удобнее/проще/бестрее сделать так, как предложил igor_c.
0
6 / 6 / 3
Регистрация: 17.10.2007
Сообщений: 1,119
06.12.2010, 18:08
Алеша,

На мой скромный взгляд, совсем неглупо использовать FSO как раз для тех целей, для каких он создан, а именно для работы с файлами. Это позволяет избегать изобретения велосипеда, как например в данном случае. К тому же, совсем не факт, что человек, задавший вопрос, знал о такой возможности. Скорее не знал, раз спрашивал. Опять же, на мой скромный взгляд, гораздо удобнее и проще использовать FSO и не изобретать велосипед.
Но это на мой взгляд. Если другому нравится манипулировать строками, я с уважением к этому отнесусь и на месте того, кто спрашивал, поблагодарил бы за совет. И не в коем случае не называл бы работающее решение глупым. На мой скромный взгляд, это было бы не совсем корректно.

Влад
0
Сумрак
06.12.2010, 19:11
Доброго времени суток всем...
Вот велосипед...

Mid(строка, InStrRev(строка, ' ') + 1)

C FSO несколько больше получится ;-)
плюс к инстляшке 150 кб, это конечно немного, но из-за одной строчки кода их вешать...
ИМХО
Сумрак
06.12.2010, 19:18
Хотя и с Владом соглашусь, рабочее решение глупостью называть некорректно. Пусть парень и через FSO попробует может ему эта библа понравится и он будет ее всегда использовать :-)))
2 / 2 / 1
Регистрация: 18.10.2007
Сообщений: 1,748
06.12.2010, 20:00
хорошо, VladConn, соглашусь с Вами - возможно, называть рабочее решение глупым было некорректно.
Но когда можно:
а) написать все в одну строку, вместо семи
б) не тратить память и время на создание лишних объектов
в) не таскать ссобой еще одну библиотеку
то, на мой взгляд, очевидно, лучше использовать парсинг строки.
0
3 / 3 / 0
Регистрация: 12.07.2010
Сообщений: 128
06.12.2010, 20:05
Это очевидно!
0
Сумрак
06.12.2010, 20:45
Вон.. велосипед 3 выше... работает 100% :-)
Сумрак
06.12.2010, 20:46
К стати, я ее взял из своего кода, я лично так выделяю файлы.
6 / 6 / 3
Регистрация: 17.10.2007
Сообщений: 1,119
06.12.2010, 21:55
Алеша,

Это, видимо, увлекательно для нас с вами и для прочих уважаемых и добрых жителей нашего форума, но где же мнение (я надеюсь - благодарное) самого вопрошающего?

Да, кто сказал, что это единственное место в его программе, где идет работа с файлами ;0)?

Извлечение имени файла – это как никак операция, которую по-хорошему нужно бы завернуть в свой метод, а раз так, то число линий кода будет невелико в обоих подходах:
Visual Basic
1
2
3
4
5
6
7
8
9
Private Function GetFSOShortFileName(ByVal pstrFullFileName As String) As String
    Dim SFO As New Scripting.FileSystemObject
    GetFSOShortFileName = SFO.GetFileName(pstrFullFileName)
    Set SFO = Nothing
End Function
 
Private Function GetInStrShortFileName(ByVal pstrFullFileName As String) As String
   GetInStrShortFileName = Mid(pstrFullFileName, InStrRev(pstrFullFileName, ' ') + 1)
End Function
При этом строку ' ' по-хорошему было бы отдекларировать в строковой константе.

А теперь самое интересное: как быть в такой ситуации:

pstrFullFileName =”http://www.relib.com/forums/index.html”

Рекомендую сравнить работу FSO и таки представленного (прошу прощения) велосипеда.

Влад
0
Сумрак
06.12.2010, 22:41
Влад :-) Конечно FSO работает одинаково как с абсолютными так и относительными именами. Но Если мне не изменяет память, Парень спросил, про абсолютное имя. Но если с любым именем...
Visual Basic
1
2
3
4
Private Function GetInStrShortFileName(ByVal pstrFullFileName As String) As String
  pstrFullFileName = Replace(pstrFullFileName, '/', ' ')
  GetInStrShortFileName = Mid(pstrFullFileName, InStrRev(pstrFullFileName, ' ') + 1)
End Function
Тоже работает. и 150 кб не надо вешать к проге. :-)
6 / 6 / 3
Регистрация: 17.10.2007
Сообщений: 1,119
06.12.2010, 22:49
Сумрак,

Про 150 кб и я в курсе. Не в том дело. Все вместе мы показали разные подходы к решению распространенной маленькой проблемы. Ты продемонстрировал работу со строками, я - с ФСО. Ну и ладно. Дело в том, куда подевался тот парень, ради которого мы тут выпендриваемся?

Влад
0
3 / 3 / 0
Регистрация: 12.07.2010
Сообщений: 128
06.12.2010, 22:50
Смотрит и ждет, кто первым белый флаг выбросит
0
3 / 3 / 0
Регистрация: 12.07.2010
Сообщений: 128
06.12.2010, 22:51
Смотрит и ждет, кто первым белый флаг выбросит
0
Сумрак
06.12.2010, 22:54
Хотя признаюсь... если честно, я цепляю эту библу ко всем своим проектам в которых есть файловые операции...
У ее методов и функций есть некоторые приемущества по сравнению со стандартными... И вопрошающему тоже посоветую ее изучить. В ней есть такой удобный обьект как TextStream.
Но согласитесь Влад, если нет большой необходимости (т.е. один раз за весь код выделить файл) можно и не использовать FSO.
6 / 6 / 3
Регистрация: 17.10.2007
Сообщений: 1,119
06.12.2010, 23:00
Maga,

Если вы имеете ввиду меня, то я, хорошо зная нашего брата, белого флага не жду. Но при этом количество строк в обоих подходах стремительно друг к другу сходится.

Если вы имеете ввиду того парня, кому все это было надо, то уж больно долго он ждет.

Влад
0
6 / 6 / 3
Регистрация: 17.10.2007
Сообщений: 1,119
06.12.2010, 23:02
Сумрак,

Конечно соглашусь...

Влад
0
Сумрак
06.12.2010, 23:05
хех... я думаю он пошел искать литературу про FSO :-)
или его утомила наша дискуссия :-)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.12.2010, 23:05
Помогаю со студенческими работами здесь

Как сделать зависимость названия файла XL и ячейки внутри файла
Подскажите пожалуйста как сделать зависимость, что бы при изменение названия файла, менялась информация внутри этого же файла.

Перенос файлов в папки, имена которых содержат часть названия файла или расширение файла
Здравствуйте! Прочитал все похожие темы про ВАТ, но все в кучу сложить не смог, так как очень слабо понимаю команды. Вопрос такой: каждые...

Извлечение значений из файла
Пожалуйста помогите. Я недавно случайно стёр файл с командой по извлечению текста из файла. Я помню ,что это что-то с командой Set . Кто...

Извлечение вшитого файла
При извлечении вшитого файла он создается с размером 0 кб. и при попытке запустить пишет что не является приложением вин 32 ...

Извлечение из файла строк
Нужно извлечь из текстового файла строки, длина которых больше заданной ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru