[R] Compter les caractères, et incrémentation de 1

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Moxostoma
Niveau 1
Niveau 1
Messages : 3
Enregistré le : mar. 29 nov. 2016 22:27
Status : Hors ligne

[R] Compter les caractères, et incrémentation de 1

#1

Message par Moxostoma »

Bonjour, je suis entrain de codé une copie du bloc-notes de windows, enfin pas tout quand même :P
J'arrive à ouvrir des fichiers texte, mais comment faire pour prendre en compte, les retours à la ligne ? Tout est sur la même ligne...

Mon vrai problème se situe pour enregistrer les fichiers. Je ne veux pas simplement écraser le fichier par un autre, je veux calculer le nombre de caractères dans le champ texte, une fois que le fichier est ouvert, donc. Mais ça me retourne tout le temps 2 caractères, alors qu'il y en a plus que ça... Je voudrais faire par la suite, une variable au début du script == 0, est que si il y a une quelconque modification, la variable est incrémenté de 1, est pourra enregistrer. Par défaut, le menu "Enregistrer" est grisé. Il sera activé que si égal à 1.

Je ne sais si je suis bien claire.... :?
; [...]
; Include, GUICreate, les menus
;

 GUISetState(@SW_SHOW) ; On affiche la fenêtre

$ChampTexte = GUICtrlCreateInput("", 3, 1, $largeur_texte, $hauteur_texte)

Local $MonBlocNotes
   While 1
      Switch GUIGetMsg()

;~ //////////////////////////////////////////////
;        TRAITEMENT DU MENU 1
;~ //////////////////////////////////////////////

; 1er cas, c'est pour "Nouveau"

         case $NouveauFichier
         MsgBox($MB_SYSTEMMODAL, "Titre de test", "Nouveau")





; Fin du cas "Nouveau"

; 2eme cas, c'est pour "Ouvrir..."

         case $OuvrirFichier

$File = FileOpenDialog("",@ScriptDir,"Text files (*.txt)",1)

            $open = FileOpen($File,0)
            $read = FileRead($open)
            FileClose($open)
            GUICtrlSetData($ChampTexte,$read)



; Fin du cas "Ouvrir"

; 3eme cas, c'est pour "Enregistrer"

         case $Enregistrer
;~          MsgBox($MB_SYSTEMMODAL, "Titre de test", "Enregistrer")

Local $Compte_Caractere = StringLen($ChampTexte)


If ($Compte_Caractere = 0) Then
    MsgBox(0,"", "Il y a 0 caractère")
Else
    MsgBox(0,"", "Il y a " & $Compte_Caractere & " caractères")
EndIf

; Fin du cas "Enregistrer"

;~ //////////////////////////////////////////////
;        FIN DE SCRIPT
;~ //////////////////////////////////////////////

EndSwitch

   WEnd


    GUIDelete()
Afin que ça soit le plus lisible possible, j'ai enlevé des fonctionnalités. De toute façon, j'en suis encore loin de là...
Avez-vous des idées, de comment je pourrais faire ?

Merci à vous. :D
Avatar du membre
parazitenew
Niveau 7
Niveau 7
Messages : 310
Enregistré le : sam. 10 déc. 2011 15:08
Localisation : Algerie
Status : Hors ligne

Re: [R] Compter les caractères, et incrémentation de 1  

#2

Message par parazitenew »

Bonsoir,

1er problème: tu n'utilises pas le bon control pour afficher le texte, l'input est linéaire, tu dois utiliser un edit(zone de texte) avec GuiCtrlCreateEdit()
2eme problème: tu ne comptes pas la bonne variable, StringLen($variable_chaine_caractère) , or t'as inséré la variable du control de l'input.
3eme problème: une idée à essayer, c'est de créer une fonction qui compte le nombre de caractère présents sur l'Edit et le comparer avec le nombre calculé à l'ouverture, et d'appeler cette fonction toute les seconde par exemple avec AdlibRegister().
Moxostoma
Niveau 1
Niveau 1
Messages : 3
Enregistré le : mar. 29 nov. 2016 22:27
Status : Hors ligne

Re: [R] Compter les caractères, et incrémentation de 1

#3

Message par Moxostoma »

Merci, beaucoup.

Ancien message :
► Afficher le texte
Edit :

Je viens de trouvé comment faire les actions, sur les boutons par défaut, mais je ne c'est toujours pas comment les renommer.
Pour ce que ça intéresse, vu que j'ai pas mal cherché, autant le partager. :D
$return_value = MsgBox(4,"Shutting Down", "This computer will do something in a 10 seconds. Press NO to cancel",10)
Switch $return_value
    case 1 ;OK ---> Flags: 0, 1
        MsgBox(0, "Return Value", "OK")
    case 2 ;cancel ---> Flags: 1, 3, 5, 6
        MsgBox(0, "Return Value", "Cancel")
    case 3 ;abort ---> Flags: 2
        MsgBox(0, "Return Value", "Abort")
    case 4 ;retry ---> Flags: 2, 5
        MsgBox(0, "Return Value", "Retry")
    case 5 ;Ignore ---> Flags: 2
        MsgBox(0, "Return Value", "Ignore")
    case 6 ;Yes ---> Flags: 3, 4
        MsgBox(0, "Return Value", "Yes")
    case 7 ;No ---> Flags: 3, 4
        MsgBox(0, "Return Value", "No")
    case 10 ;Try Again ---> Flags: 6
        MsgBox(0, "Return Value", "Try again")
    case 11 ;Continue ---> Flags: 6
        MsgBox(0, "Return Value", "Continue")
EndSwitch
Il faut choisir le numéro en fonction du choix des boutons dans le MsgBox.
Par exemple pour Oui, il faut prendre le cas n°6, pour Non, c'est n°7... etc.

Si une personne sait comment régler mon problème, je lui en serais très reconnaissant. :P
Répondre