Программирование
Веб программирование

Получение имени файла без расширения или только расширение

 
 

Код очень прост. Сам искал его в интернете, но ничего не нашел, кроме большого непонятного кода без объяснения и то для .NET. На сайте Microsoft тоже было, но с использованием Framework. Потом уже сам додумался.

 

Имя файла без расширения:

Private Sub Command1_Click()
CommonDialog1.ShowOpen ' окно для получения файла
s = CommonDialog1.FileTitle ' имя файла (даётся с расширением)
Text1.Text = Replace(s, Right(s, 4), "") ' получаем в Text1 только имя файла
End Sub

То есть в итоге получаем к примеру название file, а не file.exe

 

Только  расширение:

Private Sub Command1_Click()
CommonDialog1.ShowOpen  ' окно для получения файла 
s = CommonDialog1.FileTitle  ' имя файла (даётся с расширением) 
Text1.Text = Right(s, 3)   ' получаем в Text1 только расширение 
End Sub

То есть в итоге получаем к примеру расширение exe, а не file.exe

Надеюсь статья будет интересной для начинающих программистов, потому что сам на этом попался.


Есть вопросы? Спроси на нашем форуме!!
Юра [05.12.2011 20:19]

Есть небольшое но, а если расширение из 2-x символов тогда вырежет один символ из имени файла.

Алексей [05.12.2011 20:35]

Да, код не доскональный, но это единственный лёгкий способ.

алексей [05.12.2011 20:38]

Алексей,ты не обновляй страничку!

алексей [05.12.2011 20:38]

а то комент будет повторяться

Алексей [05.12.2011 21:11]

Да я уже понял.

WarX [13.02.2012 09:12]

Расширение может быть и 4ре символа, надо в код добавить проверку на наличие самой правой точки в течении 5ти символов и по ней рубить

Слава [31.05.2012 08:50]

А если файл например ".doc.doc" то имя файла вернет пустую строку. Вот так было бы легче Left(s, Len(s)-4)

алексей [31.05.2012 17:17]

слава, ТАКОГО ИМЕНИ НЕ МОЖЕТ БЫТЬ!!!!!

Саня [31.05.2012 18:42]

Может быть такое имя. Имя может быть даже таким:

.htaccess

(и такие имена используются в веб программировании )

Но в данном примере программа должна отработать правильно, т.к. в ней ищут точку с права на лево

Алексей(alex13sh) [31.05.2012 21:44]

Text1.Text = mid(s,1,instrRev(s,".",len(s))-1)
ВОТ ТАК БУДЕТ НАДЁЖНЕЕЕ!!!!!!!

FireDay [31.05.2012 22:37]

Алексей(alex13sh), тогда уж так:
Me.Caption = Left(a, InStrRev(a, ".", Len(a)) - 1)
p.s. А есть функция как InStrRev, но сравнение начиная с левого конца?

66demon66610 [18.10.2014 18:22]

это даже программой трудно назвать...

66demon66610 [18.10.2014 18:22]

это даже программой трудно назвать...

Stertor370 [18.10.2014 18:59]

Конечно нельзя, очередной бред.

Text1.Text = mid(s,1,instrRev(s,".",len(s))-1)
ВОТ ТАК БУДЕТ НАДЁЖНЕЕЕ!!!!!!!

C:documents and settingsРабочий столдокументы.методички.самостоятельныеfilename.exe

ПРОБЛЕМЫ, ОФИЦЕР?! {TROLLFACE}

hetop [25.02.2016 00:55]

Объявляем функцию:
Private Function Spliting(sFullPath As String, point As String)
Dim str1() As String
str1 = Split(sFullPath, point)
Spliting = str1(UBound(str1))
End Function

Если хотим получить имя:
Label1.Caption = Spliting(Путь к файлу, "\")

Если хотим получить расширение:
Label1.Caption = Spliting(Путь к файлу, ".")



Оставлять комментарии можно только зарегистрированным




Предупреждение: Вся информация представлена исключительно в образовательных целях.
Ни авторы, ни администрация не несут ответственности в случае ее использования в противозаконных целях.