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 :

Utlisation de la fonction Word pour un numero de caractere précis


Sujet :

AppleScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    573
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 573
    Par défaut Utlisation de la fonction Word pour un numero de caractere précis
    Bonjour,

    J'ai un fichier disons de 100 caractères, je voudrais juste récupérer le mot qui contient le caractère n°40.

    Pour l'instant je recherche le caractère "espace" avant et après mais c'est un peu lourd.

    Une autre idée ?

    Idem si on peut avoir le mot d'avant et le mot d'après ?

    Merci pour votre aide

    Thais

  2. #2
    Membre émérite

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Septembre 2010
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 606
    Par défaut
    Bonsoir Thiais781,

    Le plus simple est de procéder en 2 temps :
    1) lecture de tout le texte du document Word dans une variable, puis transformation en liste de mots,
    2) recherche du caractère dans chaque mot. Lorsqu'il est trouvé, enregistrement de l'index du mot.

    il est donc ensuite possible avec Index de trouver le mot qui contient le caractère cherché, avec (Index-1) de trouver le mot qui précède, avec (index+1) de trouver le mot qui suit,...et ainsi de suite.

    Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    -- cherche le caractère de code 40 dans le texte Word
     
    set Mon_Car to ASCII character 40 -- caractère de code ASCII = 40
     
    -- passe le texte du document ouvert dans la variable Mon_Texte
    tell application "Microsoft Word"
    	activate
    	tell active document
    		set Mon_texte to content of text object
    	end tell
    end tell
     
    -- transforme le texte en liste de mots
    set Mes_Mots to every word of Mon_texte
    -- recherche dans chaque mot
    repeat with I from 1 to count of Mes_Mots
    	if Mon_Car is in item I of Mes_Mots then
    		set Mon_Index to I
    		set I to count of Mes_Mots -- pour terminer rapidement la boucle !
    	end if
    end repeat
    display dialog "Index=" & Mon_Index & return & "Mot=" & item Mon_Index of Mes_Mots
    Tu vois que la recherche peut se faire sur un caractère, mais aussi sur une suite de caractères. Par exemple en changeant la ligne 3 avec :
    Cela va chercher le mot qui contient "Thi"

    Ensuite Mon_Index contient le N° du mot. Il est donc facile de prendre le mot précédent (Mon_Index-1) ou suivant (Mon_Index+1)

    Cordialement

Discussions similaires

  1. Réponses: 6
    Dernier message: 06/03/2007, 00h06
  2. Réponses: 2
    Dernier message: 19/01/2004, 12h19
  3. Des fonctions OGL pour les images de format usuel ?
    Par jamal24 dans le forum OpenGL
    Réponses: 3
    Dernier message: 31/05/2003, 21h59
  4. Fonction/méthode pour obtenir l'IP de la machine
    Par sirex007 dans le forum Web & réseau
    Réponses: 3
    Dernier message: 10/04/2003, 14h36
  5. Réponses: 3
    Dernier message: 02/09/2002, 18h49

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