Recherche des mots comportant un tiret (-) dans une phrase

reduxo Messages postés 4 Date d'inscription jeudi 10 octobre 2013 Statut Membre Dernière intervention 10 octobre 2013 - 10 oct. 2013 à 08:21
jordane45 Messages postés 38186 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 mai 2024 - 10 oct. 2013 à 15:51
Bonjour, je cherche une solution pour identifier et envoyer dans un fichier "résultats" les mots comportant un ou plusieurs tirets (tiret du 6), dans un fichier "données à trier". Je dispose d'un PC windows 7. Si quelqu'un a une solution simple, ce serait très sympa.... Merci d'avance

8 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
10 oct. 2013 à 08:35
Bonjour,
commence par le 1er point (identifier chacun de ces mots) ===>>> ouvre STP ton aide VBA sur le mot Split; lis puis sers-t-en
Reviens avec ton code d'essai après cette lecture si encore en difficulté.
Le deuxième point est une question récurrente sur ce forum (écriture dans un fichier texte) et fait l'objet d'un nombre impressionnant de discussions résolues et de codes déposés (utilise le moteur de recherche de ce forum). Ouvre également ton aide VBA sur le mot Open (rubrique Open, instruction). Elle est à lire.
0
jordane45 Messages postés 38186 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 mai 2024 344
Modifié par jordane45 le 10/10/2013 à 08:39
Bonjour.
De quel type de fichier s' agit il ?
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 10/10/2013 à 08:54
Bonjour, jordane45,
Très bonne question, en effet.
Et en plus, je ne réalise que maintenant qu'il ne veut qu'identifier....
Utilisation; à son gré, de Like ou de Instr (à lire dans l'aide VBA)
0
reduxo Messages postés 4 Date d'inscription jeudi 10 octobre 2013 Statut Membre Dernière intervention 10 octobre 2013
10 oct. 2013 à 09:44
Bonjour et merci de vos réponses.
Le fichier est un .txt, mais si ça peut marcher pour des formats Excel ou pdf, ce serait très bien. Je cherche à identifier (trouver) et exporter vers un autre fichier texte les résultats.
0
jordane45 Messages postés 38186 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 mai 2024 344
10 oct. 2013 à 10:19
Autres questions :
Vous souhaitez réaliser ceci à partir de quel logiciel (Excel, Word ? )
C'est bien en VBA que vous souhaitez réaliser ceci ?

Pour manipuler les fichiers text en VBA vous pouvez utiliser ceci :
http://warin.developpez.com/access/fichiers/#LII

Et comme le dit Ucfoutu, tu peux ensuite utiliser LIKE pour effectuer tes recherches :
http://silkyroad.developpez.com/VBA/ManipulerChainesCaracteres/#LI-R
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 10/10/2013 à 11:22
Tout cela demande quand-même une réflexion liminaire sur ce que l'on veut faire.
Car ton titre parle de l'analyse d'une phrase et de l'extraction de mots comportant des tirets.
Regardons maintenant celle-ci, de phrase :
Il s'en est fallu de peu pour qu'il tombe, c'est certain, parce-qu'il était en équilibre sur un meuble (canapé-lit) lui-même en équilibre, qu'Anne-Marie lui avait acheté chez Jean-Pierre Dupont-Durand"
On voit ici bien l'importance de l'identification des "mots". Ils ne sont pas toujours simplement des chaînes de caractères séparées par des espaces, d'une part, et, d'autre part (cas de "parce-qu'il") parce-qu'ils peuvent ne pas correspondre à ce que tu cherches à faire.
Conclusion : si tu veux une réponse adaptée à ton besoin, il vaudra mieux que tu précises très exactement ce besoin.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
reduxo Messages postés 4 Date d'inscription jeudi 10 octobre 2013 Statut Membre Dernière intervention 10 octobre 2013
10 oct. 2013 à 15:05
Bon, pour préciser, voici ce que je cherche à isoler : les mots comportant des tirets, dans une chaîne de ce type (exemple) :

60676-86-0

3.64 E-02
87.7

877000

51.15

511474

Therm

po

Proprietary

2.08 E-03
5.0

50000

2.92

29160

Therm


Proprietary

2.08 E-03
5.0

50000

2.92

Je n'ai pas de préférence sur le logiciel, j'avais d'abord pensé à PowerShell, mais ça me semple trop compliqué pour moi, déjà qu'en VB, je vais devoir apprendre les bases, que je ne connais pas.
Je peux mettre cette suite de mots dans Excel, mais si je peux traiter le fichier texte directement c'est encore mieux.
Désolé de vous paraître ultra débutant, mais c'est le cas. J'imagine que pour vous,c'est trivial. Merci en tout cas de votre aide.
0
jordane45 Messages postés 38186 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 mai 2024 344
10 oct. 2013 à 15:51
déjà qu'en VB, je vais devoir apprendre les bases, que je ne connais pas.
Attention toutefois, ici vous êtes dans la section vbA du forum. (donc sous entendu, vous développerez votre application sous Excel, Word ou tout autre logiciel disposant de ce langage.

Votre demande pourrait tout aussi bien être traitée en VB.net, ou plus simplement en VBScript (mais là..ce sont d'autres sections du forum).

Suivez les conseils d'Ucfoutu et si, vous décidez finalement que vous ne voulez pas passer par du VBA.. à ce moment là il faudra fermer ce sujet et ouvrir une nouvelle question dans la bonne section du forum.

Sachant que (pour info) les quelques informations qu'il vous à donné sont aussi valables en VBScript..
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
10 oct. 2013 à 15:14
Ce que tu montyre n'est alors plus une "phrase", mais une suite de données séparées par un retour à la ligne (vbcrlf)
Toujours pas vraiment clair. Que gardes-tu, par exemple de :
3.64 E-02 ?
tout ou uniquement E-02 ?
0
reduxo Messages postés 4 Date d'inscription jeudi 10 octobre 2013 Statut Membre Dernière intervention 10 octobre 2013
10 oct. 2013 à 15:16
Précision : dans l'exemple ci-dessus, je ne recherche que les mots sans espace comportant des tirets (un ou plusieurs) : 2.08 E-03 5.0 ne doit pas être retenu. Seul 60676-86-0 doit être identifié et exporté vers le fichier "résultats".
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
10 oct. 2013 à 15:20
Il te faut allors boucler sur les lignes et, pour chaque ligne L lue :
If not L like "* *" and L like *-", que tu peux également écrire :
if not instr(L," ") and instr("-")
0
Rejoignez-nous