jbbordas87
Messages postés49Date d'inscriptionmardi 27 septembre 2005StatutMembreDernière intervention 2 mars 2006
-
27 sept. 2005 à 13:48
jbbordas87
Messages postés49Date d'inscriptionmardi 27 septembre 2005StatutMembreDerniè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
aieeeuuuuu
Messages postés698Date d'inscriptionjeudi 16 janvier 2003StatutMembreDernière intervention20 mai 20113 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
jbbordas87
Messages postés49Date d'inscriptionmardi 27 septembre 2005StatutMembreDerniè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
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 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
jbbordas87
Messages postés49Date d'inscriptionmardi 27 septembre 2005StatutMembreDerniè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
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 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
jbbordas87
Messages postés49Date d'inscriptionmardi 27 septembre 2005StatutMembreDerniè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.
jbbordas87
Messages postés49Date d'inscriptionmardi 27 septembre 2005StatutMembreDerniè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?????
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 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?
aieeeuuuuu
Messages postés698Date d'inscriptionjeudi 16 janvier 2003StatutMembreDernière intervention20 mai 20113 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,
jbbordas87
Messages postés49Date d'inscriptionmardi 27 septembre 2005StatutMembreDerniè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?