Recuperer un carractere precit dans un fichier texte [Résolu]

Signaler
Messages postés
49
Date d'inscription
mardi 27 septembre 2005
Statut
Membre
Dernière intervention
2 mars 2006
-
Messages postés
49
Date d'inscription
mardi 27 septembre 2005
Statut
Membre
Dernière intervention
2 mars 2006
-
Non Non Non je ne suis pas fénéant. J'ai bien deja chercher si le sujet
n'etait pas dans le forum. Il existe bien mais malheureusement
mon niveau ne me permet pas de comprendre tout. c'est pour cela que je
me permet de faire un autre post.



Ma question est simple, je doit recuperrer tout les paramettre pour un
projet dans un fichier texte, déja premier problemme, le
fichier texte n'est pas tres bien organiser: Le premier
parramettre est sur la ligne 1 (1er caractere) le second sur la ligne 4
(chaine de caractere avant la premiere virgule) la troisiemme se trouve
sur la ligne 4 (apres la troisieme virgule)ect ect.



Es ce que une personne gentille pourrais m'expliquer exactement comment
on fait (ou simplement un exemple tres bien commenter) car voyer vous
j'arrive jamais a savoir ce qu'il faut declarer comme variable, quelle
sont les paramettre pour la ligne et ceux pour les carraxtere.



Un ennorme merci d'avance a ceux qui me repondront



Baptiste

15 réponses

Messages postés
698
Date d'inscription
jeudi 16 janvier 2003
Statut
Membre
Dernière intervention
20 mai 2011
2
ca devrait aller mieux

1er point :
la méthode open n'est plus trop utilisée.
ce que je te conseille pour la manipulation de ton fichier c'est d'ajouter la reference "microsoft scripting runtime"

ensuite pour ouvrir ton fichier :
Dim objFile As New Scripting.FileSystemObject
Dim monFichier As TextStream

Set monFichier = objFile.OpenTextFile(monRepertoire, ForReading)


ton fichier est maintenant ouvert. tu va pouvoir lire ligne par ligne avec la methode
contenuLigne = monFichier.ReadLine()

pour sauter une ligne, tu peux faire
monFichier.SkipLine()

une fois que tu as fini de recuperer les infos de ton fichier tu le ferme ainsi :
monFichier.close()

voila un peu d'aide pour ce qui concerne la gestion du fichier.

2eme point : pour ce qui est de recuperer les info dans les lignes qui en contiennent plusieurs :
tu as la fonction split qui te permet de decouper un string en un tableau de string

ainsi si tu fait :
monTableau() = split("011904300E63,0,0,1,20,5,,,TESTE1", ",")
tu aura
monTableau(1) = "011904300E63"
monTableau(2) = "0"
monTableau(3) = "0"
...
monTableau(9) = "TESTE1"

voila, avec tout ca je pense que tu dois pouvoir faire ce dont tu as besoin
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 110 internautes nous ont dit merci ce mois-ci

Messages postés
698
Date d'inscription
jeudi 16 janvier 2003
Statut
Membre
Dernière intervention
20 mai 2011
2
salut

pour quel point precis as tu besoi d'aide ?
pour l'ouverture du fichier ou pour la récupération des info à l'interieur de celui-ci ?

qu'as tu deja fait ?

donnes nous le code que tu as deja fait avec l'endroit ou ca coince, et un exemple de contenu de ton fichier texte pourrait egalement etre utile...
Messages postés
49
Date d'inscription
mardi 27 septembre 2005
Statut
Membre
Dernière intervention
2 mars 2006

désoler d'avoir pas donner asser de pressisions.

voila mon fichier texte:

4

1

00:00:00

3



011904300E63,0,0,1,20,5,,,TESTE1

0119043009ED,0,0,1,20,5,,,TESTE2



je doit recupere 1 (ligne 2) car c'est le temps pour la temporisation,

je doit recuperer 011904300E63 ainsique que le 1
20 5 Teste 1 car se sont des info
dont j'ai besoin (L6) en sachant que chaque information doit etre
recupere separément.



j'ai essayer de faire ca mais je ne vois pas ce qu'il faut que je declare:

open fichier for input as #1

line input #1, texte

close

text1.text = texte



ni comment lui dire de recupere une des info qu'il me faut.



voila j'espere avoir donner asser d'information sinon j'en donnerais plus si vous me le demandez



encors merci

baptiste
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
35
salut,

VB6??


Private Sub Command1_Click()

Dim File As String 'chemin
Dim FF As Integer 'indice remplaçant ton #1
Dim i As Integer: i = 0 'pour compter les lignes
Dim LigneTmp As String 'pour sauver la ligne temporairement
Dim TabligneTmp() As String 'pour sauver la ligne temporairement sous forme de tableau

File = "C:\tmp.txt"
FF = FreeFile
Text1.Text = "" 'il est en multiligne=true

Open File For Input As #FF
Do While Not ( EOF (FF)) 'bah ouai, faut lire tout le fichier,
'pas que la première ligne ;)
Line Input #1, LigneTmp
If LigneTmp <> "" Then
i = i + 1 'on ne prend pas les ligne vides
Select Case i
Case 2 Text1.Text Text1.Text & "Param1 " & LigneTmp & vbCrLf

