Skip navigation.

digital-nation

Blog-note d'un informaticien procrastinate...

Posts tagged with "String"

Microsoft Office Excel & OpenOffice.org 2++ : détecter un caractère dans une chaine

, , , ...

Il est assez facile de trouver dans une cellule un caractère via la fonction CHERCHE.
Toutefois si le caractère n'est pas trouvé, il renvoie une erreur. Problème : CHERCHE est "case sensitive" (sensible à la casse).

J'ai donc préféré utiliser la fonction TROUVE. Similaire mais non sensible à la casse.
Cependant, même problème : cela renvoie une erreur si le caractère n'est pas trouvé.

Alors après un petit quart d'heure de recherche je pense avoir trouvé une formule sympathique qui génère un texte plutôt qu'une erreur.

Posons la situation :
  • Cellule B4 : le caractère recherché,
  • Cellule B5 : la chaine de caractère dans lequel doit s'effectuer la recherche

Dans la cellule B11, se trouve la formule.

J'utilise les fonctions suivantes : SI, ESTERR, TROUVE.
Dans la suite d'idée, j'imbrique ces différentes fonctions l'une dans l'autre, dans l'ordre donné ci-dessus. Pourquoi : je pose une condition que si une erreur est trouvé dans la recherche (via la fonction TROUVE), je renvoie un texte à défaut je calcule l'emplacement du caractère. Et c'est tout.
voila l'idée que je veux.

Voila donc la formule renvoyant le bon résultat :
=SI(B4="";"0";SI(SI(ESTERR(TROUVE(B4;B5))=VRAI;"Not Find";"Find")="Find";TROUVE(B4;B5);0))

Pour vous éviter de chercher... :wink:

AutoIt : récupérer les arguments

, , , ...

En regardant encore les scripts qui sont fournis nativement dans AutoIt, et notamment l'excellent AutoUpdateIt, j'ai découvert une petite fonction assez sympathique servant à récupérer les arguments passé en ligne de commande à un exécutable.

; Auteur : Rob Saunders
; Original script : AutoUpdateIt
Func _StringInArray($a_Array, $s_String)
Local $i_ArrayLen = UBound($a_Array) - 1

For $i = 0 To $i_ArrayLen
If $a_Array[$i] = $s_String Then
Return $i
EndIf
Next
SetError(1)
Return 0
EndFunc


Pourquoi réinventer la roue ?
Alors comment fonctionne-t-il ?

Très simplement :

  • Dans le script AutoIt :
    If _StringInArray($CmdLine, "/coucou") Then MsgBox(0, "", "Coucou trouvé !")
    

  • Lancement en ligne de commande (si le script s'appelle test.exe) :
    C:\chemin_complet>test.exe /coucou
    



Pratique mais rarement utilisé toutefois !
December 2009
M T W T F S S
November 2009January 2010
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31