kelm_by
Messages postés296Date d'inscriptionmardi 9 janvier 2007StatutMembreDernière intervention21 novembre 2008
-
15 avril 2007 à 02:10
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 2011
-
15 avril 2007 à 16:38
salut tous le monde
comment est ce que je peux suprimer les 10 premier lettre d'un fichier txt..
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 15 avril 2007 à 03:18
Salut,
beh voilà, ça m'aura occupé, j'ai mis 2 options dans la fonction ;)
Option Explicit
Private Function EraseCharTextFile(ByVal sPath As String, NbChar As Long, DeleteLeft As Boolean, AllLine As Boolean) As Boolean
Dim FF As Integer, i As Integer
Dim sBuffer As String, aLines() As String
FF = FreeFile
On Error GoTo MyEnd
Open sPath For Input As #FF
sBuffer = Input(LOF(FF), #FF)
Close #FF
If Right(sBuffer, 2) = vbCrLf Then sBuffer = Left(sBuffer, Len(sBuffer) - 2)
'on vire le saut de ligne fin, s'il y est
If AllLine Then
aLines = Split(sBuffer, vbCrLf)
Open sPath For Output As #FF
If DeleteLeft Then
For i = LBound(aLines) To UBound(aLines)
Print #FF, Right(aLines(i), Len(aLines(i)) - NbChar)
Next i
Else
For i = LBound(aLines) To UBound(aLines)
Print #FF, Left(aLines(i), Len(aLines(i)) - NbChar)
Next i
End If
Close #FF
Erase aLines
Else
If DeleteLeft Then 'donc le début du texte
sBuffer = Right(sBuffer, Len(sBuffer) - NbChar)
Else
sBuffer = Left(sBuffer, Len(sBuffer) - NbChar)
End If
Open sPath For Output As #FF
Print #FF, sBuffer;
Close #FF
End If
EraseCharTextFile = True
Exit Function
MyEnd:
End Function
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 15 avril 2007 à 03:39
Salut lermite222,
en fait, j'aime bien bosser tout en fonction (code plus clair, et généralement prêt à l'emploi, pas besoin de modifier). Pour ma foncion, il suffit de l'appeler avec divers paramètres :
Private Function EraseCharTextFile(ByVal sPath As String, NbChar As Long, DeleteLeft As Boolean, AllLine As Boolean) As Boolean
ByVal sPath As String ' chemin du dossier
NbChar As Long ' Nb de carac à supprimer
DeleteLeft As Boolean ' on supprimer depuis la
' gauche ? (ou la droite ? )
AllLine As Boolean ' Sur toutes les lignes ?
' (ou que le début
' ou la fin du fichier,
' selon param précédant
Et pour finir, la fonction retourne un boléen (vrai ou faux)
' ****** Divers Exemples :
EraseCharTextFile "C:\Chemin\Test.txt", 10, True, False
'>> Supprime les 10 premiers Caractères du fichier
EraseCharTextFile "C:\Chemin\Test.txt", 5, False, True
'>> Supprime les 5 derniers Caractères de chaque lignes du fichier
EraseCharTextFile "C:\Chemin\Test.txt", 2, True, True
'>> Supprime les 2 premiers Caractères de chaque lignes du fichier
EraseCharTextFile "C:\Chemin\Test.txt", 10, False, False
'>> Supprime les 10 derniers Caractères du fichier
EraseCharTextFile "C:\Chemin\Test.txt", 1000, True, False
'>> Supprime les 1000 premiers Caractères du fichier
cs_lermite222
Messages postés492Date d'inscriptionjeudi 5 avril 2007StatutMembreDernière intervention 2 juillet 20124 15 avril 2007 à 03:26
Salut Mortalino, tu a mis ton poste pendant que j'écrivait
Mais tout ce code pour couper une variable ?
Explique parce que je ne comprend pas.
Cordialement
louis
cs_lermite222
Messages postés492Date d'inscriptionjeudi 5 avril 2007StatutMembreDernière intervention 2 juillet 20124 15 avril 2007 à 16:34
salut kelm_by
N'en déplaise à mortalino, qui s'est décarcassé pour faire une fonction valable dans beaucoup de conditions,(je ne l'ai pas testée, mais je te fais confiance), il serait sympa d'accepté la réponse que tu à choisi..(je me réfère au dernier poste que tu a mis).
A+
louis
PS. exuse moi mortalino, mais je suis partisant qu'a question courte, réponse courte dans la mesure du possible, et plus précisément axée sur la question posée.
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 15 avril 2007 à 16:38
T'en fais pas, ce qui compte, c'est que le membre à sa réponse.
Je fais des fonctions car ça me prend 5 minutes, et je sais que je peux la réutiliser pour mes besoins, pis si quelqu'un redemande ce genre de chose, je sais que je l'ai posté, pouf un copier coller, et voilà
@++
<hr size="2" width="100%" />
--Mortalino--
Le mystérieux chevalier, ~Provençal, le Gaulois~