IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AppleScript Discussion :

Manipulation de texte


Sujet :

AppleScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2010
    Messages
    571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 571
    Points : 97
    Points
    97
    Par défaut Manipulation de texte
    Bonjour,

    Dans la serie manipulation de texte, peut on avoir le numero de paragraph ou du mot en cours ?

    Je m'explique, avec la fonction offset, on peut avoir, dans un texte, l'index de ce que l'on cherche.
    Mais est il possible à partir de cet index de récuperer le mot et le paragraph auquel il correspond dans le texte ?


    Thais

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 28
    Points : 27
    Points
    27
    Par défaut
    Salut Thaïs

    Pour une solution simple et directe, la réponse àmha est "non", AppleScript ne sait pas extraire le mot d'un texte dont un caractère précis ciblé par son index est connu (ou c'est moi qui ne sait pas le faire).

    En AS on peut donc extraire un caractère suivant l'index fourni :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    set sTexte to "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor."
    set nIndex to 25
    return character nIndex of sTexte -- e
    On peut extraire un mot suivant l'index fourni :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    set sTexte to "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor."
    set nIndex to 25
    return word nIndex of sTexte -- quis
    On peut également extraire un caractère dont on connait l'index à l'intérieur du mot qu'on extrait par son index du texte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    set sTexte to "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor."
    set nIndex to 25
    return character 2 of word nIndex of sTexte -- u
    Mais on ne peut pas extraire le mot correspondant à l'index d'un caractère, ni par ciblage ni avec un filtre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    set sTexte to "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor."
    set nIndex to 25
    return word of character nIndex of sTexte -- Ciblage = Error
    return word of sTexte whose character of sTexte is (character nIndex of sTexte) -- Filtre = Error
    En revanche, on peut tout-à-fait extraire par portions, en se basant sur l'index, puis par ciblage relatif pour les mots, un peu dans ce style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    set sTexte to "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor."
    set nIndex to 25
    return (last word of (text 1 thru nIndex of sTexte)) & (first word of (text (nIndex + 1) thru end of sTexte)) -- amet
    Première portion = "text 1 thru nIndex of sTexte", seconde portion = "text (nIndex + 1) thru end of sTexte", ensuite il suffit de concaténer le dernier mot de la première portion avec le premier mot de la seconde portion.

    C'est certes un peu plus compliqué qu'une extraction directe, mais en faisant une petite fonction personnalisée, ça peut très bien le faire...


  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2010
    Messages
    571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 571
    Points : 97
    Points
    97
    Par défaut
    Parfait Fredo.

    Après quelques tests, ca marche nickel.

    Merci pour ton aide

    Thais

Discussions similaires

  1. [C# 3.5] Récupérer et manipuler le texte d'une fenêtre
    Par Yukizz dans le forum Windows Forms
    Réponses: 0
    Dernier message: 12/05/2009, 10h27
  2. Manipuler une text box dans la feuille de calcul excel
    Par nianko dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/11/2008, 11h42
  3. Manipulation de texte, retour chariot et saut de ligne
    Par Jessica_ dans le forum VBA Word
    Réponses: 5
    Dernier message: 26/07/2007, 13h09
  4. Composant manipulant du texte au format RTF ?
    Par franckjava dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 11/06/2007, 22h27
  5. Manipuler le texte entre 2 commentaires
    Par ego dans le forum VBA Word
    Réponses: 1
    Dernier message: 06/06/2007, 13h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo