Modification de fichier (reponse forum)

Contenu du snippet

Ce module permet de modifier les fichier (seulement ceux qui sont constitués de lignes) tres simplement grace a des fonctions pour ajouter, supprimer et modifier les lignes désirées.

Source / Exemple :


Public Sub Del_Line(File As String, Line_Index As Integer)
Dim TemporyFile() As String
On Error GoTo ERREUR
TemporyFile = Read_File(File)
If Line_Index < 0 Or Line_Index > UBound(TemporyFile) Then
    MsgBox "Cette ligne n'existe pas !", vbCritical, "Erreur"
    Exit Sub
End If
If UBound(TemporyFile) = 0 Then
    Erase TemporyFile
    Exit Sub
End If
For i = Line_Index To UBound(TemporyFile) - 1
    TemporyFile(i) = TemporyFile(i + 1)
Next
ReDim Preserve TemporyFile(UBound(TemporyFile) - 1)
Replace_File File, TemporyFile
Exit Sub
ERREUR:
Erase TemporyFile
End Sub

Public Sub Add_Line(File As String, Line_Index As Integer, Line_String As String)
Dim TemporyFile() As String
On Error GoTo ERREUR
TemporyFile = Read_File(File)
CHECK_AGAIN:
If Line_Index < 0 Then
    MsgBox "Impossible d'inserer une ligne à cet index !", vbCritical, "Erreur"
    Exit Sub
ElseIf Line_Index > UBound(TemporyFile) Then
    ReDim Preserve TemporyFile(Line_Index)
    TemporyFile(Line_Index) = Line_String
    Replace_File File, TemporyFile
    Exit Sub
End If
ReDim Preserve TemporyFile(UBound(TemporyFile) + 1)
For i = UBound(TemporyFile) To Line_Index + 1 Step -1
    TemporyFile(i) = TemporyFile(i - 1)
Next
TemporyFile(Line_Index) = Line_String
Replace_File File, TemporyFile
Exit Sub
ERREUR:
ReDim TemporyFile(0)
GoTo CHECK_AGAIN
End Sub

Public Sub Modif_Line(File As String, Line_Index As Integer, Line_String As String)
Dim TemporyFile() As String
On Error GoTo ERREUR
TemporyFile = Read_File(File)
If Line_Index < 0 Or Line_Index > UBound(TemporyFile) Then
    MsgBox "Cette ligne n'existe pas !", vbCritical, "Erreur"
    Exit Sub
End If
TemporyFile(Line_Index) = Line_String
Replace_File File, TemporyFile
Exit Sub
ERREUR:
MsgBox "Fichier Temporaire vide !", vbCritical, "Erreur"
End Sub

Private Sub Replace_File(File As String, TemporyFile() As String)
On Error GoTo ERREUR
If Dir$(File) = vbNullString Or File = vbNullString Then
    MsgBox "Fichier Inexistant !", vbCritical, "Erreur"
    Exit Sub
End If
Open File For Output As #1
    For i = 0 To UBound(TemporyFile)
        Print #1, TemporyFile(i)
    Next
Close #1
Exit Sub
ERREUR:
Kill File
End Sub

Private Function Read_File(File As String) As String()
Dim Result() As String
Dim NbLignes As Integer
If Dir$(File) = vbNullString Or File = vbNullString Then
    MsgBox "Fichier Inexistant !", vbCritical, "Erreur"
    Exit Function
End If
Open File For Input As #1
    While Not EOF(1)
        If NbLignes = 0 Then
            ReDim Result(NbLignes)
        Else
            ReDim Preserve Result(NbLignes)
        End If
        Line Input #1, Result(NbLignes)
        NbLignes = NbLignes + 1
    Wend
Close #1
Read_File = Result
End Function

A voir également

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.