[R] FileRead "Error allocating memory."

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
Yoyo86220
Niveau 6
Niveau 6
Messages : 238
Enregistré le : mer. 12 mars 2008 21:47
Status : Hors ligne

[R] FileRead "Error allocating memory."

#1

Message 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!
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

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

#2

Message 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
Signez ici
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

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

#3

Message 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 :)
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
tolf
Niveau 7
Niveau 7
Messages : 318
Enregistré le : ven. 15 févr. 2008 12:25
Localisation : Paris
Status : Hors ligne

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

#4

Message 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.
Lisez la documentation d'AutoIt en français (et participez svp :mrgreen:) !

Mes UDF :
[/i][/b]
JIF
Niveau 6
Niveau 6
Messages : 219
Enregistré le : mer. 04 févr. 2009 20:07
Localisation : 84
Status : Hors ligne

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

#5

Message par JIF »

Ce tutoriel devrai suffire si tu a Windows XP.

http://www.aidoforum.com/tutoriaux-421- ... emory.html
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

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

#6

Message 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...
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
Répondre