begin process at 2008 08 29 06:18:57
1 233 514 membres
54 nouveaux aujourd'hui
14 291 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Lecture de fichiers - comprend pas [ Archives Visual Basic / J'AI BESOIN D'AIDE !!!! :) ] (deadisdead)

Lecture de fichiers - comprend pas le 05/07/2004 16:11:57

deadisdead
Voilà, j'ai un fichier texte qui doit faire dans les 85 Ko et j'aimerais le lire en entier (peut importe comment, c'est pas le problème). Je fais un truc tout con, par exemple :

Dim fsource As Integer
Dim temp As String

fsource = FreeFile
Open CStr(txtSource) For Input As #fsource

temp = Input(10000, fsource)

Et la, il me dit que "L'entrée dépasse la fin du fichier" (???). Ca fait un moment que je me prends la tete pour comprendre, mais je vois vraiment pas car je normalement loin de l'EOF... Et si je mets un compteur et que je lis les caractères un à un, il s'arrête vers les 6500.

Y'a des jours comme ça, ou c'est pas facile

Re : Lecture de fichiers - comprend pas le 05/07/2004 16:20:18

ITALIA
Membre Club
Open CheminFichier For Input As #1
Do Until EOF(1)
Line Input #1, ligne


'Traitement

Loop
Close #1

It@li@

Re : Lecture de fichiers - comprend pas le 05/07/2004 16:30:41

deadisdead
J'ai essayé ta méthode Italia, mais ça ne marche toujours pas. Il ne va pas jusqu'à la fin REELLE du fichier. Il s'arrête en cours de route, je ne sais pourquoi... et c'est ça que j'arrive pas à comprendre.

Re : Lecture de fichiers - comprend pas le 05/07/2004 16:47:57

Mooiz
Qu'est ce qu'il y a dans ton fichier ? c'est du texte écrit à la main ou entré à partir d'un bout de code ? dans ce cas, le dernier caractère lu serait pas un caractère de fin de fichier ? ca expliquerait le problème
sinon je vois pas

Re : Lecture de fichiers - comprend pas le 05/07/2004 16:51:50

ITALIA
Membre Club
au pire tu le Load dans un textBox avant de le Parcourir ...
et tu parcour plutot toute les lignes de ta text Box !!


t'as pas un probléme de declaration de variables...

car j'en parcour des beaucoup plus gros de cette Maniére !

It@li@

Re : Lecture de fichiers - comprend pas le 05/07/2004 16:57:24

Houzefa
tu sais, ya des trucs qui peuvent arriver parfois et qui nous dépassent... jsui justement en train de participer à la réalisation d'un site sur la magie, etc. alors jcommence à etre habitué...

que penses-tu de l'utilisation des API de Windows ?
Const GENERIC_READ = &H80000000
Const FILE_SHARE_READ = &H1
Const OPEN_EXISTING = 3
Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, ByVal lpSecurityAttributes As Any, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
Private Declare Function GetFileSize Lib "kernel32" (ByVal hFile As Long, lpFileSizeHigh As Long) As Long
Private Declare Function ReadFile Lib "kernel32" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToRead As Long, lpNumberOfBytesRead As Long, ByVal lpOverlapped As Any) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Sub Form_Load()
Dim Ouverture As Long
Dim Taille As Long
Dim Buffer() As Byte
Dim Retour As Long
Ouverture = CreateFile("C:\test.txt", GENERIC_READ, FILE_SHARE_READ, ByVal 0, OPEN_EXISTING, 0, 0)
Taille = GetFileSize(Ouverture, 0)
ReDim Buffer(1 To Taille - Int(Taille / 2)) As Byte
ReadFile Ouverture, Buffer(1), UBound(Buffer), Retour, ByVal 0
If Retour <> UBound(Buffer) Then MsgBox "Erreur", vbCritical
CloseHandle Ouverture
End Sub


Houzéf@ - www.123toto.com

Re : Lecture de fichiers - comprend pas le 05/07/2004 17:18:31

rene38
Bonjour
Et pourquoi pas lire tout le fichier :
temp = Input(LOF(fsource), fsource) ?

Re : Lecture de fichiers - comprend pas le 05/07/2004 17:23:44

Houzefa
parce que il est un peu trop grand et qu'il faut donc utiliser un buffer...

Houzéf@ - www.123toto.com

Re : Lecture de fichiers - comprend pas le 05/07/2004 17:44:53

rene38

Dim temp As String, fsource As Integer
fsource = FreeFile
Open "C:\Chemin\NomFichier" For Input As #fsource
MsgBox LOF(fsource) ' Réponse : 105320 > 102 ko
temp = Input(LOF(fsource), fsource)
Close 1
Debug.Print Mid$(temp, 105250)
' il écrit sans problème les 71 derniers caractères

Re : Lecture de fichiers - comprend pas le 05/07/2004 17:50:59

rene38
si on veut absolument avoir un tampon, entre

Open "C:\Chemin\NomFichier" For Input As #fsource

et

temp = Input(LOF(fsource), fsource)

ajouter :

temp = Space$(LOF(fsource))


[Page 1 Page 2]
Classé sous : fichier, lecture, fichiers, comprend, fsource

Participer à cet échange

Pub



Appels d'offres

Recherche developpeur ...
Budget : 700€
SITE MARCHAND LOCATION...
Budget : 3 000€
SITE MARCHAND POUR HOTEL
Budget : 4 000€

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS