Récupérer une partie d'une ligne d'un texte

NewSky Messages postés 86 Date d'inscription dimanche 27 janvier 2002 Statut Membre Dernière intervention 20 février 2009 - 4 févr. 2005 à 01:09
NewSky Messages postés 86 Date d'inscription dimanche 27 janvier 2002 Statut Membre Dernière intervention 20 février 2009 - 7 févr. 2005 à 18:00
Bonjour tout le monde.

Je cherche un code qui me permette de récupérer uniquement la fin d'une ligne d'un fichier texte. Je m'explique. Dans le fichier de configuration d'Apache, les commandes de configuration sont du style : ServerRoot "C:\path" ; DocumentRoot "C:\Path" ; ServeurAdmin [mailto:nom@domain.com nom@domain.com] ...

Ce que je veux faire, c'est pouvoir récupérer telle ou telle fin de ligne (C:\path ; [mailto:nom@domain.com nom@domain.com], ...) en fonction du premier mot et les mettre dans un TextBox (sans les guillemets). Le problème, c'est que toutes les lignes n'ont pas la même dimension! J'ai bien essayé avec mid, mais je n'arrive pas à enlever les guillemets. Et puis avec les longueures variables des chaînes, j'ai des difficultés à gérer la partie que je veux récupérer.

J'espère avoir été assez clair.

Merci d'avance pour votre aide.

3 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
4 févr. 2005 à 07:24
Ben si ton texte est toujours précédé du même mot : lance une recherche
de ce mot avec la fonction InStr, tu obtiendras alors sa position, et
il te suffira de découper ta chaîne, soit avec Mid soit avec Right.

DarK Sidious

Administrateur et reponsable VB/API du site www.ProgOtoP.com
0
NewSky Messages postés 86 Date d'inscription dimanche 27 janvier 2002 Statut Membre Dernière intervention 20 février 2009
7 févr. 2005 à 17:49
C'est peut-être le bonne soluction mais, étant débutant, j'ai du mal à utiliser cette fonction!

Dans l'aide, ils disent que cette fonction renvoie une valeur de type Variant (Long) indiquant la position de la première occurrence d'une chaîne à l'intérieur d'une autre chaîne.

Moi, voilà la aprtie du programme que j'ai écrit :

'Ouverture du fichier de configuration pour récupérer les données
Open Data.PathConfigFile For Input As #1

While Not EOF(1)
Line Input #1, TxtTp

'Effectue les test pr savoir si la ligne correspond à une donnéee voulu
If Mid(TxtTp, 1, 10) = "ServerName" Then
LongTxt = Val(TxtTp)
TxtPathServeur.Text = Mid(TxtTp, 13)
End If
'Autres tests


Wend
Close #1

Donc, je lit le fichier ligne par ligne. A chaque fois, je compte vérifier si le 1er mot de chaque ligne n'est pas un mot clef. Il ne peut y avoir qu'une seule fois le même mot clef dans tout le fichier (mais il y a beaucoup de mots clefs différents!).
Selon le fonctionnement de mon prog, il faudra simplement, pour chaque mot clef trouvé afficher la ligne entière dans un TextBox (sans les guillemets, et ensuite (peut-être plus compliqué), s'il y a eu des changements, remplacer les lignes changées.

J'espère avoir été clair. Il est possible que cela se fasse avec cette fonction là (InStr), mais j'ai pa trop compris son focntionnement. Je vais essayer de comprendre, mais si tu pouvez m'aider encore .

Merci d'avance...
0
NewSky Messages postés 86 Date d'inscription dimanche 27 janvier 2002 Statut Membre Dernière intervention 20 février 2009
7 févr. 2005 à 18:00
Oups, j'ai oublié. Quand je met la ligne dans le TextBox, j'aimerai de préférence que le mot clef n'y apparaisse pas. Ca aussi c'est embêtant, car tous les mot clefs n'ont évidement pas la même taille. Il est donc fastidieu de pré-compter (manuellement) tous les mots pour pouvoir prédéfinir les recherches. D'autant plus que le but de mon prog est de pouvoir fonctionner avec d'autre version d'Apache.

Merci
0
Rejoignez-nous