Point virgule, guillemet [Résolu]

kkrooolf 5 Messages postés jeudi 9 février 2012Date d'inscription 15 février 2012 Dernière intervention - 15 févr. 2012 à 09:20 - Dernière réponse : ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention
- 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
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Renfield 17308 Messages postés mercredi 2 janvier 2002Date d'inscription 22 août 2018 Dernière intervention - 15 févr. 2012 à 10:18
3
Merci
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

Merci Renfield 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de Renfield
Renfield 17308 Messages postés mercredi 2 janvier 2002Date d'inscription 22 août 2018 Dernière intervention - 15 févr. 2012 à 09:47
0
Merci
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
Commenter la réponse de Renfield
kkrooolf 5 Messages postés jeudi 9 février 2012Date d'inscription 15 février 2012 Dernière intervention - 15 févr. 2012 à 10:03
0
Merci
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
Commenter la réponse de kkrooolf
kkrooolf 5 Messages postés jeudi 9 février 2012Date d'inscription 15 février 2012 Dernière intervention - 15 févr. 2012 à 12:43
0
Merci
merci beaucoup, et cela marche !!
Commenter la réponse de kkrooolf
kkrooolf 5 Messages postés jeudi 9 février 2012Date d'inscription 15 février 2012 Dernière intervention - 15 févr. 2012 à 14:15
0
Merci
maintenant mon programme est terminé, comment vais-je faire pour le transformé en programme éxécutable ?

Merci d'avance
Commenter la réponse de kkrooolf
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 15 févr. 2012 à 14:52
0
Merci
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
Commenter la réponse de ucfoutu

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.