- Function Chemin_nouveau_fichier(Chemin_complet As String)
- Dim TEMP As String
- Dim NbOC As Integer
- Dim compteur as integer
-
- 'compte le nombre de caractère dans une chaîne
- NbOC = (Len(Chemin_complet) - Len(Replace(Chemin_complet, "\", "", , , 1))) / Len("\")
- TEMP = Chemin_complet
- For compteur = 1 To NbOC
- TEMP = Mid(TEMP, InStr(1, TEMP, "\") + 1)
- Next
- Chemin_nouveau_fichier = Left(Chemin_complet, Len(Chemin_complet) - Len(TEMP) - 1) & "\TEMP_" & TEMP
- End Function
-
- '///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
- Function compte_ligne(Chemin_complet As String)
- On Error GoTo ANNULER 'pour traiter(sommairement)
- 'les erreurs
- Open Chemin_complet For Input As #1
- While Not EOF(1)
- Line Input #1, texte
- NbLignes = NbLignes + 1
- Wend
- Close #1
- compte_ligne = NbLignes
- ANNULER:
- End Function
-
- '///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
-
- Sub suppr_ligne_TXT()
-
- Dim text As String
- Dim tmp As String
- Dim N°ligne As Variant
- Dim nbre_ligne_fichier As Integer
-
- Dim CHEMIN_COMPLET_TXT As String
- Dim CHEMIN_COMPLET_NOUVEAU_TXT As String
-
- CHEMIN_COMPLET_TXT = "C:\Documents and Settings\test.txt"
- CHEMIN_COMPLET_NOUVEAU_TXT = Chemin_nouveau_fichier(CHEMIN_COMPLET_TXT)
-
- 'INPUTBOX "INTELLIGENTE" QUI DONNE LE NOMBRE DE LIGNE
- nbre_ligne_fichier = compte_ligne(CHEMIN_COMPLET_TXT)
- N°ligne = 0
- While N°ligne > nbre_ligne_fichier Or N°ligne < 1
- N°ligne = InputBox("Numéro de la ligne à supprimer?" & Chr(10) & "Entre 1 et " & nbre_ligne_fichier & "", "SAISIE")
- If N°ligne = "" Then Exit Sub
- N°ligne = CInt(N°ligne)
- Wend
-
-
- 'N°ligne = VARIABLE_X
-
-
- 'CREATION FICHIER TEMPORAIRE
- Set FSys = CreateObject("Scripting.FileSystemObject")
- Set MonFic = FSys.CreateTextFile(CHEMIN_COMPLET_NOUVEAU_TXT)
-
- 'FERMETURE FICHIER TEMPORAIRE
- MonFic.Close
-
-
- 'ouverture des 2 fichiers texte
- Open CHEMIN_COMPLET_TXT For Input As 1#
- Open CHEMIN_COMPLET_NOUVEAU_TXT For Output As 2#
-
-
- 'LECTURE "CONDITIONNELLE" DU FICHIER SOURCE ET ECRITURE DANS LE NOUVEAU FICHIER
- compteur = 0
- While Not (EOF(1) Or False)
- compteur = compteur + 1
- Input #1, text
- If compteur = N°ligne Then Else Print #2, text '> print est utilisé pour éviter les guillemets apparaissant avec .write
- Wend
-
- 'fermeture des 2 fichiers texte
- Close #1
- Close #2
-
- 'Supprmime le fichier SOURCE
- Kill CHEMIN_COMPLET_TXT
- 'Renomme le fichier TEMP(et donc remplace le fichier SOURCE)
- Name CHEMIN_COMPLET_NOUVEAU_TXT As CHEMIN_COMPLET_TXT
-
- 'If N°ligne > nbre_ligne_fichier Or N°ligne < 1 Then MsgBox "Procédure exécutée avec succès, mais sans effet!", vbInformation, "Message"
-
- End Sub
Function Chemin_nouveau_fichier(Chemin_complet As String)
Dim TEMP As String
Dim NbOC As Integer
Dim compteur as integer
'compte le nombre de caractère dans une chaîne
NbOC = (Len(Chemin_complet) - Len(Replace(Chemin_complet, "\", "", , , 1))) / Len("\")
TEMP = Chemin_complet
For compteur = 1 To NbOC
TEMP = Mid(TEMP, InStr(1, TEMP, "\") + 1)
Next
Chemin_nouveau_fichier = Left(Chemin_complet, Len(Chemin_complet) - Len(TEMP) - 1) & "\TEMP_" & TEMP
End Function
'///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Function compte_ligne(Chemin_complet As String)
On Error GoTo ANNULER 'pour traiter(sommairement)
'les erreurs
Open Chemin_complet For Input As #1
While Not EOF(1)
Line Input #1, texte
NbLignes = NbLignes + 1
Wend
Close #1
compte_ligne = NbLignes
ANNULER:
End Function
'///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Sub suppr_ligne_TXT()
Dim text As String
Dim tmp As String
Dim N°ligne As Variant
Dim nbre_ligne_fichier As Integer
Dim CHEMIN_COMPLET_TXT As String
Dim CHEMIN_COMPLET_NOUVEAU_TXT As String
CHEMIN_COMPLET_TXT = "C:\Documents and Settings\test.txt"
CHEMIN_COMPLET_NOUVEAU_TXT = Chemin_nouveau_fichier(CHEMIN_COMPLET_TXT)
'INPUTBOX "INTELLIGENTE" QUI DONNE LE NOMBRE DE LIGNE
nbre_ligne_fichier = compte_ligne(CHEMIN_COMPLET_TXT)
N°ligne = 0
While N°ligne > nbre_ligne_fichier Or N°ligne < 1
N°ligne = InputBox("Numéro de la ligne à supprimer?" & Chr(10) & "Entre 1 et " & nbre_ligne_fichier & "", "SAISIE")
If N°ligne = "" Then Exit Sub
N°ligne = CInt(N°ligne)
Wend
'N°ligne = VARIABLE_X
'CREATION FICHIER TEMPORAIRE
Set FSys = CreateObject("Scripting.FileSystemObject")
Set MonFic = FSys.CreateTextFile(CHEMIN_COMPLET_NOUVEAU_TXT)
'FERMETURE FICHIER TEMPORAIRE
MonFic.Close
'ouverture des 2 fichiers texte
Open CHEMIN_COMPLET_TXT For Input As 1#
Open CHEMIN_COMPLET_NOUVEAU_TXT For Output As 2#
'LECTURE "CONDITIONNELLE" DU FICHIER SOURCE ET ECRITURE DANS LE NOUVEAU FICHIER
compteur = 0
While Not (EOF(1) Or False)
compteur = compteur + 1
Input #1, text
If compteur = N°ligne Then Else Print #2, text '> print est utilisé pour éviter les guillemets apparaissant avec .write
Wend
'fermeture des 2 fichiers texte
Close #1
Close #2
'Supprmime le fichier SOURCE
Kill CHEMIN_COMPLET_TXT
'Renomme le fichier TEMP(et donc remplace le fichier SOURCE)
Name CHEMIN_COMPLET_NOUVEAU_TXT As CHEMIN_COMPLET_TXT
'If N°ligne > nbre_ligne_fichier Or N°ligne < 1 Then MsgBox "Procédure exécutée avec succès, mais sans effet!", vbInformation, "Message"
End Sub