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.