Claiyah
Messages postés580Date d'inscriptionmercredi 20 août 2008StatutMembreDernière intervention20 avril 2010
-
5 nov. 2008 à 22:40
Claiyah
Messages postés580Date d'inscriptionmercredi 20 août 2008StatutMembreDernière intervention20 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 ?
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 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 çà?
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
'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
'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
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 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
Claiyah
Messages postés580Date d'inscriptionmercredi 20 août 2008StatutMembreDernière intervention20 avril 20103 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