OVH Cloud OVH Cloud

Afficher un fichier texte de plus de 64K dans un textbox...

5 réponses
Avatar
Rank
Bonjour à tous!

j'ai une application qui cré et lit un fichier Journal...

La création n'est pas un probleme...
L'affichage se fait dans un textbox et tant que le fichier ne fait pas 64K,
tout va bien...
mais voilà, au dessus de 64K, le fichier ne s'affiche plus...

que j'utilise cette méthode:

Code:
Public Function ReadFile() As String
On Error GoTo Err_ReadFile

Dim sLigne As String
Dim iNumFich As Integer

iNumFich = FreeFile

Open App.Path & "\Journal.txt" For Input As iNumFich

'Vide le textbox
frmBackupBD!txtJournal.Text = ""

'Lis chaque ligne du fichier jusqu'à EOF
Do While Not EOF(iNumFich)
Line Input #iNumFich, sLigne
'Ajoute la ligne lue au textbox
frmBackupBD!txtJournal.Text = frmBackupBD!txtJournal.Text &
sLigne & vbCrLf
Loop
Close

'Si pas d'erreur, ReadFile = "", sinon, readFile = err.description
ReadFile = ""

Exit_ReadFile:
Exit Function
Err_ReadFile:
ReadFile = "Erreur No " & Err.Number & ": " & vbCrLf &
Err.Description
Resume Exit_ReadFile
End Function


assez lente ou cette autre méthode, plus rapide:

Code:
txtJournal.Text = ReadFile(App.Path & "\Journal.txt")

'Lecture d'un fichier passé en argument et retour du contenu en string
Public Function ReadFile(ByRef sFile As String) As String
On Error GoTo Err_ReadFile

Dim hFile As Integer

'Lis le fichier complet et le place dans ReadFile
hFile = FreeFile
Open sFile For Binary As #hFile
ReadFile = String$(LOF(hFile), Chr$(0))
Get #hFile, , ReadFile
Close #hFile

Exit_ReadFile:
Exit Function
Err_ReadFile:
ReadFile = "Erreur No " & Err.Number & ": " & Err.Description
Resume Exit_ReadFile
End Function


le résultat est le même, l'affichage sesse au 65536eme caractère...

Quoi faire pour que le textbox affiche le fichier complet???

Je vous remercie à l'avance pour l'aide éventuelle!
Bonne journée!

5 réponses

Avatar
Patrice Lamarche
Bonjour,
tu peux prendre le RichTextbox a la place. Tu arrive a la limite du
controle.

Cordiallement

Patrice
"Rank" wrote in message
news:
Bonjour à tous!

j'ai une application qui cré et lit un fichier Journal...

La création n'est pas un probleme...
L'affichage se fait dans un textbox et tant que le fichier ne fait pas


64K,
tout va bien...
mais voilà, au dessus de 64K, le fichier ne s'affiche plus...

que j'utilise cette méthode:

Code:
Public Function ReadFile() As String
On Error GoTo Err_ReadFile

Dim sLigne As String
Dim iNumFich As Integer

iNumFich = FreeFile

Open App.Path & "Journal.txt" For Input As iNumFich

'Vide le textbox
frmBackupBD!txtJournal.Text = ""

'Lis chaque ligne du fichier jusqu'à EOF
Do While Not EOF(iNumFich)
Line Input #iNumFich, sLigne
'Ajoute la ligne lue au textbox
frmBackupBD!txtJournal.Text = frmBackupBD!txtJournal.Text &
sLigne & vbCrLf
Loop
Close

'Si pas d'erreur, ReadFile = "", sinon, readFile err.description
ReadFile = ""

Exit_ReadFile:
Exit Function
Err_ReadFile:
ReadFile = "Erreur No " & Err.Number & ": " & vbCrLf &
Err.Description
Resume Exit_ReadFile
End Function


assez lente ou cette autre méthode, plus rapide:

Code:
txtJournal.Text = ReadFile(App.Path & "Journal.txt")

'Lecture d'un fichier passé en argument et retour du contenu en


string
Public Function ReadFile(ByRef sFile As String) As String
On Error GoTo Err_ReadFile

Dim hFile As Integer

'Lis le fichier complet et le place dans ReadFile
hFile = FreeFile
Open sFile For Binary As #hFile
ReadFile = String$(LOF(hFile), Chr$(0))
Get #hFile, , ReadFile
Close #hFile

Exit_ReadFile:
Exit Function
Err_ReadFile:
ReadFile = "Erreur No " & Err.Number & ": " & Err.Description
Resume Exit_ReadFile
End Function


le résultat est le même, l'affichage sesse au 65536eme caractère...

Quoi faire pour que le textbox affiche le fichier complet???

Je vous remercie à l'avance pour l'aide éventuelle!
Bonne journée!




Avatar
+The_Taco+
Tu devrais peut-être essayer de stocker l'information dans un textField au
lieu d'un textBox. Je crois qu'en effet le textBox a une grandeur maximum...

Cheers!

"Rank" a écrit dans le message de
news:
Bonjour à tous!

j'ai une application qui cré et lit un fichier Journal...

La création n'est pas un probleme...
L'affichage se fait dans un textbox et tant que le fichier ne fait pas


64K,
tout va bien...
mais voilà, au dessus de 64K, le fichier ne s'affiche plus...

que j'utilise cette méthode:

Code:
Public Function ReadFile() As String
On Error GoTo Err_ReadFile

Dim sLigne As String
Dim iNumFich As Integer

iNumFich = FreeFile

Open App.Path & "Journal.txt" For Input As iNumFich

'Vide le textbox
frmBackupBD!txtJournal.Text = ""

'Lis chaque ligne du fichier jusqu'à EOF
Do While Not EOF(iNumFich)
Line Input #iNumFich, sLigne
'Ajoute la ligne lue au textbox
frmBackupBD!txtJournal.Text = frmBackupBD!txtJournal.Text &
sLigne & vbCrLf
Loop
Close

'Si pas d'erreur, ReadFile = "", sinon, readFile err.description
ReadFile = ""

Exit_ReadFile:
Exit Function
Err_ReadFile:
ReadFile = "Erreur No " & Err.Number & ": " & vbCrLf &
Err.Description
Resume Exit_ReadFile
End Function


assez lente ou cette autre méthode, plus rapide:

Code:
txtJournal.Text = ReadFile(App.Path & "Journal.txt")

'Lecture d'un fichier passé en argument et retour du contenu en


string
Public Function ReadFile(ByRef sFile As String) As String
On Error GoTo Err_ReadFile

Dim hFile As Integer

'Lis le fichier complet et le place dans ReadFile
hFile = FreeFile
Open sFile For Binary As #hFile
ReadFile = String$(LOF(hFile), Chr$(0))
Get #hFile, , ReadFile
Close #hFile

Exit_ReadFile:
Exit Function
Err_ReadFile:
ReadFile = "Erreur No " & Err.Number & ": " & Err.Description
Resume Exit_ReadFile
End Function


le résultat est le même, l'affichage sesse au 65536eme caractère...

Quoi faire pour que le textbox affiche le fichier complet???

Je vous remercie à l'avance pour l'aide éventuelle!
Bonne journée!




Avatar
Bismark Prods
Effectivement !

Alors moi je vois 2 solutions que j'ai testée. Soit tu utilise un
RichTextBox, mais il plante assez vite. Soit tu crée un tableau texte dans
lequel tu morcelle ton texte par tranche de 64k et tu donne la possibilité
dans ta feuille de passer d'un morceau à l'autre. En avant, en arrière, ou
meme sauter plusieurs !

Voila bonne chance pour la suite

"Rank" a écrit dans le message de
news:
Bonjour à tous!

j'ai une application qui cré et lit un fichier Journal...

La création n'est pas un probleme...
L'affichage se fait dans un textbox et tant que le fichier ne fait pas


64K,
tout va bien...
mais voilà, au dessus de 64K, le fichier ne s'affiche plus...

que j'utilise cette méthode:

Code:
Public Function ReadFile() As String
On Error GoTo Err_ReadFile

Dim sLigne As String
Dim iNumFich As Integer

iNumFich = FreeFile

Open App.Path & "Journal.txt" For Input As iNumFich

'Vide le textbox
frmBackupBD!txtJournal.Text = ""

'Lis chaque ligne du fichier jusqu'à EOF
Do While Not EOF(iNumFich)
Line Input #iNumFich, sLigne
'Ajoute la ligne lue au textbox
frmBackupBD!txtJournal.Text = frmBackupBD!txtJournal.Text &
sLigne & vbCrLf
Loop
Close

'Si pas d'erreur, ReadFile = "", sinon, readFile err.description
ReadFile = ""

Exit_ReadFile:
Exit Function
Err_ReadFile:
ReadFile = "Erreur No " & Err.Number & ": " & vbCrLf &
Err.Description
Resume Exit_ReadFile
End Function


assez lente ou cette autre méthode, plus rapide:

Code:
txtJournal.Text = ReadFile(App.Path & "Journal.txt")

'Lecture d'un fichier passé en argument et retour du contenu en


string
Public Function ReadFile(ByRef sFile As String) As String
On Error GoTo Err_ReadFile

Dim hFile As Integer

'Lis le fichier complet et le place dans ReadFile
hFile = FreeFile
Open sFile For Binary As #hFile
ReadFile = String$(LOF(hFile), Chr$(0))
Get #hFile, , ReadFile
Close #hFile

Exit_ReadFile:
Exit Function
Err_ReadFile:
ReadFile = "Erreur No " & Err.Number & ": " & Err.Description
Resume Exit_ReadFile
End Function


le résultat est le même, l'affichage sesse au 65536eme caractère...

Quoi faire pour que le textbox affiche le fichier complet???

Je vous remercie à l'avance pour l'aide éventuelle!
Bonne journée!




Avatar
Bismark Prods
Correction ! on peut utiliser RichTextBox, ca fonctionne super mais il faut
juste faire attention lors du déchargement de la feuille, de vider le
controle de son texte sur le QueryUnload, car la quantité de texte ralenti
gravement le processus sinon !

"Rank" a écrit dans le message de
news:
Bonjour à tous!

j'ai une application qui cré et lit un fichier Journal...

La création n'est pas un probleme...
L'affichage se fait dans un textbox et tant que le fichier ne fait pas


64K,
tout va bien...
mais voilà, au dessus de 64K, le fichier ne s'affiche plus...

que j'utilise cette méthode:

Code:
Public Function ReadFile() As String
On Error GoTo Err_ReadFile

Dim sLigne As String
Dim iNumFich As Integer

iNumFich = FreeFile

Open App.Path & "Journal.txt" For Input As iNumFich

'Vide le textbox
frmBackupBD!txtJournal.Text = ""

'Lis chaque ligne du fichier jusqu'à EOF
Do While Not EOF(iNumFich)
Line Input #iNumFich, sLigne
'Ajoute la ligne lue au textbox
frmBackupBD!txtJournal.Text = frmBackupBD!txtJournal.Text &
sLigne & vbCrLf
Loop
Close

'Si pas d'erreur, ReadFile = "", sinon, readFile err.description
ReadFile = ""

Exit_ReadFile:
Exit Function
Err_ReadFile:
ReadFile = "Erreur No " & Err.Number & ": " & vbCrLf &
Err.Description
Resume Exit_ReadFile
End Function


assez lente ou cette autre méthode, plus rapide:

Code:
txtJournal.Text = ReadFile(App.Path & "Journal.txt")

'Lecture d'un fichier passé en argument et retour du contenu en


string
Public Function ReadFile(ByRef sFile As String) As String
On Error GoTo Err_ReadFile

Dim hFile As Integer

'Lis le fichier complet et le place dans ReadFile
hFile = FreeFile
Open sFile For Binary As #hFile
ReadFile = String$(LOF(hFile), Chr$(0))
Get #hFile, , ReadFile
Close #hFile

Exit_ReadFile:
Exit Function
Err_ReadFile:
ReadFile = "Erreur No " & Err.Number & ": " & Err.Description
Resume Exit_ReadFile
End Function


le résultat est le même, l'affichage sesse au 65536eme caractère...

Quoi faire pour que le textbox affiche le fichier complet???

Je vous remercie à l'avance pour l'aide éventuelle!
Bonne journée!




Avatar
Zoury
Salut!

D'ou provient le TextField? Quelle librairie?

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
"+The_Taco+" wrote in message
news:
Tu devrais peut-être essayer de stocker l'information dans un textField au
lieu d'un textBox. Je crois qu'en effet le textBox a une grandeur


maximum...

Cheers!

"Rank" a écrit dans le message de
news:
> Bonjour à tous!
>
> j'ai une application qui cré et lit un fichier Journal...
>
> La création n'est pas un probleme...
> L'affichage se fait dans un textbox et tant que le fichier ne fait pas
64K,
> tout va bien...
> mais voilà, au dessus de 64K, le fichier ne s'affiche plus...
>
> que j'utilise cette méthode:
>
> Code:
> Public Function ReadFile() As String
> On Error GoTo Err_ReadFile
>
> Dim sLigne As String
> Dim iNumFich As Integer
>
> iNumFich = FreeFile
>
> Open App.Path & "Journal.txt" For Input As iNumFich
>
> 'Vide le textbox
> frmBackupBD!txtJournal.Text = ""
>
> 'Lis chaque ligne du fichier jusqu'à EOF
> Do While Not EOF(iNumFich)
> Line Input #iNumFich, sLigne
> 'Ajoute la ligne lue au textbox
> frmBackupBD!txtJournal.Text = frmBackupBD!txtJournal.Text


&
> sLigne & vbCrLf
> Loop
> Close
>
> 'Si pas d'erreur, ReadFile = "", sinon, readFile > err.description
> ReadFile = ""
>
> Exit_ReadFile:
> Exit Function
> Err_ReadFile:
> ReadFile = "Erreur No " & Err.Number & ": " & vbCrLf &
> Err.Description
> Resume Exit_ReadFile
> End Function
>
>
> assez lente ou cette autre méthode, plus rapide:
>
> Code:
> txtJournal.Text = ReadFile(App.Path & "Journal.txt")
>
> 'Lecture d'un fichier passé en argument et retour du contenu en
string
> Public Function ReadFile(ByRef sFile As String) As String
> On Error GoTo Err_ReadFile
>
> Dim hFile As Integer
>
> 'Lis le fichier complet et le place dans ReadFile
> hFile = FreeFile
> Open sFile For Binary As #hFile
> ReadFile = String$(LOF(hFile), Chr$(0))
> Get #hFile, , ReadFile
> Close #hFile
>
> Exit_ReadFile:
> Exit Function
> Err_ReadFile:
> ReadFile = "Erreur No " & Err.Number & ": " & Err.Description
> Resume Exit_ReadFile
> End Function
>
>
> le résultat est le même, l'affichage sesse au 65536eme caractère...
>
> Quoi faire pour que le textbox affiche le fichier complet???
>
> Je vous remercie à l'avance pour l'aide éventuelle!
> Bonne journée!
>
>