Войти

Показать полную графическую версию : [решено] Получение имени скрипта без расширения исходя из значения @ScriptName


Smokie_id11243755
03-09-2010, 11:47
Хочу получить имя скрипта, но без расширения.
Как из значения макроса @ScriptName удалить символы с конца и до точки?

FlatX007
03-09-2010, 13:21
StringTrimRight(@ScriptName, 4)

madmasles
03-09-2010, 13:22
Smokie_id11243755,
Попробуйте так:; 1-й вариант
$sNameScript = StringLeft(@ScriptName, StringInStr(@ScriptName, '.') - 1)
MsgBox(0, '1', $sNameScript)
; 2-й вариант
$sNameScript = StringTrimRight(@ScriptName, StringInStr(@ScriptName, '.') - 1)
MsgBox(0, '2', $sNameScript)
; 3-й вариант
$sNameScript = StringMid(@ScriptName, 1, StringInStr(@ScriptName, '.') - 1)
MsgBox(0, '3', $sNameScript)
; 4-й вариант
$sNameScript = StringRegExpReplace(@ScriptName, '(.*?)\.\E.*', '\1')
MsgBox(0, '4', $sNameScript)

Smokie_id11243755
03-09-2010, 17:39
madmasles, а можно какнить с конца до первой найденной точки?

Iska
03-09-2010, 18:29
Можно. Function StringInStr (http://www.autoitscript.com/autoit3/docs/functions/StringInStr.htm):
StringInStr ( "string", "substring" [, casesense [, occurrence [, start [, count]]]] )

occurrence : [optional] Which occurrence of the substring to find in the string. Use a negative occurrence to search from the right side. The default value is 1 (finds first occurrence).

FlatX007
03-09-2010, 18:47
madmasles, а можно какнить с конца до первой найденной точки? »

Оно вам это надо ?

madmasles
03-09-2010, 20:54
а можно какнить с конца до первой найденной точки »
; 5-й вариант
$sNameScript = StringTrimRight(@ScriptName, StringInStr(@ScriptName, '.', 0, -1) + 1)
MsgBox(0, '3', $sNameScript)

Creat0R
03-09-2010, 21:53
Smokie_id11243755,
Предупреждение за нарушение правил форума, пункт 2.7 (http://forum.oszone.net/rules.html#2.7):

В заголовке темы обязательно обозначайте название предмета, которого касается вопрос, а в теле сообщения максимально подробно опишите проблему (приведите аппаратную/программную конфигурацию, а также изложите ситуацию, в которой возникает проблема). Темы с несодержательными или слишком общими заголовками будут закрываться или переноситься в раздел "Зона тестирования" в зависимости от политики конкретного форума. Подробнее о принципах создания тем читайте в этом документе (http://forum.oszone.net/faq.php?faq=vb_read_and_post#faq_thread) и Правилах форумов.

Переименуйте пожалуйста тему.

Получение из полного пути:

$sFileName = StringRegExpReplace (http://www.autoitscript.com/autoit3/docs/functions/StringRegExpReplace.htm)(@ScriptFullPath (http://www.autoitscript.com/autoit3/docs/macros.htm#@scriptfullpath), '^.*\\|\.[^\.]*$', '')
MsgBox (http://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm)(64, '', $sFileName)

P.S
Посмотрие ещё на эту тему: Деление пути к файлу на части (http://autoit-script.ru/index.php/topic,316.0.html)

Smokie_id11243755
04-09-2010, 17:13
Переименуйте пожалуйста тему »

А как это сделать?

Creat0R
04-09-2010, 18:05
как это сделать? »
При редактирований первого сообщения есть такая возможность.




© OSzone.net 2001-2012