Recuperer un carractere precit dans un fichier texte

Résolu
jbbordas87 Messages postés 49 Date d'inscription mardi 27 septembre 2005 Statut Membre Dernière intervention 2 mars 2006 - 27 sept. 2005 à 13:48
jbbordas87 Messages postés 49 Date d'inscription mardi 27 septembre 2005 Statut Membre Dernière intervention 2 mars 2006 - 28 sept. 2005 à 09:27
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

aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 3
27 sept. 2005 à 15:34
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
aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 3
27 sept. 2005 à 14:46
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...
0
jbbordas87 Messages postés 49 Date d'inscription mardi 27 septembre 2005 Statut Membre Dernière intervention 2 mars 2006
27 sept. 2005 à 14:55
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
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
27 sept. 2005 à 15: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
0

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

Posez votre question
jbbordas87 Messages postés 49 Date d'inscription mardi 27 septembre 2005 Statut Membre Dernière intervention 2 mars 2006
27 sept. 2005 à 15:50
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
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
27 sept. 2005 à 16:10
le 2e point est répondu dans ma réponse

Dim LigneTmp As String
Dim TabligneTmp() As String

TabligneTmp = Split(LigneTmp, ",")

PCPT
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
27 sept. 2005 à 16:12
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
0
jbbordas87 Messages postés 49 Date d'inscription mardi 27 septembre 2005 Statut Membre Dernière intervention 2 mars 2006
27 sept. 2005 à 16:17
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.
0
aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 3
27 sept. 2005 à 16:42
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
0
jbbordas87 Messages postés 49 Date d'inscription mardi 27 septembre 2005 Statut Membre Dernière intervention 2 mars 2006
27 sept. 2005 à 16:44
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
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
27 sept. 2005 à 16:51
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
0
aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 3
27 sept. 2005 à 16:58
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,
0
jbbordas87 Messages postés 49 Date d'inscription mardi 27 septembre 2005 Statut Membre Dernière intervention 2 mars 2006
28 sept. 2005 à 08:52
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?
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
28 sept. 2005 à 09:15
val()
0
jbbordas87 Messages postés 49 Date d'inscription mardi 27 septembre 2005 Statut Membre Dernière intervention 2 mars 2006
28 sept. 2005 à 09:27
Merci beacoup tout marche maintenant



vous etes vraiment bien avec vos reponse pertinente et rapide.



Merci pour tout





baptiste
0
Rejoignez-nous