Point virgule, guillemet

Résolu
kkrooolf Messages postés 5 Date d'inscription jeudi 9 février 2012 Statut Membre Dernière intervention 15 février 2012 - 15 févr. 2012 à 09:20
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 15 févr. 2012 à 14:52
[b]bonjour,
j'ai fait le programme suivant :/b

Private Sub Dir1_Change()

'ouvrir uniquement les fichier txt
File1.Path = Dir1.Path
File1.Pattern = ("*.txt")

End Sub


Private Sub Drive1_Change()

Dir1.Path = Drive1.Drive

End Sub

Private Sub Label2_Click()

End Sub

Private Sub Start_Click()

Dim Rang As Integer
Dim nbr As Integer
Dim Nom_fichier As String
Dim txt1, txt2 As String

nbr% = File1.ListCount

'For Rang = 0 To nbr - 1

File$ = Dir1.Path + "" + File1.List(0)
Open File For Input As #1

While Not EOF(1)

Line Input #1, Lire1$
Line Input #1, Lire2$
Line Input #1, Lire3$
Wend

Ecrire1$ = Replace(Lire1$, Chr(34) + Chr(34) + Chr(34), Chr(34))
Ecrire2$ = Replace(Lire2$, Chr(34) + Chr(34) + Chr(34), Chr(34))
Ecrire3$ = Replace(Lire3$, Chr(34) + Chr(34) + Chr(34), Chr(34))

'Ecrire11$ = Replace(Ecrire1$, ";", ",")
'Ecrire22$ = Replace(Ecrire2$, ";", ",")
'Ecrire33$ = Replace(Ecrire3$, ";", ",")
Close #1

Open File For Output As #1
Print #1, Ecrire1
Print #1, Ecrire2
Print #1, Ecrire3

Close #1
'Next
MsgBox Ecrire1
MsgBox Ecrire2
MsgBox Ecrire3

End Sub





il permet de changer """ (3guillemets) en " (1seul guillement) et ; (1point virgule) en , (1virgule)
le problème se pose car ici je peu uniquement faire cela si mon fichier a 3 lignes, j'aimerais donc pouvoir faire sa peu importe la longueur de mon fichier. donc de manière dynamique...

merci d'avance

6 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
15 févr. 2012 à 10:18
ok...

Option Explicit

Private Sub Form_Load()
    '# Permet de rafraichir les Drive/Dir/File d'un seul coup...
    Drive1_Change
End Sub

Private Sub Drive1_Change()
    On Local Error Resume Next
    Dir1.Path = Drive1.Drive
    If Err Then
        MsgBox "Disque " & Drive1.Drive & " non prêt", vbExclamation, Err.Description
        '# On annule la selection du drive
        Drive1.Drive = Left$(Dir1.Path, 2)
    End If
End Sub

Private Sub Dir1_Change()
    File1.Path = Dir1.Path
    File1.Pattern = "*.txt"
End Sub

Private Sub Start_Click()
Dim i As Integer
Dim sPath As String
    sPath = File1.Path
    If Right$(sPath, 1) <> "" Then
        sPath = sPath & ""
    End If
    '# Pour chaque fichier de la liste
    For i = 0 To File1.ListCount - 1
        '# Si j'ai selectionné mon fichier...
        If File1.Selected(i) Then
            TraiterFichier sPath & File1.List(i)
        End If
    Next
End Sub

Private Sub TraiterFichier(ByRef vsFilePath As String)
Dim Content As String
Dim FF As Integer
    '# Bonne habitude a prendre que de ne pas utiliser #1 en dur...
    FF = FreeFile
    '# Lecture de tout le contenu du fichier
    Open vsFilePath For Binary Access Read As #FF
        '# On reserve suffisamment de place dans la variable
        Content = Space$(LOF(FF))
        Get #FF, , Content
    Close #FF
    
    '# Nettoyage...
    Content = Replace(Content, """""""", """")
    Content = Replace(Content, ";", ",")
    
    '# On ouvre le fichier en ecriture
    Open vsFilePath For Output As #FF
        '# On y écrit le contenu
        Print #FF, Content,
        '# Le , final est là pour ne pas générer de saut de ligne en toute fin de fichier
    Close #FF
End Sub




Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
15 févr. 2012 à 09:47
supprimer le traitement deux et trois...
la boucle, etc....

Dim Content As String
    Open File For Binary Access Read As #1
        Content = Space$(LOF(1))
        Get #1, , Content
    Close #1
    Content = Replace(Content, """"""", """)
    Content = Replace(Content, ";", ",")
    Open File For Output As #1
        Print #1, Content,
    Close #1




Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
kkrooolf Messages postés 5 Date d'inscription jeudi 9 février 2012 Statut Membre Dernière intervention 15 février 2012
15 févr. 2012 à 10:03
merci Renfield,

pourriez vous juste m'écrire le code en entier car je ne sais pas ou faire exactement les remplacements car il affiche erreur..

merci d'avance
0
kkrooolf Messages postés 5 Date d'inscription jeudi 9 février 2012 Statut Membre Dernière intervention 15 février 2012
15 févr. 2012 à 12:43
merci beaucoup, et cela marche !!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kkrooolf Messages postés 5 Date d'inscription jeudi 9 février 2012 Statut Membre Dernière intervention 15 février 2012
15 févr. 2012 à 14:15
maintenant mon programme est terminé, comment vais-je faire pour le transformé en programme éxécutable ?

Merci d'avance
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
15 févr. 2012 à 14:52
File (ou Fichier) ===> make exe (ou faire exe) ne serait pas la bonne réponse ?


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
Rejoignez-nous