forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Полезные функции (http://forum.boolean.name/forumdisplay.php?f=17)
-   -   Расширение файла (http://forum.boolean.name/showthread.php?t=33)

impersonalis 04.09.2005 22:49

Код:

Function GetFileExtension$(FileName$,Divider$=".")
 lf1=1
 lf2=1
 While True
  lf2=Instr(FileName$,Divider$,lf1)
  If lf2=0 Exit
  lf1=lf2+1
 Wend
 Extension$=Right$(FileName$,Len(FileName$)-lf1+1)
 If Len(Extension$)=Len(FileName$)
  Return False
 Else
  Return Extension$
 EndIf
End Function


Zeonic 25.02.2015 01:13

Ответ: Расширение файла
 
Спустя 10 лет. :pardon:

Код:

Function GetFileExtension$(file$, div$ = ".")
  Return Mid(file, Instr(file, div) + 1, Len(file) - Instr(file, div))
End Function

Print GetFileExtension("A:\Directory\file.exe")


Wegox 25.02.2015 02:15

Ответ: Расширение файла
 
Цитата:

Сообщение от Zeonic (Сообщение 293538)
Спустя 10 лет. :pardon:

Код:

Function GetFileExtension$(file$, div$ = ".")
  Return Mid(file, Instr(file, div) + 1, Len(file) - Instr(file, div))
End Function

Print GetFileExtension("A:\Directory\file.exe")


PHP код:

Function GetFileExtension$(file$, div$ = ".")
   Return 
Right$(file$,Len(file) - Instr(filediv)) 
End Function

Print 
GetFileExtension("A:\Directory\file.exe"

:-D

impersonalis 25.02.2015 02:16

Ответ: Расширение файла
 
К вышепредложенным кодам:
В теории точек может быть много. Обилие вызовов тяжёлых функций тоже не радует.

Иной код:
Код:

Function GetExt$(URL$)
        For i=Len(URL) To 1 Step -1
                If Mid(URL,i,1)="."
                        Return Right(URL,Len(URL)-i)
                EndIf
        Next
        Return URL
End Function

Попахивает СИ-строками (в смысле "строка-массив", а не смысле нультерминирования), но, возможно множественный Mid убивает производительность по сравнению с Instr при одной точке, но при нескольких - х3 (надо сравнивать с первым постом).

Wegox 25.02.2015 02:25

Ответ: Расширение файла
 
Цитата:

Сообщение от impersonalis (Сообщение 293541)
К вышепредложенным кодам:
В теории точек может быть много...

Кстати, да!:-D

Zeonic 25.02.2015 02:43

Ответ: Расширение файла
 
Цитата:

Сообщение от Wegox (Сообщение 293540)
PHP код:

Function GetFileExtension$(file$, div$ = ".")
   Return 
Right$(file$,Len(file) - Instr(filediv)) 
End Function

Print 
GetFileExtension("A:\Directory\file.exe"

:-D

Повелитель оптимизации :rolleyes:

ABTOMAT 25.02.2015 05:24

Ответ: Расширение файла
 
"A:\Directory\file.exe"

Ох, давно я не видел A: в путях.

Wegox 25.02.2015 05:43

Ответ: Расширение файла
 
Всё. Надоело:-D это максимум.

PHP код:

Global r,TextQ$,Instr_r 

Function GetFileExtension$(file$, div$ = ".")
While 
True 
r
=r+1

Instr_r
=Instr(file$,div$,r)

If 
Not Instr_r =0

TextQ
=Right$(file$,(Len(file$) - Instr_r))

EndIf

If 
Instr_r =Exit

Wend

Return TextQ

End 
Function

Print 
GetFileExtension("A:\Directory\file.exe"


ARA 25.02.2015 06:36

Ответ: Расширение файла
 
Цитата:

Сообщение от ABTOMAT (Сообщение 293544)
"A:\Directory\file.exe"

Ох, давно я не видел A: в путях.


А такое видывал? :-D

ABTOMAT 25.02.2015 19:37

Ответ: Расширение файла
 
Цитата:

Сообщение от ARENSHI (Сообщение 293546)

А такое видывал? :-D

Да. Можешь тоже посмотреть:

Zeonic 25.02.2015 21:26

Ответ: Расширение файла
 
Цитата:

Сообщение от ABTOMAT (Сообщение 293544)
"A:\Directory\file.exe"

Ох, давно я не видел A: в путях.

У меня 2 винды стоят на дисках C и D, а диск A для всякого хлама. Уже привык :)

St_AnGer 25.02.2015 22:17

Ответ: Расширение файла
 
Цитата:

Сообщение от Zeonic (Сообщение 293561)
У меня 2 винды стоят на дисках C и D, а диск A для всякого хлама. Уже привык :)

Щщщщщщщщщтоооооо? Диски A: и B: вроде как зарезервированы под флоппи, разве нет? Просвятите меня пожалуйста, если я ошибаюсь.

SBJoker 25.02.2015 22:26

Ответ: Расширение файла
 
Вложений: 1
Со времен висты - нет.
Вложение 21537

Randomize 25.02.2015 22:29

Ответ: Расширение файла
 
А теперь составьте слово из букв дисков.

Wegox 25.02.2015 23:11

Ответ: Расширение файла
 
Спустя 10 лет, топик стал популярным. impersonalis не парсер делал, а машину времени.:-)


Часовой пояс GMT +4, время: 21:25.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot