je récupère le code source d'une page Internet
quand j'ouvre avec le bloc note ce fichier le saut de ligne ou retour
chariot est représenté par un carré, mais le fichier ne contient qu'une
ligne en faite
quand j'ouvre ce fichier par Vb et que je fait un msgbox sur ce fichier
j'ai bien toutes mes lignes dans la box.
par contre lorsque je veux traiter ce fichier pour en faire un tableau
par la fonction split(fichier.txt , vbCrLf) celui ci me renvoi qu'une
ligne aussi, il ne prend pas en compte le retour chariot et saut de
ligne
merci d'avance
JP
--
Adresse mail : john-pet@wanadoo.fr
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jean-marc
John-Pet wrote:
Bonsoir
je récupère le code source d'une page Internet quand j'ouvre avec le bloc note ce fichier le saut de ligne ou retour chariot est représenté par un carré, mais le fichier ne contient qu'une ligne en faite quand j'ouvre ce fichier par Vb et que je fait un msgbox sur ce fichier j'ai bien toutes mes lignes dans la box. par contre lorsque je veux traiter ce fichier pour en faire un tableau par la fonction split(fichier.txt , vbCrLf) celui ci me renvoi qu'une ligne aussi, il ne prend pas en compte le retour chariot et saut de ligne
merci d'avance
JP
Le fichier que tu as récupéré est au format Unix. Dans ce format, les passages à la ligne ne sont pas constitués de CR/LF mais simplement de LF.
Tu peux splitter avec vbLf au lieu de vbCrlF.
Tu peux aussi mettre le contenu du fichier dans un buffer, et faire un global replace vbLf vbCrlf; Puis tu splittes normalement avec vbCrLf.
je récupère le code source d'une page Internet
quand j'ouvre avec le bloc note ce fichier le saut de ligne ou retour
chariot est représenté par un carré, mais le fichier ne contient
qu'une ligne en faite
quand j'ouvre ce fichier par Vb et que je fait un msgbox sur ce
fichier j'ai bien toutes mes lignes dans la box.
par contre lorsque je veux traiter ce fichier pour en faire un tableau
par la fonction split(fichier.txt , vbCrLf) celui ci me renvoi qu'une
ligne aussi, il ne prend pas en compte le retour chariot et saut de
ligne
merci d'avance
JP
Le fichier que tu as récupéré est au format Unix. Dans ce format,
les passages à la ligne ne sont pas constitués de CR/LF mais
simplement de LF.
Tu peux splitter avec vbLf au lieu de vbCrlF.
Tu peux aussi mettre le contenu du fichier dans un buffer, et faire
un global replace vbLf vbCrlf; Puis tu splittes normalement
avec vbCrLf.
je récupère le code source d'une page Internet quand j'ouvre avec le bloc note ce fichier le saut de ligne ou retour chariot est représenté par un carré, mais le fichier ne contient qu'une ligne en faite quand j'ouvre ce fichier par Vb et que je fait un msgbox sur ce fichier j'ai bien toutes mes lignes dans la box. par contre lorsque je veux traiter ce fichier pour en faire un tableau par la fonction split(fichier.txt , vbCrLf) celui ci me renvoi qu'une ligne aussi, il ne prend pas en compte le retour chariot et saut de ligne
merci d'avance
JP
Le fichier que tu as récupéré est au format Unix. Dans ce format, les passages à la ligne ne sont pas constitués de CR/LF mais simplement de LF.
Tu peux splitter avec vbLf au lieu de vbCrlF.
Tu peux aussi mettre le contenu du fichier dans un buffer, et faire un global replace vbLf vbCrlf; Puis tu splittes normalement avec vbCrLf.
je récupère le code source d'une page Internet quand j'ouvre avec le bloc note ce fichier le saut de ligne ou retour chariot est représenté par un carré, mais le fichier ne contient qu'une ligne en faite quand j'ouvre ce fichier par Vb et que je fait un msgbox sur ce fichier j'ai bien toutes mes lignes dans la box. par contre lorsque je veux traiter ce fichier pour en faire un tableau par la fonction split(fichier.txt , vbCrLf) celui ci me renvoi qu'une ligne aussi, il ne prend pas en compte le retour chariot et saut de ligne
merci d'avance
JP
Le fichier que tu as récupéré est au format Unix. Dans ce format, les passages à la ligne ne sont pas constitués de CR/LF mais simplement de LF.
Tu peux splitter avec vbLf au lieu de vbCrlF.
Tu peux aussi mettre le contenu du fichier dans un buffer, et faire un global replace vbLf vbCrlf; Puis tu splittes normalement avec vbCrLf.
Et voila :-)
Ok merci pour les renseignements cela fonctionne
++
JP
-- Adresse mail : Ceci est une signature automatique de MesNews. Site : http://www.mesnews.net
Jean-marc a formulé la demande :
John-Pet wrote:
Bonsoir
je récupère le code source d'une page Internet
quand j'ouvre avec le bloc note ce fichier le saut de ligne ou retour
chariot est représenté par un carré, mais le fichier ne contient
qu'une ligne en faite
quand j'ouvre ce fichier par Vb et que je fait un msgbox sur ce
fichier j'ai bien toutes mes lignes dans la box.
par contre lorsque je veux traiter ce fichier pour en faire un tableau
par la fonction split(fichier.txt , vbCrLf) celui ci me renvoi qu'une
ligne aussi, il ne prend pas en compte le retour chariot et saut de
ligne
merci d'avance
JP
Le fichier que tu as récupéré est au format Unix. Dans ce format,
les passages à la ligne ne sont pas constitués de CR/LF mais
simplement de LF.
Tu peux splitter avec vbLf au lieu de vbCrlF.
Tu peux aussi mettre le contenu du fichier dans un buffer, et faire
un global replace vbLf vbCrlf; Puis tu splittes normalement
avec vbCrLf.
Et voila :-)
Ok merci pour les renseignements
cela fonctionne
++
JP
--
Adresse mail : john-pet@wanadoo.fr
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net
je récupère le code source d'une page Internet quand j'ouvre avec le bloc note ce fichier le saut de ligne ou retour chariot est représenté par un carré, mais le fichier ne contient qu'une ligne en faite quand j'ouvre ce fichier par Vb et que je fait un msgbox sur ce fichier j'ai bien toutes mes lignes dans la box. par contre lorsque je veux traiter ce fichier pour en faire un tableau par la fonction split(fichier.txt , vbCrLf) celui ci me renvoi qu'une ligne aussi, il ne prend pas en compte le retour chariot et saut de ligne
merci d'avance
JP
Le fichier que tu as récupéré est au format Unix. Dans ce format, les passages à la ligne ne sont pas constitués de CR/LF mais simplement de LF.
Tu peux splitter avec vbLf au lieu de vbCrlF.
Tu peux aussi mettre le contenu du fichier dans un buffer, et faire un global replace vbLf vbCrlf; Puis tu splittes normalement avec vbCrLf.
Et voila :-)
Ok merci pour les renseignements cela fonctionne
++
JP
-- Adresse mail : Ceci est une signature automatique de MesNews. Site : http://www.mesnews.net
Jean-marc
John-Pet wrote:
Jean-marc a formulé la demande :
Ok merci pour les renseignements cela fonctionne
Merci du retour.
Je suis en veine d'inspiration ce soir.
Voici un splitter de fichier texte universel:
Public Function splitUniversal(ByVal fName As String, _ ByRef t() As String) As Integer Dim buffer As String Dim f As Integer
On Error GoTo splitUniversal_ERR
f = FreeFile Open fName For Binary As #f buffer = Space$(LOF(f)) Get #f, , buffer Close #f If InStr(buffer, vbCrLf) > 0 Then ' DOS format ? t() = Split(buffer, vbCrLf) ElseIf InStr(buffer, vbLf) > 0 Then ' Unix ? t() = Split(buffer, vbCrLf) ElseIf InStr(buffer, vbCr) > 0 Then ' VMS ? t() = Split(buffer, vbCrLf) Else ' NO split ! t() = Split(buffer, "") End If
splitUniversal_END: Exit Function splitUniversal_ERR: splitUniversal = Err.Number Resume splitUniversal_END End Function
Public Function splitUniversal(ByVal fName As String, _
ByRef t() As String) As Integer
Dim buffer As String
Dim f As Integer
On Error GoTo splitUniversal_ERR
f = FreeFile
Open fName For Binary As #f
buffer = Space$(LOF(f))
Get #f, , buffer
Close #f
If InStr(buffer, vbCrLf) > 0 Then ' DOS format ?
t() = Split(buffer, vbCrLf)
ElseIf InStr(buffer, vbLf) > 0 Then ' Unix ?
t() = Split(buffer, vbCrLf)
ElseIf InStr(buffer, vbCr) > 0 Then ' VMS ?
t() = Split(buffer, vbCrLf)
Else ' NO split !
t() = Split(buffer, "")
End If
splitUniversal_END:
Exit Function
splitUniversal_ERR:
splitUniversal = Err.Number
Resume splitUniversal_END
End Function
Public Function splitUniversal(ByVal fName As String, _ ByRef t() As String) As Integer Dim buffer As String Dim f As Integer
On Error GoTo splitUniversal_ERR
f = FreeFile Open fName For Binary As #f buffer = Space$(LOF(f)) Get #f, , buffer Close #f If InStr(buffer, vbCrLf) > 0 Then ' DOS format ? t() = Split(buffer, vbCrLf) ElseIf InStr(buffer, vbLf) > 0 Then ' Unix ? t() = Split(buffer, vbCrLf) ElseIf InStr(buffer, vbCr) > 0 Then ' VMS ? t() = Split(buffer, vbCrLf) Else ' NO split ! t() = Split(buffer, "") End If
splitUniversal_END: Exit Function splitUniversal_ERR: splitUniversal = Err.Number Resume splitUniversal_END End Function
Public Function splitUniversal(ByVal fName As String, _ ByRef t() As String) As Integer Dim buffer As String Dim f As Integer
On Error GoTo splitUniversal_ERR
f = FreeFile Open fName For Binary As #f buffer = Space$(LOF(f)) Get #f, , buffer Close #f If InStr(buffer, vbCrLf) > 0 Then ' DOS format ? t() = Split(buffer, vbCrLf) ElseIf InStr(buffer, vbLf) > 0 Then ' Unix ? t() = Split(buffer, vbCrLf) ElseIf InStr(buffer, vbCr) > 0 Then ' VMS ? t() = Split(buffer, vbCrLf) Else ' NO split ! t() = Split(buffer, "") End If
splitUniversal_END: Exit Function splitUniversal_ERR: splitUniversal = Err.Number Resume splitUniversal_END End Function
Si ça peut vous servir, tant mieux :o)
euh... Est ce bien normal que tu split toujours avec vbCrLf ??? et non pas avec vbCrLf (DOS) vbLf (Unix), vbCr (VMS). Copier / Coller ?
-- Cordialement,
Jacques.
Bonjour Jean-marc,
Jean-marc a écrit :
John-Pet wrote:
Jean-marc a formulé la demande :
Ok merci pour les renseignements
cela fonctionne
Merci du retour.
Je suis en veine d'inspiration ce soir.
Voici un splitter de fichier texte universel:
Public Function splitUniversal(ByVal fName As String, _
ByRef t() As String) As Integer
Dim buffer As String
Dim f As Integer
On Error GoTo splitUniversal_ERR
f = FreeFile
Open fName For Binary As #f
buffer = Space$(LOF(f))
Get #f, , buffer
Close #f
If InStr(buffer, vbCrLf) > 0 Then ' DOS format ?
t() = Split(buffer, vbCrLf)
ElseIf InStr(buffer, vbLf) > 0 Then ' Unix ?
t() = Split(buffer, vbCrLf)
ElseIf InStr(buffer, vbCr) > 0 Then ' VMS ?
t() = Split(buffer, vbCrLf)
Else ' NO split !
t() = Split(buffer, "")
End If
splitUniversal_END:
Exit Function
splitUniversal_ERR:
splitUniversal = Err.Number
Resume splitUniversal_END
End Function
Si ça peut vous servir, tant mieux :o)
euh... Est ce bien normal que tu split toujours avec vbCrLf ??? et non
pas avec vbCrLf (DOS) vbLf (Unix), vbCr (VMS). Copier / Coller ?
Public Function splitUniversal(ByVal fName As String, _ ByRef t() As String) As Integer Dim buffer As String Dim f As Integer
On Error GoTo splitUniversal_ERR
f = FreeFile Open fName For Binary As #f buffer = Space$(LOF(f)) Get #f, , buffer Close #f If InStr(buffer, vbCrLf) > 0 Then ' DOS format ? t() = Split(buffer, vbCrLf) ElseIf InStr(buffer, vbLf) > 0 Then ' Unix ? t() = Split(buffer, vbCrLf) ElseIf InStr(buffer, vbCr) > 0 Then ' VMS ? t() = Split(buffer, vbCrLf) Else ' NO split ! t() = Split(buffer, "") End If
splitUniversal_END: Exit Function splitUniversal_ERR: splitUniversal = Err.Number Resume splitUniversal_END End Function
Si ça peut vous servir, tant mieux :o)
euh... Est ce bien normal que tu split toujours avec vbCrLf ??? et non pas avec vbCrLf (DOS) vbLf (Unix), vbCr (VMS). Copier / Coller ?
-- Cordialement,
Jacques.
Jean-marc
Jacques93 wrote:
Bonjour Jean-marc,
euh... Est ce bien normal que tu split toujours avec vbCrLf ??? et non pas avec vbCrLf (DOS) vbLf (Unix), vbCr (VMS). Copier / Coller ?
Je ne dirais qu'un mot : Arghhhhhhhhhh !!
Merci inifiniment Jacques, je ne devrais pas copier/coller/poster après une rude journée de travail :-(
Je rectifie donc :
Public Function splitUniversal(ByVal fName As String, _ ByRef t() As String) As Integer Dim buffer As String Dim f As Integer
On Error GoTo splitUniversal_ERR
f = FreeFile Open fName For Binary As #f buffer = Space$(LOF(f)) Get #f, , buffer Close #f If InStr(buffer, vbCrLf) > 0 Then ' DOS format ? t() = Split(buffer, vbCrLf) ElseIf InStr(buffer, vbLf) > 0 Then ' Unix ? t() = Split(buffer, vbLf) ElseIf InStr(buffer, vbCr) > 0 Then ' VMS ? t() = Split(buffer, vbCr) Else ' NO split ! t() = Split(buffer, "") End If
splitUniversal_END: Exit Function splitUniversal_ERR: splitUniversal = Err.Number Resume splitUniversal_END End Function
euh... Est ce bien normal que tu split toujours avec vbCrLf ??? et non
pas avec vbCrLf (DOS) vbLf (Unix), vbCr (VMS). Copier / Coller ?
Je ne dirais qu'un mot : Arghhhhhhhhhh !!
Merci inifiniment Jacques, je ne devrais pas copier/coller/poster après
une rude journée de travail :-(
Je rectifie donc :
Public Function splitUniversal(ByVal fName As String, _
ByRef t() As String) As Integer
Dim buffer As String
Dim f As Integer
On Error GoTo splitUniversal_ERR
f = FreeFile
Open fName For Binary As #f
buffer = Space$(LOF(f))
Get #f, , buffer
Close #f
If InStr(buffer, vbCrLf) > 0 Then ' DOS format ?
t() = Split(buffer, vbCrLf)
ElseIf InStr(buffer, vbLf) > 0 Then ' Unix ?
t() = Split(buffer, vbLf)
ElseIf InStr(buffer, vbCr) > 0 Then ' VMS ?
t() = Split(buffer, vbCr)
Else ' NO split !
t() = Split(buffer, "")
End If
splitUniversal_END:
Exit Function
splitUniversal_ERR:
splitUniversal = Err.Number
Resume splitUniversal_END
End Function
euh... Est ce bien normal que tu split toujours avec vbCrLf ??? et non pas avec vbCrLf (DOS) vbLf (Unix), vbCr (VMS). Copier / Coller ?
Je ne dirais qu'un mot : Arghhhhhhhhhh !!
Merci inifiniment Jacques, je ne devrais pas copier/coller/poster après une rude journée de travail :-(
Je rectifie donc :
Public Function splitUniversal(ByVal fName As String, _ ByRef t() As String) As Integer Dim buffer As String Dim f As Integer
On Error GoTo splitUniversal_ERR
f = FreeFile Open fName For Binary As #f buffer = Space$(LOF(f)) Get #f, , buffer Close #f If InStr(buffer, vbCrLf) > 0 Then ' DOS format ? t() = Split(buffer, vbCrLf) ElseIf InStr(buffer, vbLf) > 0 Then ' Unix ? t() = Split(buffer, vbLf) ElseIf InStr(buffer, vbCr) > 0 Then ' VMS ? t() = Split(buffer, vbCr) Else ' NO split ! t() = Split(buffer, "") End If
splitUniversal_END: Exit Function splitUniversal_ERR: splitUniversal = Err.Number Resume splitUniversal_END End Function