nur eine sache... das mit dem global wofür steht das da???
Hilfe zu Hotkey in .txt dateien schreiben (seite 3)
-
- [ gelöst ]
-
BadBunny -
31. Mai 2010 um 14:20 -
Geschlossen -
Erledigt
-
-
Zitat
nur eine sache... das mit dem global wofür steht das da???
Das sorgt dafür, dass eine Variable Global, also auch innerhalb von Funktionen gilt ;). (Das Gegenteil zu Local). -
Zitat
Global = Erzwingt globale Gültigkeit der Variable
Einfach mal draufklicken und in der Hilfe lesen.
edit: Häuptling Der-immer-zu-spät-kommt hat gesprochen
-
könntest du das pls ein wenig ... leichter formulieren name22??^^
-
Zitat
könntest du das pls ein wenig ... leichter formulieren name22??^^
[autoit]
Ich versuchs...
Das hier funktioniert nicht:Local $Var = 1
[/autoit][autoit][/autoit][autoit]_Test()
[/autoit][autoit][/autoit][autoit]Func _Test()
[/autoit]
MsgBox(0,"",$Var)
EndFunc
[autoit]
Während das hier funktioniert:Global $Var = 1
[/autoit][autoit][/autoit][autoit]_Test()
[/autoit][autoit][/autoit][autoit]Func _Test()
[/autoit]
MsgBox(0,"",$Var)
EndFunc -
Wenn du eine Variable innerhalb einer Function als Local declarierst, kannst du außerhalb der Funktion nicht drauf zugreifen, so wird z.B. dieses Script mit einer Fehlermeldung abbrechen:
Spoiler anzeigen
[autoit]test()
[/autoit] [autoit][/autoit] [autoit]MsgBox(0,"",$var)
[/autoit]
Func test()
Local $var = "test"
EndFuncMachst du es aber z.B. so, klappt alles wunderbar:
Spoiler anzeigen
[autoit]Global $var
[/autoit] [autoit][/autoit] [autoit]test()
[/autoit] [autoit][/autoit] [autoit]MsgBox(0,"",$var)
[/autoit]
Func test()
$var = "test"
EndFuncIch hoffe, ich konnte dir helfen
Edit: Lol, ich hab fast das Selbe wie Name gemacht
-
asoooo
also kann man wenn man nen global nimmt imemr drauf zugreifen bei local nichtmehr und kann man das auch einfach weg lassen?bei dem script hier z.b.:
[autoit]#include <file.au3>
[/autoit][autoit][/autoit][autoit]
HotKeySet ("e", "beenden")
DirCreate(@DesktopDir & "\Ordner")
Global $quellepfad=@ScriptDir & "\testfile.txt"
Global $zielpfad= @ScriptDir & "\ordner\test" ; das erste versuch steht für das verzeichnis das letzte für den namen (+ $test)
_FileCreate($quellepfad); erzeuge eine datei unter $quellenpfadfor $test = 1 To 3
[/autoit][autoit][/autoit][autoit]
FileCopy($quellepfad, $zielpfad & $test & ".txt")
NextFunc beenden ()
[/autoit]
Exit
EndFunc -
Klar, Global und Local braucht man meißtens nur für umfangreiche Programme
Ich machs trotzdem immer, da man so viele Fehler vermeidet -
okay danke wenn ich noch fragen hab (wovon ich ausgehe) schreib ich die ins den tread hier
solange steht er gelöst
-
So eine neue Frage hat sich ergeben^^ Jemand hatt mir erklärt wie man file dateien erstellt und ich wollt jetzt wissen wie man macht das in die filedatei was staht oder sich was eintragen lässt ohne dass mans öffnet und eingibt
danke im vorraus -
FileOpen()
FileWrite() bzw. FileWriteLine()
FileClose() -
Alsoe wäre das wenn man die file schon erstellt hat dashier ($zielpfad wurde auch angegeben steht weiter vorne im treat ich schreib es unter die for schleife)
[autoit]FileOpen (;was kommt heir hin, wenn möglich mit $zielpfad
[/autoit][autoit][/autoit][autoit][/autoit]
FileWrite (;was kommt hier hin)
FileClose (;was kommt hierhin)muss man alles drei schreiben oder sins das jeweils bsp. wie mans machen kann???
-
BadBunny: schau dich doch mal in der hilfe um da ist zu jedem befehl ein beispiel
-
ich weiss aber ich kapier die hilfe nicht
-
[autoit]
FileOpen("Pfad", "Modus zum Öffnen")
[/autoit]
FileWrite("Pfad", "Text")
FileClose("Handle, das von FileOpen zurückgegebn wurde/Pfad") -
hilft dir das beispiel?
Spoiler anzeigen
[autoit]$file = FileOpen("test.txt", 1); datei öffnen und merken (in der variable $file)
[/autoit]
FileWrite($file, "Mein Text"); schreibe Mein Text in die datei
FileClose($file); schließe die datei -
Naja, die einzelnen erfüllen ihren eigenen Zweck.
Spoiler anzeigen
[autoit]FileOpen ($zielpfad); öffnet $zielpfad
[/autoit]
FileWrite ($zielpfad, "Text"); schreibt "Text" in $zielpfad (du kannst auch nach "Text" "& @CRLF" schreiben, um in die nächste Zeile zu springen)
FileClose ($zielpfad); schließt $zielpfad -
also so sieht der script aus der speichert das geschriebene auf ner neuen test.txt datei nicht auf der die schon ind en ordner "ordner"gelegt wurde (da sind zwar 2 drin aber bei einem sollte es doch dann auch gehen)
[autoit]#include <file.au3>
[/autoit][autoit][/autoit][autoit]
HotKeySet ("e", "beenden")
DirCreate(@DesktopDir & "\Ordner")
Global $quellepfad=@ScriptDir & "\testfile.txt"
Global $zielpfad= @ScriptDir & "\ordner\test." ; das erste versuch steht für das verzeichnis das letzte für den namen (+ $test)
_FileCreate($quellepfad); erzeuge eine datei unter $quellenpfadfor $test = 1 To 2
[/autoit][autoit][/autoit][autoit]
FileCopy($quellepfad, $zielpfad & $test & ".txt" )
Next$file = FileOpen("test1.txt", 1); datei öffnen und merken (in der variable $file)
[/autoit][autoit][/autoit][autoit]
FileWrite($file, "Mein Text"); schreibe Mein Text in die datei
FileClose($file); schließe die dateiFunc beenden ()
[/autoit]
Exit
EndFunc -
könntest du das ganze script nochmal mit worten beschreiben.
man sieht zwar schön was du machst mit deinem script aber was du willst ist mir nicht ganz klar.so vllt?
-kopiere eine datei 2mal
-schreibe irgendwas in die 2 kopien -
jop das meinte ich der script hat eig keine aufgabe sondern ich benutz den um so sachen zu lernen aber der script soll erstmal eine datei 2 mal in den ordner kopieren und dann was reinschreiben man könnt auch nur bei dieser testfile was reinschreiben das wird bei den anderen ja dann mitkopiert.
-