Взимане на име на папка в AutoIt?
Автор |
|
programingsЧет, 23.02.12, 19:58 |
Имам програма в която трябва потребителят да избере папка, след което да се вземе името на тази папка, и да се сложи в променлива! $folder = FileSelectFolder("Избери папка!", "") |
До тук добре, но как да взема името на вече избраната папка? В променливата $folder ще се съдържа пътя до папката, но е и името и! | | phrozencrewЧет, 23.02.12, 21:11 |
Сплитваш пътя до масив и взимаш последния елемент от масива: $var = FileSelectFolder("Choose a folder.", "")
$a = StringSplit($var,"\")
MsgBox(0,"",$a[$a[0]]) |
| | programingsПет, 24.02.12, 09:34 |
Благодаря! А как ще стане, ако искам да отделя само част от името, и да взема нея? В случая имам име : 123.{21EC2020-3AEA-1069-A2DD-08002B30309D} Искам да отделя само името преди точката, как ще стане? | | stoqnchoПет, 24.02.12, 10:55 | RE: Взимане на име на папка в AutoIt?
” Благодаря! А как ще стане, ако искам да отделя само част от името, и да взема нея? В случая имам име : 123.{21EC2020-3AEA-1069-A2DD-08002B30309D} Искам да отделя само името преди точката, как ще стане? „ Това съм го гепал от някъде, че така и не научих как се работи с тези мизерии в табличката. $string = "123.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
$rezultat = StringRegExpReplace($string, ".([^.]+)$", "")
MsgBox(0,"", $Rezultat) |
| | programingsПет, 24.02.12, 11:36 |
Благодаря, проработи! Цялата работа беше да напиша програмка за заключване на папки чрез използване на системни атрибути! Func _Hide()
$folder = FileSelectFolder("Избери папка, чието съдържание да бъде скрито!", "")
$name = StringSplit($folder,"\")
$operation = FileMove($folder, @ScriptDir & "\" & $name[$name[0]] & ".{21EC2020-3AEA-1069-A2DD-08002B30309D}\", 9)
DirRemove($folder)
If $operation = 1 Then
MsgBox(64, "Готово!", "Успешно заключихте папката!")
Else
EndIf
EndFunc
Func _Show()
$folder = FileSelectFolder("Избери папка, чието съдържание да бъде показано отново!", "")
$name = StringSplit($folder,"\")
$string = $name[$name[0]]
$name2 = StringRegExpReplace($string, ".([^.]+)$", "")
$operation = FileMove($folder, @ScriptDir & "\" & $name2 & "\", 9)
DirRemove($folder)
If $operation = 1 Then
MsgBox(64, "Готово!", "Успешно отключихте папката!")
Else
EndIf
EndFunc
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#NoTrayIcon
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Ключ 1.0", 338, 139, 192, 124)
$Group1 = GUICtrlCreateGroup("", 8, 8, 321, 121)
$Button1 = GUICtrlCreateButton("Заключи папка!", 16, 24, 305, 41)
$Button2 = GUICtrlCreateButton("Отключи папка!", 16, 72, 305, 41)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
_Hide()
Case $Button2
_Show()
EndSwitch
WEnd |
| | programingsПет, 24.02.12, 11:48 |
Хм, няма как да не я виждаш! Когато заключиш дадена папка, то тя придобива атрибути на Контролен панел, и е със същото име, с което е била и преди да я заключиш! При отключването просто трябва да я избереш отново, и тя пак ще стане нормална! Сега ще оправя това за затварянето, пропуснал съм! | | stoqnchoПет, 24.02.12, 11:59 |
Изпуснал си да може да се затваря програмата... Case $GUI_EVENT_CLOSE
Exit |
+Защо премества папката в папката при скрипта? +по-принцип функциите стоят най-накрая в кода, но това не е проблем... +не работи, ако папката има под папка/и +прозореца не се отваря в центъра $Form1 = GUICreate("Ключ 1.0", 338, 139, 192, 124) $Form1 = GUICreate("Ключ 1.0", 338, 139, -1, -1) редактиран от stoqncho на 24.02.12 12:00 | | stoqnchoПет, 24.02.12, 12:00 | RE: Взимане на име на папка в AutoIt?
” Хм, няма как да не я виждаш! Когато заключиш дадена папка, то тя придобива атрибути на Контролен панел, и е със същото име, с което е била и преди да я заключиш! При отключването просто трябва да я избереш отново, и тя пак ще стане нормална! Сега ще оправя това за затварянето, пропуснал съм! „ Натиснал съм "Изпращане" преди да допълня. Даже не съм разбрал. | | programingsПет, 24.02.12, 12:05 |
Да, има някой бъгове, ще ги оправя при втората версия! Благодаря, че каза! | | Коментар |