Le Papa de Thibaut
Messages postés53Date d'inscriptionmercredi 22 novembre 2006StatutMembreDernière intervention 7 mars 2015
-
28 juil. 2007 à 23:17
Le Papa de Thibaut
Messages postés53Date d'inscriptionmercredi 22 novembre 2006StatutMembreDernière intervention 7 mars 2015
-
30 juil. 2007 à 14:48
Bonjour,
Je souhaite ouvrir des fichiers pour en extraire des données.
Lorsque je charge un fichier de plusieurs mégas dans une richtextbox, ça met du temps à charger or, les 500 premiers caractères me suffisent amplement.
Comment faire pour ne charger que les 500 premiers caractères d'un fichier sans devoir TOUT charger?
D'avance merci.
42wawa42
Messages postés143Date d'inscriptiondimanche 28 septembre 2003StatutMembreDernière intervention 6 septembre 2011 29 juil. 2007 à 20:11
Hello Le Papa de son fils...
La solution de Mortalino et votre réponse donne une erreur (ERR 62), si vous avez un fichier texte normal il n’y a pas d’erreur.
Je ne sais pas, quelle présentation vous voulez avoir.
Des caractères des chiffres ou des valeurs hexadécimal.
Pour les caractères il faut filtrer les valeurs de 0 a 31 (00h as 1Fh) car il influence la présentation sur votre écran.
Chiffres et Hexadécimal.
Une transformation de chaque byte soit en décimal ou hexadécimal n’est pas un grand problem.
Option Explicit
Const strFile As String = "C:\Documents and Settings\Daniel\My Documents\garmin\Scoutes.gdb"
Private Sub Command1_Click()
Dim strText As String
Dim i As Integer
Dim s As Byte
Dim strS As String
Open strFile For Binary As #1
For i = 1 To 500
Get #1, i, s
If Len(Hex(s)) = 1 Then
strS = "0" & Hex(s)
Else
strS = Hex(s)
End If
strText = strText & strS + " "
Next i
Close #FF
MsgBox strText & i
Text1.Text = strText
End Sub
Private Sub Form_Load()
Dim strText As String
Dim i As Integer
Dim s As Byte
Dim strS As String
Open strFile For Binary As #1
For i = 1 To 500
Get #1, i, s
strS = CStr(s)
strText = strText & s & " "
Next i
Close #FF
MsgBox strText & i
Text1.Text = strText
End Sub
Le Papa de Thibaut
Messages postés53Date d'inscriptionmercredi 22 novembre 2006StatutMembreDernière intervention 7 mars 20151 29 juil. 2007 à 00:08
Merci pour la réponse mais...
Dim A as string
Open Chemin for input as #1
A = Input (500,#1)
Close #1
réponse : "Err 62: L'entrée dépasse la fin de fichier"
sans doute car le fichier contient des caractères chr(0) qui se baladent.
Je ne souhaite pas m'arrêter avant d'avoir obtenu mes 500 caractères.
Merci de m'aider à résoudre ce très très léger bug.
Le Papa de Thibaut
Messages postés53Date d'inscriptionmercredi 22 novembre 2006StatutMembreDernière intervention 7 mars 20151 29 juil. 2007 à 22:34
Merci beaucoup
L'exemple m'a aidé à faire ce que je voulais
pour info, cela me sert à extraire la date de prise des photos enregistrées en jpeg. Ainsi, je peux classer les photos de mon bébé par date réelle de la photo et non par date de copie / modification des fichiers.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Le Papa de Thibaut
Messages postés53Date d'inscriptionmercredi 22 novembre 2006StatutMembreDernière intervention 7 mars 20151 30 juil. 2007 à 14:48
Merci pour ta seconde réponse mais, elle ne peut pas marcher car la date se trouve après un tas d'informations à longueur variables.
***************
Ma solution:
Je cherche le caractère : (2 points)
et je controle que je suis bien tombé sur ma date qui commence 4 caractères avant
le cas échéant, je cherche plus loin.
Exemple de date 2006:09:03 16:10:4
Dans mes statistiques, la date se trouve à l'emplacement 292 au maximum donc, en prenant les 400 ou 500 premiers caractères, je dois tomber dessus si c'est bien un jpeg.
ca marche tres bien.
Mon seul probleme étant de devoir charger des fichiers de 3Mo pour ne lire que les 400 premiers caractères. Quand on veut traiter plus de 1000 fichiers, on aime gagner quelques secondes à chaque scrut de boucle... Ta réponse "acceptée" m'a permi de comprendre binary et byte, ce qui est la solution du chargement partiel