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
  • Partager ce contenu :
Vos réponses
Trier par : date / pertinence
Laurent
Le #5655811
Bonsoir Claude

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$
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




Ma Dalton
Le #5655061
De plus, si il procède manuellement au moins une fois (sinon c'est plus
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"
Bonsoir Claude

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$
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








XclaudeX
Le #5655041
Comment faire et aussi comment transformer les données au format texte en
format numérique ?

merci

"Ma Dalton"
De plus, si il procède manuellement au moins une fois (sinon c'est plus
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" news:
Bonsoir Claude

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$
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












Laurent
Le #5654821
Utilise la fonction dbl(tonnombre). Ceci te permet d'utiliser des valeurs
comprises entre +/- 5.0E-324 et 1.8E+308.

A+
Laurent

"XclaudeX" news:421f2751$0$25054$
Comment faire et aussi comment transformer les données au format texte en
format numérique ?

merci

"Ma Dalton"
De plus, si il procède manuellement au moins une fois (sinon c'est plus
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" news:
Bonsoir Claude

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$
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
















3stone
Le #5654731
Salut,

"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
Poster une réponse
Anonyme