cwamm
Messages postés34Date d'inscriptionmardi 28 février 2006StatutMembreDernière intervention 9 juin 2006
-
28 févr. 2006 à 10:20
cwamm
Messages postés34Date d'inscriptionmardi 28 février 2006StatutMembreDernière intervention 9 juin 2006
-
28 févr. 2006 à 14:29
Salut a tous,
Jdébute en VB depuis hier et je cherche a lire un fichier qui a cette tete:
$ attention commande nouvelle et titre entre quotes
COOR 1 8.4300 0.9814
COOR 2 9.6000 1.0282
....
Je voudrais tester si la ligne débute par "COOR"; et si c'est les cas, enregistrer les 3 valeurs qui la suivent.
J'ai navigué sur le forum et j'arrive a ouvrir le fichier et a lire les lignes une a une, mais je sais pas encore identifier des caracteres et les enregistrer dans des variables
cwamm
Messages postés34Date d'inscriptionmardi 28 février 2006StatutMembreDernière intervention 9 juin 2006 28 févr. 2006 à 11:12
bah j'ai eu le temps d'avancer un peu, et j'arrive a lire les données la mais en tant que string, et je suis ne train de chercher comment jpeux enregistrer des données doubles
j'ai ca la :
If (Mid$(Var1, 1, 4) = "COOR") Then
If (Mid$(Var1, 6, 6) <> "'test'") Then
affiche = MsgBox(Mid$(Var1, 10, 13))
'pt(temp) = Mid$(Var1,10,13)) <--- la jvoudrais lire un double ^^
MsgBox pt(temp)
End If
temp = temp + 1
End If
cs_DURANDO
Messages postés34Date d'inscriptionjeudi 16 février 2006StatutMembreDernière intervention21 mars 2006 28 févr. 2006 à 11:28
Pour vérifier que ta ligne commence par "COOR", en supposant que tu as lu la ligne de ton fichier et rangé dans la variable Ligne de type string
if (InStr(1,ligne,"COOR",4) =1) then msgbox "La ligne lue commence par COOR "& chr(13) & ligne
Pour extraire tes données, en supposant que leurs positions est
connues, tu peux utiliser la fonction mid() exemple la valeur1 commence
au 8éme caractére et tient sur 2 caractère :
dim Element1 as string
dim Element2 as string
Element1=mid(ligne,8,2)
Element2=mid(ligne,17,6)
Espérant t'avoir répondu
N'hésites pas si tu bloque encore
A+
C'est pas parceque les c.. sont plus nombreux qu'ils ont forcément raison!(dixit Coluche)
Une seule ligne de conduite, l'objectivité.
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 28 févr. 2006 à 14:02
Salut,
Voici un petit exemple pour utiliser la fonction Split
Dim Str As String
Dim i As Integer
Dim Resultat() As String
Str = "COOR Ceci est un exemple"
Resultat = Split(Str, " ")
For i = 0 To UBound(Resultat)
MsgBox Resultat(i)
Next
En fait Split te retourne dans un tableau chaque groupe de caractere compris entre deux Espace (" ")
Mais si par exemple tes esembles sont separes par des tu peux tres bien faire Resultat Split(Str, "=").
@+, Julien Pensez: Moteur de Recherche, Réponse Acceptée
Vous n’avez pas trouvé la réponse que vous recherchez ?
cwamm
Messages postés34Date d'inscriptionmardi 28 février 2006StatutMembreDernière intervention 9 juin 2006 28 févr. 2006 à 12:45
Comment je pourrais utiliser la méthode Split?
1- faudrait enregistrer que la partie de la ligne a splitter, jvois pas comment faire :s
2-pour faire le split en lui meme j'ai trouvé sur lesite comment faire mais voila quoi ^^
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 28 févr. 2006 à 14:17
Re,
Si ton fichier s'appelle Test.txt:
Dim Ligne As String
Open "C:\Test.txt" For Input As #1
While Not EOF(1)
Line Input #1, Ligne
'Met ce que tu veux ici pour effectuer tes operations sur la ligne
Wend
Close #1
Voila j espere avoir pu t'aider un peu
@+, Julien Pensez: Moteur de Recherche, Réponse Acceptée
cwamm
Messages postés34Date d'inscriptionmardi 28 février 2006StatutMembreDernière intervention 9 juin 2006 28 févr. 2006 à 14:29
l'idée c que le fichier est déja ouvert
et que une fois que j'ai passé mes "COOR" en revue
je passe mes "CAS" en revue, et qd j'ai testé si je suis sur un cas, la commande:
Line Input #2, vartexte
Dim Resulat() As String
Resultat = Split(vartexte, " ")
me splitte la ligne du dessous!!
comment faire pour enregistrer cette ligne dans une variable et comme splitter que les objets integer et de ne pas garder en mémoire les string?