download.bg
 Вход Списание  Новини  Програми  Статии  Форум  Чат   Абонамент  Топ95   Архив 

Взимане на име на папка в 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}

Искам да отделя само името преди точката, как ще стане?

редактиран от programings на 24.02.12 09:34
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:52
редактиран от programings на 24.02.12 11:52
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
Да, има някой бъгове, ще ги оправя при втората версия!

Благодаря, че каза!

Коментар

за нас | за разработчици | за реклама | станете автори | in english  © 1998-2024   Experta Ltd.