Lire text !

Résolu
Claiyah Messages postés 580 Date d'inscription mercredi 20 août 2008 Statut Membre Dernière intervention 20 avril 2010 - 5 nov. 2008 à 22:40
Claiyah Messages postés 580 Date d'inscription mercredi 20 août 2008 Statut Membre Dernière intervention 20 avril 2010 - 10 nov. 2008 à 22:56
bsr

svp ya t'il un moyen de lire un fichier text depuis la fin !!
c'est à dire a partir de la derniere ligne.
et aussi est ce c'est possible de récupérer le nombre de ligne dans un fichier text svp ?

merci d'avance

Les yeux montrent la force de l'âme

4 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
6 nov. 2008 à 17:21
> je veut spécifier le nombre de
lignes a lire (" par exemple : lire les 30 dernieres ligne d'un fichier
text et les ajouter ligne par ligne dans une list o listview)






ok donc c'est pas "lire depuis la fin" mais "ligne de N à la fin", c'est bien çà?

çà donne alors :



<hr />
'     RÉCUPÉRER UNE PARTIE D'UN FICHIER (LIGNE N À X)
'    http://www.codyx.org/snippet_recuperer-partie-fichier-ligne_730.aspx#2153
'    Posté par [ =401740 PCPT ] le 06/11/2008
<hr />




Public Function 
GetFilePart(
ByVal 
sPath 
As String
,
ByVal
lLineStart
As Long
,
ByVal
lLineStop
As Long
)
As String


'sPath      -> chemin, fichier DOIT exister


'lLineStart -> ligne de départ, commence à 1


'lLineStop  -> ligne de fin,  peut être supérieur au nombre
total


'lLineStart et lLineStop doivent être
logiques, pas de la ligne 8 à 5 par exemple

    Dim FF        As Integer
    Dim asLines() As String
    Dim sLine     As String
    Dim i         As Long
    FF  =  FreeFile
    i =  0
    ReDim asLines(lLineStart To lLineStop)
    Open sPath For Input As #FF
        Do While Not EOF(FF)
            i = i + 1
            Line Input #1, sLine
            If (i >= lLineStart) And (i <= lLineStop) Then
'               numéro ligne en
cours est dans la plage, on conserve
                asLines(i) = sLine
            ElseIf i > lLineStop Then
'               dernière lignes
"voulue" lue, pas besoin de parcourir le reste
                Exit Do
            End If
        Loop
    Close #FF
'  
dépassement?
    If lLineStop > i Then ReDim Preserve
asLines(lLineStart To
i)
    
'  
retour
    GetFilePart = Join(asLines, vbCrLf)
    Erase asLines
End Function
'
' ---------------------
' EXEMPLE
D'UTILISATION
'   on considère un fichier
contenant 20 lignes
'
---------------------
Private Sub Exemple()
'   retourne
tout
    MsgBox GetFilePart("c:\mon_fichier.txt", 1, 66)
'  
retourne les 5 dernières lignes
    MsgBox GetFilePart("c:\mon_fichier.txt", 15, 20)
    MsgBox GetFilePart("c:\mon_fichier.txt", 15, 300)
'  
retourne 5 lignes, depuis la l0ème
    MsgBox GetFilePart("c:\mon_fichier.txt", 10, 15)
End Sub





'----------------------------------------------------------------



'Remarques :


'pour savoir combien de lignes votre fichier contient, voir ici
:
'http://www.codyx.org/snippet_compter-nombre-lignes-fichier_729.aspx#2152














== > je veut savoir combien de ligne
contient un fichier text pour que je spécifie le nombre a lire depuis
la fin du fichier text






2 méthodes ici :



<hr />
'     COMPTER LE NOMBRE DE LIGNES D'UN FICHIER
'    http://www.codyx.org/snippet_compter-nombre-lignes-fichier_729.aspx#2152
'    Posté par [ =401740 PCPT ] le 06/11/2008
<hr />




'méthode rapide, ne permet pas l'accès à des fichiers trop
volumineux


Public Function 
CountFileLines(
ByVal 
sPath
As String
)
As Long

    Dim FF As Integer
    
    On Local Error GoTo Err_Handler
    FF  =  FreeFile
    Open sPath For Input As #FF
        On Local Error Resume Next
        CountFileLines = UBound(Split(Input(LOF(FF),
#FF), vbCrLf)) + 1
    Close #FF
    Exit Function
    
Err_Handler:
    Err.Clear
    CountFileLines = -1
End Function

'méthode un peu
plus lente, permettant l'ouverture de fichiers plus volumineux
Public Function CountFileLines(ByVal sPath As String) As Long
    Dim FF As Integer, sTemp As String
    On Local Error GoTo Err_Handler
    CountFileLines = 0
    FF = FreeFile
    Open sPath For Input As #FF
        Do While Not EOF(FF)
            Line Input #1, sTemp
            CountFileLines = CountFileLines + 1
        Loop
    Close #FF
    Exit Function
    
Err_Handler:
    Err.Clear
    CountFileLines = -1
End Function





'----------------------------------------------------------------



'Remarques :


'la première méthode est pratique uniquement pour les petits
fichiers, mais le chargera intégralement en mémoire
'
'la 2e méthode
risque d'être plus longue (pas sensible sur un fichier d'1 ou 2 Mo), mais ne
fait que compter









sur mesure...
++

<hr size ="2" width="100%" />
Prenez un instant pour répondre à [forum/sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp 
3
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
6 nov. 2008 à 04:45
salut,

"ya t'il un moyen de lire un fichier text depuis la fin"
=> oui mais la manière dépendra de l'usage, manque d'infos !!

"est possible de récupérer le nombre de ligne dans un fichier text"
=> oui MAIS pareil, dépendra de ce que tu fais ensuite des data, MANQUE D'INFOS !!!

<hr size="2" width="100%" />Prenez un instant pour répondre à [forum/sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp 
0
Claiyah Messages postés 580 Date d'inscription mercredi 20 août 2008 Statut Membre Dernière intervention 20 avril 2010 3
6 nov. 2008 à 13:56
salut

"ya t'il un moyen de lire un fichier text depuis la fin"
> je veut spécifier le nombre de lignes a lire (" par exemple : lire les 30 dernieres ligne d'un fichier text et les ajouter ligne par ligne dans une list o listview)
 "est possible de récupérer le nombre de ligne dans un fichier text"
> je veut savoir combien de ligne contient un fichier text pour que je spécifie le nombre a lire depuis la fin du fichier text

merci :x

Les yeux montrent la force de l'âme
0
Claiyah Messages postés 580 Date d'inscription mercredi 20 août 2008 Statut Membre Dernière intervention 20 avril 2010 3
10 nov. 2008 à 22:56
bsr
merci beaucoup PCPT tu a tjr été d'une grande aide

Les yeux montrent la force de l'âme
0
Rejoignez-nous