Récupération de données dans un fichier .txt
Le
XclaudeX
Bonjour,
J'aimerai pouvoir dans un fichier Txt, récupérer des données sur des lignes
commençant par un préfixe bien défini et à des positions dans la ligne qui
sont fixes.
Voici un exemple du fichier :.
# DEBUT sauvegarde du: 24/02/2005 à: 15h56
$GPAAM,V,V,0.20,N,PIGNON*35
$GPAPB,A,A,0.00,R,N,V,V,267,M,PIGNON,267,M,267,M*29
$GPBWC,144615,4853.49,N,00143.35,W,267,T,267,M,6.505,N,PIGNON*02
$GPGGA,144615,4853.8402,N,00133.5150,W,1,05,01.7,-0016,M,50,M,,*7B
$GPGSA,A,3,01,03,11,20,28,,,,,,,,02.9,01.7,02.4*03
$GPGSV,3,1,09,01,32,123,40.1,03,19,149,46.4,07,06,314,00.0,11,72,288,41.4*77
$GPGSV,3,2,09,14,34,070,00.0,19,48,151,00.0,20,33,219,42.3,22,12,049,00.0*76
$GPGSV,3,3,09,28,28,295,33.1,,,,,,,,,,,,*51
$GPMSK,281.5,M,200,M,*7C
$GPVTG,000,T,,M,000.0,N,000.0,K*7E
$GPAAM,V,V,0.20,N,PIGNON*35
$GPAPB,A,A,0.00,R,N,V,V,267,M,PIGNON,267,M,267,M*29
$GPBWC,144617,4853.49,N,00143.35,W,267,T,267,M,6.505,N,PIGNON*00
$GPGGA,144618,4853.8393,N,00133.5147,W,1,05,01.7,-0014,M,50,M,,*7D
Seules les lignes au préfixe $GPGGA intéresse, et dans chacune de ces
lignes, les données commençant en 15 position pour se terminer à la 25
position et de la 26 à la 37e position.
Ceci est en fait une tentative d'import des données d'un gps (norme NMEA)
qui me permettrai d'enregistrer ma route dans une base Access, de calculer
la distance entre différents points et le cap.
D'avance merci
Claude
J'aimerai pouvoir dans un fichier Txt, récupérer des données sur des lignes
commençant par un préfixe bien défini et à des positions dans la ligne qui
sont fixes.
Voici un exemple du fichier :.
# DEBUT sauvegarde du: 24/02/2005 à: 15h56
$GPAAM,V,V,0.20,N,PIGNON*35
$GPAPB,A,A,0.00,R,N,V,V,267,M,PIGNON,267,M,267,M*29
$GPBWC,144615,4853.49,N,00143.35,W,267,T,267,M,6.505,N,PIGNON*02
$GPGGA,144615,4853.8402,N,00133.5150,W,1,05,01.7,-0016,M,50,M,,*7B
$GPGSA,A,3,01,03,11,20,28,,,,,,,,02.9,01.7,02.4*03
$GPGSV,3,1,09,01,32,123,40.1,03,19,149,46.4,07,06,314,00.0,11,72,288,41.4*77
$GPGSV,3,2,09,14,34,070,00.0,19,48,151,00.0,20,33,219,42.3,22,12,049,00.0*76
$GPGSV,3,3,09,28,28,295,33.1,,,,,,,,,,,,*51
$GPMSK,281.5,M,200,M,*7C
$GPVTG,000,T,,M,000.0,N,000.0,K*7E
$GPAAM,V,V,0.20,N,PIGNON*35
$GPAPB,A,A,0.00,R,N,V,V,267,M,PIGNON,267,M,267,M*29
$GPBWC,144617,4853.49,N,00143.35,W,267,T,267,M,6.505,N,PIGNON*00
$GPGGA,144618,4853.8393,N,00133.5147,W,1,05,01.7,-0014,M,50,M,,*7D
Seules les lignes au préfixe $GPGGA intéresse, et dans chacune de ces
lignes, les données commençant en 15 position pour se terminer à la 25
position et de la 26 à la 37e position.
Ceci est en fait une tentative d'import des données d'un gps (norme NMEA)
qui me permettrai d'enregistrer ma route dans une base Access, de calculer
la distance entre différents points et le cap.
D'avance merci
Claude

Poser une question


J'importerais ce fichier texte dans une table temporaire, en tenant compte
de la virgule comme séparateur.
Puis j'utiliserais une requête basée sur l'expression "$GPGGA" pour pouvoir
filtrer uniquement les enregistrements susceptibles de t'intéresser.
A+
Laurent
"XclaudeX" news:421df81b$0$19318$
complexe à expliquer), il pourrait sélectionner les seuls champs à importer
et enregistrer le tout dans un modèle d'importation. Ainsi par VBA ou même
par macro, il pourra à l'avenir récupérer directement l'information
souhaitée, sans autre manoeuvre. Cela dit, pour sa sélection des lignes
débutant par "$GPCGA", il est vrai que la passe via une table temporaire et
une requête filtrante reste est incontournable.
"Laurent"
format numérique ?
merci
"Ma Dalton"
comprises entre +/- 5.0E-324 et 1.8E+308.
A+
Laurent
"XclaudeX" news:421f2751$0$25054$
"XclaudeX"
| J'aimerai pouvoir dans un fichier Txt, récupérer des données sur des lignes
| commençant par un préfixe bien défini et à des positions dans la ligne qui
| sont fixes.
|
| Voici un exemple du fichier :.
|
| # DEBUT sauvegarde du: 24/02/2005 à: 15h56
| $GPAAM,V,V,0.20,N,PIGNON*35
[...]
|
| Seules les lignes au préfixe $GPGGA intéresse, et dans chacune de ces
| lignes, les données commençant en 15 position pour se terminer à la 25
| position et de la 26 à la 37e position.
Tu pourrais "nettoyer" le fichier avec une petite fonction,
pour ensuite l'importer dans une table...
'-----------------------------------------------------------
Function fnCleanTXT(sFileIN As String, sFileOUT)
Dim fOut As Integer, fIN As Integer, sTemp As String, sIN As String
Const conCode As String = "$GPGGA"
fIN = FreeFile: Open sFileIN For Input As #fIN
fOut = FreeFile: Open sFileOUT For Output As #fOut
Do
Line Input #fIN, sIN
If Left(sIN, 6) = conCode Then
sTemp = Mid(sIN, 15, 9) & ";" & Mid(sIN, 27, 10)
Print #fOut, sTemp
End If
Loop Until EOF(fIN)
Close #fOut, #fIN
End Function
PS : je te laisse ajuster les valeurs de "découpage" dans les 2 Mid(...)
--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw