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

Code : Tout sélectionner

while 1 
FileRead ("fichiergros", 10000)
wend
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
Ce tutoriel devrai suffire si tu a Windows XP.

http://www.aidoforum.com/tutoriaux-421- ... emory.html

Re: [..] FileRead "Error allocating memory."

Posté : lun. 29 juin 2009 01:33
par SagePourpre
JIF a écrit :Ce tutoriel devrai suffire si tu a Windows XP.

http://www.aidoforum.com/tutoriaux-421- ... emory.html

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...