PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV (précédentes versions) → Recherche d'une chaine dans une chaine
Recherche d'une chaine dans une chaine
Débuté par Aymeric TREMOULET, 07 sep. 2018 10:59 - 1 réponse
Posté le 07 septembre 2018 - 10:59
Bonjour!

Pour un projet je dispose d'un document PDF, que j'importe puis océrise.
J'extrait quelques données grâce à des recherches de sous chaine dans la chaine mais voilà mon but ici:
J'ai besoin d'extraire (stocker dans une nouvelle chaine) de ma chaine principale une sous chaine qui correspond à ce modèle:
4 chiffres, un tiret, 7 chiffres

Et j'ai également besoin de récupérer une série de chiffres (12 au total) qui se trouvent après un mot en particulier (HAWB: en l'occurence) et pas ailleurs.

Je ne suis pas un expert dans la programmation WinDev, est-ce que quelqu'un voudrait bien et aurait la patience de m'expliquer 2 ou 3 notions, me donner un exemple ou un conseil?

En vous remerciant par avance,
Membre enregistré
299 messages
Popularité : +16 (16 votes)
Posté le 07 septembre 2018 - 19:07
Il y a plusieurs méthodes mais personnellement je ferais ceci :


LC_ChainePDF est une chaine = "ce que vous avez ocerisé"
LN_Position est un entier

vous cherchez le tiret
LN_Position = Position(LC_ChainePDF, "-")

vous vous assurez que le nombre de chiffres attendus est possible
si LN_Position >= 5 et LN_Position <= Taille(LC_ChainePDF) -7


vous vérifiez les 4 caractères de gauche
CaractOccurrenceType(Milieu(LC_ChainePDF, LN_Position-1, 4), ctNumérique) = 4

Pareil pour ceux de droite
CaractOccurrenceType(Milieu(LC_ChainePDF, LN_Position+1, 7), ctNumérique) = 7

Si tous vos deux tests sont positif vous avez trouvé l'information