Puis Juste Après la déclaration de toutes vos variables, ou alors à la fin du script(il faudra alors patienter), vous appelez la fonction.
Il y a 2 Paramètres:
$AutoWrite = True : Va Ecrire en Dur les Variables Globales Dans le Script
$AutoWrite = False : Va Simplement Déclarer les variables manquantes, puis retourne 1. Utile Pendant un Developpement, pour ne pas declarer sans cesse les variables et tout faire à la fin.
$AutoSave , appelé uniquement si $AutoWrite = True, va, si il est en False Copier Dans le ClipBoard les globales. Le script se termine alors. Si il est en True, on va updater automatiquement le script: Ecriture des Globales, Auto Mise En Commentaire de l'appel de la fonction.
Voilà, je l'ai faite uniquement pour certains qui peuvent en avoir besoin souvent. Dites moi ce que vous en pensez.
Si quelqu'un veut faire la gestion d'erreur, n'hesitez pas.
Code : Tout sélectionner
Func create_all_undeclared($AutoWrite = True,$AutoSave = False)
;////////////////////////////////////////////////////////////
;Fonction crée par Timmalos
;Permet De Déclarer Vos Variables Si elles ne le sont pas déjà
;Si Le Paramètre $AutoSave Vaut True, Alors Le script sera enregistré,
;Puis réouvert avec Scite.
;////////////////////////////////////////////////////////////
Local $glob = "Global "
Local $ii = 0
Local $texte = FileRead(@ScriptDir &"\"&@ScriptName)
Local $array = StringRegExp($texte,"(\$(\w+).*?)+",3)
For $i = 1 to Ubound($array) -1 Step 2
IF Not IsDeclared($array[$i]) then
If $ii >= 10 then
$glob &= "$"&$array[$i]& @CRLF& "Global "
$ii = 0
Else
$glob &= "$"&$array[$i]&","
$ii += 1
EndIf
Assign($array[$i],"",2)
EndIf
Next
If $AutoWrite = True Then
If $glob = "Global " then
$glob = ""; Si Aucune Variable n'est à déclarer
Else
$glob = StringLeft($glob, StringLen($glob) - 1)
EndIf
If Not $AutoSave then
ClipPut($glob)
Else
$texte = $glob & @CRLF & $texte
$texte = StringReplace($texte,"create_all_undeclared(true)",";create_all_undeclared(true)")
$texte = StringReplace($texte,"create_all_undeclared(1)",";create_all_undeclared(1)")
$texte = StringReplace($texte,"create_all_undeclared(true,true)",";create_all_undeclared(true,true)")
$texte = StringReplace($texte,"create_all_undeclared(true,1)",";create_all_undeclared(1,1)")
Local $file = FileOpen(@ScriptDir &"\"&@ScriptName,2)
FileWrite($file,$texte)
ShellExecute(@ScriptDir &"\"&@ScriptName,"edit")
EndIf
Exit
Else
return 1
EndIf
EndFunc