[R] Gestion des caractères Autoit

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
TiDi
Niveau 2
Niveau 2
Messages : 27
Enregistré le : sam. 06 juin 2015 23:27
Status : Hors ligne

[R] Gestion des caractères Autoit

#1

Message par TiDi »

Bonjour à tous,

J'ai créé un petit algorithme de chiffrement avec clé, il fonctionne bien, de ce côté là, il n'y a pas de problèmes. Quand j'ai créé une interface permettant de l'utiliser, je me suis rendu compte qu'un retour à la ligne comptait comme un caractère. Je n'ai donc pas compris, Autoit considère que "A" = "a" mais il prend en compte les caractères ASCII de type NULL, CR, LF, etc ... ?
Dans mon algorithme de chiffrement, je répertorie tous les caractères sauf ceux de mise en page (CRLF, ...). J'aimerais que lorsque l'utilisateur envoie le formulaire, les caractères de mise en page ne soient pas pris en compte, comment faire ?
Modifié en dernier par TiDi le mar. 11 août 2015 18:06, modifié 1 fois.
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: [..] Gestion des caractères Autoit

#2

Message par blacksoul305 »

Bonjour,

utiliser StringSplit est un bon moyen de récupérer seulement les caractères par simples tours de boucles en vérifiant que le caractères que tu souhaites récupérer n'est pas un retour à la ligne. Il suffit de l'appeler sans délimiteur.
Étudiant en 2ème année de Licence Informatique.
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2125
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Gestion des caractères Autoit

#3

Message par TommyDDR »

TiDi a écrit :Autoit considère que "A" = "a"
= Tests if two values are equal. e.g. If $var = 5 Then (true if $vVar equals 5). Case insensitive when used with strings.
== Tests if two strings are equal. Case sensitive. The left and right values are converted to strings if they are not strings already. This operator should only be used if string comparisons need to be case sensitive.

Si vous faites if("A" = "a"), ça sera vrai, si vous faites if("A" == "a") ça sera faux.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
TiDi
Niveau 2
Niveau 2
Messages : 27
Enregistré le : sam. 06 juin 2015 23:27
Status : Hors ligne

Re: [..] Gestion des caractères Autoit

#4

Message par TiDi »

@blacksoul65 : Oui d'accord, mais comment faire pour définir les caractères de mise en page ? Par exemple :

Code : Tout sélectionner

Local $aContenu = StringSplit($sContenu, "")
For $i = 0 To $aContenu[0]
     If $aContenu[$i] == "CR" Or $aContenu[$i] == "LF" Or $aContenu[$i] == "NUL" Then ; etc ...
          _ArrayDelete($aContenu, $i)
     EndIf
Next
Les caractères de mise en page se définisse avec le binaire, l'hexadecimal, mais comment faire pour qu'Autoit puisse les lire ?

@TommyDDR : Merci, je savais pas
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: [..] Gestion des caractères Autoit

#5

Message par blacksoul305 »

Code : Tout sélectionner

Asc(@CR) renvoie 13
Asc(@CRLF) renvoie 13
Asc(@LF) renvoie 10
Donc ta condition est la suivante

Code : Tout sélectionner

If ( (Asc($sTemp[$i]) == 13) Or (Asc($sTemp[$i]) == 10) )Then...
Étudiant en 2ème année de Licence Informatique.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Gestion des caractères Autoit

#6

Message par mikell »

Et pourquoi pas un regex ? c'est souple et efficace, et ça permet de prendre en compte les éventuels Vertical tab, Form Feed etc

Code : Tout sélectionner

#Include <Array.au3>

$sContenu = "ab" & @cr & "cd" & @crlf & "ef" & @lf & "gh"
Local $aContenu = StringRegExp($sContenu, '\V', 3) 
_ArrayDisplay($aContenu)
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
TiDi
Niveau 2
Niveau 2
Messages : 27
Enregistré le : sam. 06 juin 2015 23:27
Status : Hors ligne

Re: [..] Gestion des caractères Autoit

#7

Message par TiDi »

Merci de votre aide, les deux solutions marchent mais je vais opter pour StringRegExp, plus complète :)
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: [..] Gestion des caractères Autoit

#8

Message par blacksoul305 »

Évidemment, puissance et fiabilité des RegEx de mikell est inégalable ! Haha !
N'oublie pas de passer le sujet en résolu.
Étudiant en 2ème année de Licence Informatique.
Répondre