Что нового

Как в переменную через окно FileOpenDialog записать только имя последнего файла?

agikon

Знающий
Сообщения
789
Репутация
17
есть файл C:\Documents and Settings\Admin\Рабочий стол\all\readme.txt

как с помощью окна записать в переменную $var только имя последнего файла, то есть readme.txt

при такой конструкции в переменную попадает весь путь
Код:
$var  = FileOpenDialog("",  "", "" )

а мне надо чтобы в $var записалолся только имя последнего файла, то есть $var = 'readme.txt'

подскажите пожалуйста.
 

svigelf

Знающий
Сообщения
61
Репутация
17
Вот пожалуйста, при помощи обработки текста, читайте справку

Код:
$sFilePath = FileOpenDialog("",  "", "")

$var = StringMid($sFilePath, StringInStr($sFilePath, "\", 0, -1) + 1)
 

WSWR

AutoIT Гуру
Сообщения
941
Репутация
363
Или так(можно получить любую часть пути до файла):

Код:
$var  = FileOpenDialog("",  "", "(*.*)")

$sTitle=_PathSplitByRegExp($var)
If @error Then Exit

MsgBox(0, "Заголовок", $sTitle[5])

Func _PathSplitByRegExp($sPath)
    If $sPath = "" Or (StringInStr($sPath, "\") And StringInStr($sPath, "/")) Then Return SetError(1, 0, -1)
    
    Local $aRetArray[8], $pDelim = ""
    
    If StringRegExp($sPath, '^(?i)([A-Z]:|\\)(\\[^\\]+)+$') Then $pDelim = "\"
    If StringRegExp($sPath, '(?i)(^.*:/)(/[^/]+)+$') Then $pDelim = "//"
    
    If $pDelim = "" Then $pDelim = "/"
    If Not StringInStr($sPath, $pDelim) Then Return $sPath
    If $pDelim = "\" Then $pDelim &= "\"
    
    $aRetArray[0] = $sPath ;Full path
    $aRetArray[1] = StringRegExpReplace($sPath,  $pDelim & '.*', $pDelim) ;Drive letter
    $aRetArray[2] = StringRegExpReplace($sPath, $pDelim & '[^' & $pDelim & ']*$', '') ;Path without FileName and extension
    $aRetArray[3] = StringRegExpReplace($sPath, '\.[^.]*$', '') ;Full path without File Extension
    $aRetArray[4] = StringRegExpReplace($sPath, '(?i)([A-Z]:' & $pDelim & ')', '') ;Full path without drive letter
    $aRetArray[5] = StringRegExpReplace($sPath, '^.*' & $pDelim, '') ;FileName and extension
    $aRetArray[6] = StringRegExpReplace($sPath, '.*' & $pDelim & '|\.[^.]*$', '') ;Just Filename
    $aRetArray[7] = StringRegExpReplace($sPath, '^.*\.', '') ;Just Extension of a file
    
    Return $aRetArray
EndFunc


Отсюда:
http://autoit-script.ru/index.php?topic=316.0
 

gregaz

AutoIT Гуру
Сообщения
1,166
Репутация
299
Код:
$var=StringRegExpReplace(FileOpenDialog("",  "", ""), "^.*\\", "")
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
17
ребята спасибо, есть с чего выбрать.
но уже сделал по методу svigelf
спасибо!
жаль плюсик только один раз можно поставить :(
 
Верх