bonjour,
je n'ai que tres peu de compétences en programation.
Une personne a écrit un programme sous bv 6 pour moi, qui répond a mes besoins. Cependant il ne fonctionne pas.
Je travaille sous arcgis (cartographie). Je veux créer un MNT, à partir d'un fichier source fournit par une entreprise. Ce fichier source est en .dat, il est composé de trois colonnes, qui représentent les coordonnées X, Y et Z de différents points.
CE programme me permet de transformer ce fichier source en fichier .txt pour que je puisse le transformer en .dbf sous arcgis. Il me permet aussi d'éliminer les lignes qui ont des valeurs nulles et d'ajouter sur la première ligne les caractère X Y Z, et enfin de remplacer les virgules (séparateur de champ) par des tabulations.
Mon problème est, que le fichier .txt que génère le programme ne doit pas générer les tabulations correctement. En effet, je peux le vérifier en ouvrant le fichier sous un editeur de texte et je me rends compte que les espacements entre mes trois colonnes ne correspondent pas à une tabulation (trop court), de plus sous arcgis je ne peux pas générer une table à partir du fichier .txt puisqu'il ne reconnait pas les soit disant tabulations comme séparateur de texte.
Voici le code qu'il m'a était donné:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61 'Routine permettant d'ouvrir un fichier et de supprimer les lignes de 0 et de remplacer les "," par des tabulations Sub lectureFichier(ByVal fichier As String) ' Declare la variable ligne Dim Ligne As String, Temp As String, ff1 As Integer, ff2 As Integer Dim NbChampNul As Integer Dim nameFich As String Dim monTab() As String 'Ouvre le fichier ff1 = FreeFile Open fichier For Input As #ff1 'Construction du chemin de sortie du fichier modifié ff2 = FreeFile ' Cherche un index disponible monTab = Split(pathfilename, ".") 'Boucle pour la reconstruction de la chaine à l'emplacement du fichier chargé 'avec un nouveau nom en _out.txt For i = 0 To UBound(monTab) - 1 nameFich = nameFich & monTab(i) 'Test pour rajouter un "." quand il est dans le chemin et ne pas le mettre quand c'est une extension If i <> UBound(monTab) - 1 Then nameFich = nameFich & "." End If Next i nameFich = nameFich & "_out.txt" Open nameFich For Output As #ff2 Print #ff2, "X"; vbTab; "Y"; vbTab; "Z" NbChampNul = 0 While Not EOF(ff1) 'For A = 1 To 6 Step 1 Line Input #ff1, Ligne If (Ligne = "0.000,0.000,0.000") Then NbChampNul = NbChampNul + 1 Else Ligne = Replace(Ligne, ",", " ") Print #ff2, Ligne End If ' Next A Wend 'Ferme le fichier Close #ff1, #ff2 'Affiche le résultat dans un Msgbox MsgBox "Le fichier contient " & NbChampNul & " lignes nulles" fichierCréé = True Exit Sub End Sub
A mon avis l'erreur se situe dans "ligne=replace(Ligne, ",", " ")". Apres lecture de différents cas sur ce forum, j'ai essayé des modifications comme remplacer le " " par vbTab ou par un copier collé d'une tabulation et autre...
Rien n'y fait, je n'arrive toujours pas à transformer le fichier .txt généré par ce programme en .dbf sous arcgis.
Peut etre que l'erreur se situe ailleurs, je n'ai as trop les compétences pour voir certaines subtilités.
toutes vos suggestions seront les bienvenues.
Merci.
Partager