Page 1 sur 1
[R] FileRead "Error allocating memory."
Posté : mer. 10 juin 2009 00:46
par Yoyo86220
Bonjour,
je voudrais savoir si on peu faire quelque chose quand on veut lire un fichier très gros (environ 300mo) de la manière suivante:
$FileOpen = FileOpen($FileDir, 16)
$Value = FileRead($FileOpen)
Autoit m'indique l'erreur suivante:
"Error allocating memory."
Je présume qu'il manque de la mémoire... je voudrais savoir si il y a un moyen de contourner le problème en "coupant" le fichier en petit morceau et en le lisant après... voilà merci de votre aide!
Re: [..] FileRead "Error allocating memory."
Posté : mer. 10 juin 2009 01:25
par Iste
Oui en effet, fileopen = tout dans la ram !
Ca dépend de ce que tu veux faire, mais sinon tu peux
Chaque tour de boucle va lire 10mo, puis les 10 suivant ect
Re: [..] FileRead "Error allocating memory."
Posté : mer. 10 juin 2009 01:46
par SagePourpre
J'ai eu un problème similaire il y'a peu de temps...
La réponse est dans le fichier d'aide et expliquée très simplement. Mais j'avoue avoir passé à côté
de cette information la première fois.
Code : Tout sélectionner
$source = "Fichier à ouvrir.ext"
$f = FileOpen($source)
$len = FileGetSize($source)
For $i = 1 To $len
$fr = FileRead($f,1)
MsgBox(0,"Position : " & $i,$fr)
Next
FileClose($f)
Aussi simple que ça

Re: [..] FileRead "Error allocating memory."
Posté : jeu. 18 juin 2009 13:29
par tolf
En fait, si vous n'avez pas assez de RAM, normal que vous ne pouvez pas tout stocker dedans.
De plus, il me semble qu'il y a une taille maximale pour les strings d'AutoIt (à vérifier).
De toute façon, si vous traitez votre fichier caractère par caractère, inutile de le stocker dans la RAM.
Re: [..] FileRead "Error allocating memory."
Posté : dim. 28 juin 2009 19:43
par JIF
Re: [..] FileRead "Error allocating memory."
Posté : lun. 29 juin 2009 01:33
par SagePourpre
Ce tutoriel n'est par contre pas une bonne idée dans ce cas-ci
J'ai 4 gb de mémoire vive et si j'essayais d'ouvrir le fichier comme il l'à fait, j'aurais un problème d'allocation
de mémoire aussi.
Son problème est vraiment dû à la mauvaise utilisation de Fileread...