Suprimer 10 premier lettre

Résolu
kelm_by Messages postés 296 Date d'inscription mardi 9 janvier 2007 Statut Membre Dernière intervention 21 novembre 2008 - 15 avril 2007 à 02:10
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 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..

merci d'avance

12 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
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

' exemple d'utilisation
Private Sub Form_Load()
    
    MsgBox "Réécriture du fichier : " & EraseCharTextFile("C:\Chemin\Test.txt", 10, True, False)

End Sub

~ <small> Mortalino ~ Colorisation automatique </small>

@++

<hr width ="100%" size="2" />
  --Mortalino--
Le mystérieux chevalier, ~Provençal, le Gaulois~
  
3
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
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

~ <small>Mortalino ~ Colorisation automatique</small>

@++

<hr width="100%" size="2" />
  --Mortalino--
Le mystérieux chevalier, ~Provençal, le Gaulois~
  
3
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
15 avril 2007 à 04:25
Bon vu que ça répond pas à ma question, j'emprûnte la boule de crystal de Jack qui est de passage ce soir et te dis :








Dim 
FF      
As Integer


Dim 
sBuffer 
As String
, a 
As String

    
    FF = FreeFile
    sPath = "C:\Chemin\Test.txt"
    a = "Mortalino ~ Colorisation automatique</gras></small>

@++





<hr width="100%" size="2" />

  --Mortalino--
Le mystérieux chevalier, ~Provençal, le Gaulois~
  
3
cs_lermite222 Messages postés 492 Date d'inscription jeudi 5 avril 2007 Statut Membre Dernière intervention 2 juillet 2012 4
15 avril 2007 à 03:23
Bonsoir,
tu n'a pas préciser le VB que tu as .
Un exemple en VB6 / VBA
Ouvrir le fichier et le transférer dans une variable
Exemple dim A as string


tu a ensuite la fonction

A=mid(A,11)
La variable A est ainsi emputée des 10 premier signes

A+
louis
0

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

Posez votre question
cs_lermite222 Messages postés 492 Date d'inscription jeudi 5 avril 2007 Statut Membre Dernière intervention 2 juillet 2012 4
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
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
15 avril 2007 à 03:45
J'ai posté le snippet, ici, il ne sera visible qu'après validation d'un admin

@++

<hr width="100%" size="2" />
  --Mortalino--
Le mystérieux chevalier, ~Provençal, le Gaulois~
  
0
kelm_by Messages postés 296 Date d'inscription mardi 9 janvier 2007 Statut Membre Dernière intervention 21 novembre 2008
15 avril 2007 à 03:54
merci les amis

mais ca ne marche pas encore
je ve tous suprimer jusqua <a href

a="<a href"

NumFich = FreeFile
Open f For Input As #NumFich
Contenu = Input(FileLen(f), NumFich)


b = InStr(1, Contenu, a)


Contenu = Mid(Contenu, b)


Close #NumFich
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
15 avril 2007 à 04:00
faut savoir ^^

tu veux supprimer les 10 premières lettres de ton fichier, ou ta balise ?


Elle est située où ? en début, au milieu sans connaitre sa position ?

@++





<hr width="100%" size="2" />

  --Mortalino--
Le mystérieux chevalier, ~Provençal, le Gaulois~
  
0
kelm_by Messages postés 296 Date d'inscription mardi 9 janvier 2007 Statut Membre Dernière intervention 21 novembre 2008
15 avril 2007 à 04:17
a="<a href"

NumFich = FreeFile
Open f For Input As #NumFich
Contenu = Input(FileLen(f), NumFich)


b = InStr(1, Contenu, a) 'calculer nombre de caractere pour ariver a "a"


Contenu = Mid(Contenu, b) suprimer du debut a "a"


Close #NumFich

merci
0
kelm_by Messages postés 296 Date d'inscription mardi 9 janvier 2007 Statut Membre Dernière intervention 21 novembre 2008
15 avril 2007 à 04:38
merci mortalino 
0
cs_lermite222 Messages postés 492 Date d'inscription jeudi 5 avril 2007 Statut Membre Dernière intervention 2 juillet 2012 4
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.
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
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~
  
0
Rejoignez-nous