Nombre de lignes ds un fichier

katarhackt669 Messages postés 22 Date d'inscription lundi 23 septembre 2002 Statut Membre Dernière intervention 21 juin 2004 - 27 avril 2003 à 21:54
katarhackt669 Messages postés 22 Date d'inscription lundi 23 septembre 2002 Statut Membre Dernière intervention 21 juin 2004 - 28 avril 2003 à 15:51
bonjour à tous,
après un recherche dans les sources du site, je n'ai pas réussi à savoir le nombre de lignes dans un fichier .log
Je lance donc un appel... J'aimerais aussi savoir comment affecter une variable à la dernière ligne (pour extraire par exemple tous les caractères qui sont après les vingt premiers avec la fonction mid() )
voilà, je vous remercie d'avance

4 réponses

pcpunch Messages postés 1243 Date d'inscription mardi 7 mai 2002 Statut Membre Dernière intervention 18 février 2019 5
27 avril 2003 à 23:12
pour le nb de ligne ds un fichier!!

dim nb as integer
dim ligne as string
Open "fichier" for input as #1
do while not eof(1)
input #1,ligne
nb=nb+1
loop

'nb contien le nb de ligne et ligne le texte de la derniere ligne
'extraction apres les 20 dernier caracteres
ligne=Mid(ligne, 21)

voila, si g bien compris c ca que tu voulais???
0
K@zuya Messages postés 306 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 15 février 2016
27 avril 2003 à 23:14
j'ai fait un module pour te satisfaire, voici 2 fonctions l'une te renvois le nombre de lignes d'un fichier l'autre écrit un fichier contenant tout les charactères d'un fichier a partir d'un certain nombre de lignes

Public Function NB_Lignes(fichier As String) As Long
On Error Resume Next
Dim Lignes As Long
Dim chaine As StringIf Dir$(fichier) "" Then NB_Lignes 0: Exit Function

Open fichier For Input As #1
    Do While Not EOF(1)
        Line Input #1, chaine
        Lignes = Lignes + 1
    Loop
Close #1

NB_Lignes = Lignes

End Function

Public Sub Lire_Fichier(fichier As String, Ligne As Long)
On Error Resume Next
If Dir$(fichier) = "" Then
    MsgBox "Fichier introuvable !", vbCritical, "Attention"
    Exit Sub
End If

Open App.Path & "\Resultat.txt" For Output As #1: Close #1

Dim chaine As String
Dim Lignes As Long
Open fichier For Input As #1
    Do While Not EOF(1)
        Line Input #1, chaine
        Lignes = Lignes + 1
        If Lignes >= Ligne Then
            Open App.Path & "\Resultat.txt" For Append As #2
                Print #2, chaine
            Close #2
        End If
    Loop
Close #1
End Sub


por utiliser ces fonctions, voici un exemple:
Private Sub Command1_Click()
Text2.Text = NB_Lignes(Text1.Text)' text1 ext l'adresse de ton fichier text2 est le nombre de lignes kil trouve
End Sub

Private Sub Command2_Click()
Call Lire_Fichier(Text1.Text, Text3.Text) 'text1 est l'adresse de ton fichier, texte3 est la position a partire de laquelle tu vu commencer de lire
le tout s'écrit dans un fichier resultat.txt pas dans une variable pask'une variable est limitée en charactères
End Sub

K@zuya 8-)
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
28 avril 2003 à 05:04
dim nb as integer , LastLineStart as integer
dim ligne as string
Open "fichier" for input as #1
do while not eof(1)
LastLineStart = LastLineStart + len ( ligne )
input #1,ligne
nb=nb+1
loop

de sorte quen fin de boucle , nb soit le nombre de lignes , et LastLineStart , l'offset du debut de la derniere ligne, pour travailler sur le 20eme caractere de la derniere ligne , tu fera donc, par exemple

mid$ ( 21 + LastLineStart ).........
-----------------------------------------------------------------------
By Renfield

thomas_reynald@msn.com

Aucune touche n'a été bléssée lors de la saisie de ce texte..........
0
katarhackt669 Messages postés 22 Date d'inscription lundi 23 septembre 2002 Statut Membre Dernière intervention 21 juin 2004
28 avril 2003 à 15:51
merci mille fois à tous, c'est exactement ce dont j'avais besoin.
@+ peut-être sur le forum...
0
Rejoignez-nous