Case 5
TabligneTmp = Split (LigneTmp, ",")
Text1.Text = Text1.Text & _
"Param2 = " & TabligneTmp(0) & vbCrLf & _
"Param3 = " & TabligneTmp(3) & vbCrLf & _
"Param4 = " & TabligneTmp(4) & vbCrLf & _
"Param5 = " & TabligneTmp(5) & vbCrLf & _
"Param6 = " & TabligneTmp(8) & vbCrLf
End Select
End If
Loop
Close #FF
End Sub


<SMALL> Coloration syntaxique automatique [AFCK]</SMALL>


PCPT
Messages postés
49
Date d'inscription
mardi 27 septembre 2005
Statut
Membre
Dernière intervention
2 mars 2006

merci a tout les deux, mais je pense garder la solution de [auteurdetail.aspx?ID=35535 aieeeuuuuu]. Une petite pressision s'il te plai ou dois-je placer la reference "microsoft scripting runtime"



Autre question es ce que je pe faire un split sur une variable?
imaginon que ma_ligne soit sur la variable ligne (c'est un string)



puis je faire un
monTableau() =
split(ma_ligne)
????????,





encors merci pour vos reponse et merci d'avance pour m'eclairer sur les deux point evoquer plus haut
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
35
le 2e point est répondu dans ma réponse

Dim LigneTmp As String
Dim TabligneTmp() As String

TabligneTmp = Split(LigneTmp, ",")

PCPT
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
35
ps : selon la réponse de aieeuuu, monTableau(1) = "011904300E63" faux
ps : utiliser des objets, pourquoi pas, mais peut-être uniquement si on y est contraint, non?
PCPT
Messages postés
49
Date d'inscription
mardi 27 septembre 2005
Statut
Membre
Dernière intervention
2 mars 2006

merci beaucoup c'est vraie que je n'ai pas fait attention a cette
ligne. mais je c toujours pas ou mettre le "microsoft scripting
runtime" ni comment le mettre.
Messages postés
698
Date d'inscription
jeudi 16 janvier 2003
Statut
Membre
Dernière intervention
20 mai 2011
2
oui, c'est vrai, ca serait plutot monTableau(0) :)
oups

sinon pour repondre a la premiere question :
Menu Projet/references

la tu as une liste, elle devrait contenir le fameux MS scripting runtime, qui fait reference au fichier scrrun.dll dans windows\system32
Messages postés
49
Date d'inscription
mardi 27 septembre 2005
Statut
Membre
Dernière intervention
2 mars 2006

je ne voit pas pourquoi ca ligne est fausse peux tu m'expliquer???



sinon pourrais un pe plus expliquer tes lignes de codes et surtout
mindiquer comment apres tout ca je recupere mes information (ou je les
recupere) et quand es ce que je pe les traiter?????





merci d'avance pspt





baptiste
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
35
je vois pas comment je peux faire plus simple.
tu ouvres un projet, tu mets un bouton, un textbox en multiligne, et tu places ton fichier dans C:\, nommé tmp.txt.

t'as plus qu'à copier mon code. je ne vois pas ce qui te bloques.....
tu veux apparemment utiliser un objet externe, je ne peux donc que te conseiller de demander les informations à aieeeuuuu.
pour mon code, le résultat est renvoyé, prénominé par "param"x, pas très dificile alors de remplacer çà par la variable de ton choix, si?

++
PCPT
Messages postés
698
Date d'inscription
jeudi 16 janvier 2003
Statut
Membre
Dernière intervention
20 mai 2011
2
la ligne est fausse, car le tableau generé par le split ne commence pas a 1 mais a 0...

ensuite pour traiter tes infos, tu peux faire comme ca

ouverture du fichier
debut boucle de traitement (while not monFichier.AtEndOfFile)
'traitement de la ligne (la a toi de voir ce que tu veux recuperer exactement dans chaque ligne)
'tu dois pouvoir utiliser le code de traitement de pcpt en remplacant
Line Input #1, LigneTmp par LigneTmp = monFichier.readLine()
fin de boucle

fermeture du fichier

si tu as besoin deplus de precisions, dis moi sur quoi tu bloque exactement,
Messages postés
49
Date d'inscription
mardi 27 septembre 2005
Statut
Membre
Dernière intervention
2 mars 2006

d'accor merci ca marche maintenant mais j'ai kan meme une derniere
question: quand je recupere un paramettre venant du fichier je fait
comment pour le transformer en nombre numerique. C'est a dire je
recupere 1 et j'aimerais effectuer un operation sur la variable qui le
contient. Comment je peux faire?
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
35
val()
Messages postés
49
Date d'inscription
mardi 27 septembre 2005
Statut
Membre
Dernière intervention
2 mars 2006

Merci beacoup tout marche maintenant



vous etes vraiment bien avec vos reponse pertinente et rapide.



Merci pour tout





baptiste