Salut homonyme !

Début de citation

pourquoi n'avoir pas renvoyé tout simplement la chaine retrouvé ?

Fin de citation

Cette fonction appelée RegTest est simplement une fonction de test de la 
présence d'un pattern dans une chaîne.

S'il avait fallut faire une fonction qui renvoi une occurence trouvée dans la 
chaîne à fouiller, la question qu'il faudrait alors se poser ce serait quelle 
occurence ? Etant donnée que plusieurs occurences peuvent être présente.

Si le JawsScript prenait en charge les tableau ou les collection dans toutes 
ses versions, j'aurais pû renvoyer soit un tableau soit une collection par une 
telle fonction, mais ce n'est pas le cas. Et beaucoup peuvent alors se 
retrouver lésés.

Autre possibilité cependant, ce serait dans un premier temps de faire:

* une fonction RegCount qui renvoi le nombre d'occurence d'un pattern dans une 
chaîne;

* et ensuite une fonction RegSearch dans laquelle on peut indiquer le numéro de 
l'occurence à renvoyer.

Ce qui pourrait donner un code comme ceci:

Début du code JawsScript

var
string s,
string sText,
int i,
int icount

; création de la chaîne dans laquelle faire la recherche
let sText = "chaine contenant plusieurs fois la lettre a"
; recherche du nombre d'occurence de a dans sText
let icount = RegCount(sText, "a", true, true, true)
; parcours de chaque occurence trouvée dans une boucle
let i = 1
While (i<=icount)
; on capte l'occurence courante
let s = RegSearch(sText, "a", i, true, true, true)
; puis, on fait ce qu'on veut de l'occurence renvoyée

let i = i+1 ; incrémentation du compteur d'occurence
EndWhile

Fin du code JawsScript

Je rappelle que toutes les fonctions utilisées n'existent pas encore, et sont 
là juste pour évoquer une possibilité.

Tout ceci n'est pas un modèle d'optimisation, mais peut très bien se concevoir 
et se faire.

Selon toi, ça te plairait ?

Tu m'as forcé à y réfléchir, et ça me tente bien de m'y lancer.

Yannick Daniel Youalé






  ----- Original Message ----- 
  From: yannick< 
  To: [email protected] 
  Sent: Monday, May 12, 2014 9:03 AM
  Subject: [progliste] Re: JawsScript- Fonction de recherche de texte utilisant 
les expressions régulières PCRE


  salut Yannick,
  et bien dis  donc, moi aussi j'ai aussi le nez dans les reg exp .
  désolé, je n'ai pas encore lu en profondeur ou testé, mais 
  a priori j'aurais une petite question :
  pourquoi n'avoir pas renvoyé tout simplement la chaine retrouvé ?
  peut être que ce n'est pas faisable, je ne sais pas ....
  tu aurais mis la variable text par référence ....

    ----- Original Message ----- 
    From: Yannick Youalé 
    To: [email protected] ; JawsScript 
    Sent: Monday, May 12, 2014 9:44 AM
    Subject: [progliste] JawsScript- Fonction de recherche de texte utilisant 
les expressions régulières PCRE


    Salut à tous !

    J'en avais donné les principes ici il y a quelques temps.

    Aujourd'hui, voici une fonction toute faite de recherche de la présence 
d'une chaîne dans une autre utilisant les expressions régulières.

    Début du code JawsScript

    Int Function RegTest (string sText, string sPattern, int blGlobal, int 
blIgnoreCase, int blMultiline)
    ; Recherche avec regexp
    ; renvoi true si le pattern est trouvé dans le texte donné.
    var 
    int i, 
    object reg

    ; création d'un objet regexp des expressions régulières
    let reg = CreateObjectEx ("vbscript.regexp", false)
    ; la recherche est-elle globale ?
    if blGlobal > 0 then
    let reg.Global = -1 ; équivaut à true
    else
    let reg.Global = 0 ; équivaut à false
    EndIf
    ; la recherche ignore-t-elle la cass ?
    if blIgnoreCase > 0 then
    let reg.IgnoreCase = -1
    else
    let reg.IgnoreCase = 0
    EndIf
    ; La recherche est-elle multiligne ?
    if blMultiline > 0 then
    let reg.Multiline = -1
    else
    let reg.Multiline = 0
    EndIf
    ; Assignation du pattern de l'expression régulière (PCRE)
    let reg.Pattern = sPattern
    ; recherche si présence et renvoi de résultat
    if  reg.Test (sText) == -1 then
    return true
    else
    return false
    EndIf
    EndFunction

    Fin du code JawsScript

    Chez moi, je l'ai créée pour l'intégrer dans un script de recherche rapide 
à l'intérieur d'un dossier contenant un grand nombre d'éléments.

    Amicalement !

    Yannick Daniel Youalé




------------------------------------------------------------------------------
          Ce courrier électronique ne contient aucun virus ou logiciel 
malveillant parce que la protection Antivirus avast! est active. 
       

Répondre à