[R] Mon script plante à cause de la mémoire

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
moi
Niveau 7
Niveau 7
Messages : 370
Enregistré le : sam. 09 juil. 2011 22:14
Localisation : devant sont ordinateur
Status : Hors ligne

[R] Mon script plante à cause de la mémoire

#1

Message par moi »

Bonjour...
après quelque temps d'absence (honte intergalactique) je reviens vers vous, je vous dis "Bonjour..." et je vous demande un peu d'aide... j'ai un script assez petit qui entoure des mots de balises HTML (en faite c'est un peu le principe de Forum color réalisé par Vodoo mais pour du Html et surtout en plus petit...

Code : Tout sélectionner

#include <Array.au3>
#include <File.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
Global $Form1 = GUICreate("HTML colorateur", 676, 442, 192, 124)
Global $Tab1 = GUICtrlCreateTab(8, 8, 561, 425)
Global $TabSheet1 = GUICtrlCreateTabItem("code entrant")
Global $Edit1 = GUICtrlCreateEdit("", 16, 40, 545, 377)
Global $TabSheet2 = GUICtrlCreateTabItem("code sortant")
Global $Edit2 = GUICtrlCreateEdit("", 16, 40, 545, 377)
GUICtrlCreateTabItem("")
Global $demarrer = GUICtrlCreateButton("Démarrer", 569, 32, 95, 89)
Global $aretquit = GUICtrlCreateButton("Arreter & quitter", 568, 128, 99, 305)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
Global $listemots
Global $couleurmots
_FileReadToArray(@ScriptDir&"/liste.txt",$listemots)
_FileReadToArray(@ScriptDir&"/couleur.txt",$couleurmots)
While 1
 $nMsg = GUIGetMsg()
 Switch $nMsg
  Case $GUI_EVENT_CLOSE
   Exit
Case $aretquit
    Exit
Case $demarrer
    $read = GUICtrlRead($Edit1)
    If $read<>""Then
    For $i = 1 to UBound($listemots) step 1
    $read = StringReplace($read, $listemots[$i], '<span class="' & $couleurmots[$i] & '">'& $listemots[$i] & "</span>")
Next
MsgBox(4096,"finito mi amigo","l'opération est terminée")
GUICtrlSetData($Edit2,$read)
EndIf
 EndSwitch
WEnd
 
voila et ensuite un peut de css et c'est tout... un premier fichier .txt contient tout les mots qui peuvent être Entouré de balises (un mot = une ligne ) et un deuxième fichier .txt contient le nom des class pour le css. Les lignes des deux textes sont coordonnées (ligne 1 = ligne 1, ligne 2 = ligne 2, etc...)

bref à la fin j'ai une erreur "error allocating memory"

et je ne sais pas ce que c'est enfin si j'ai compris "erreur d'allocation de mémoire"(désolé si la traduction qui sort de ma tête n'est pas bonne)

comment faire pour que cela marche?

merci d'avance
Modifié en dernier par moi le mer. 02 mai 2012 13:09, modifié 3 fois.
le problème ce n'est pas un problème, le seul problème ici c'est nous.

j'aime NYAN CAT Image
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2130
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Mon script semble correcte pourtant il y a une erre

#2

Message par TommyDDR »

Je n'ai pas le temps de me pencher sur le sujet mais je vous conseille cependant de mettre un titre plus explicite que "j'ai un problème mais je ne sais pas d'où ça vient" avant que tlem ne rapplique ;)
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] j'ai un problème mais je ne sais pas d'où ça vient

#3

Message par mikell »

Que donnerait une condition restrictive du genre

Code : Tout sélectionner

Case $demarrer
    $read = GUICtrlRead($Edit1)
    If $read<>""Then
    For $i = 1 to UBound($listemots) 
    If StringInStr($read, $listemots[$i]) Then   ;<<<<<<<<<
        $read = StringReplace($read, $listemots[$i], '<span class="' & $couleurmots[$i] & '">'& $listemots[$i] & "</span>")
    EndIf
Next
MsgBox(4096,"finito mi amigo","l'opération est terminée")
GUICtrlSetData($Edit2,$read)
EndIf
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] j'ai un problème mais je ne sais pas d'où ça vient

#4

Message par Tlem »

@TommyDDR
C'est clair que le titre ne vaut pas un pet de lapin !!!
J'espère qu'il sera modifié d'ici demain soir ... :mrgreen:
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
moi
Niveau 7
Niveau 7
Messages : 370
Enregistré le : sam. 09 juil. 2011 22:14
Localisation : devant sont ordinateur
Status : Hors ligne

Re: [..] j'ai un problème mais je ne sais pas d'où ça vient

#5

Message par moi »

@Tlem : Le titre à été modifié.

@mikell : Toujours la même erreur
le problème ce n'est pas un problème, le seul problème ici c'est nous.

j'aime NYAN CAT Image
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2130
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Mon script semble correcte pourtant il y a une erre

#6

Message par TommyDDR »

TommyDDR a écrit :je vous conseille cependant de mettre un titre plus explicite que "j'ai un problème mais je ne sais pas d'où ça vient" avant que tlem ne rapplique ;)
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Mon script plante à cause de la mémoire

#7

Message par Tlem »

A première vue, je ne vois pas de problème majeur. Juste deux ou trois petites bricole sans gravité.

Il faudrait vois si cela ne vient pas de vos fichiers qui seraient trop lourd.^^
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
moi
Niveau 7
Niveau 7
Messages : 370
Enregistré le : sam. 09 juil. 2011 22:14
Localisation : devant sont ordinateur
Status : Hors ligne

Re: [..] Mon script plante à cause de la mémoire

#8

Message par moi »

chaque fichier txt fait moins de 1.7 Ko...
le problème ce n'est pas un problème, le seul problème ici c'est nous.

j'aime NYAN CAT Image
Avatar du membre
TT22
Membre émérite
Membre émérite
Messages : 1566
Enregistré le : lun. 18 avr. 2011 15:21
Localisation : La Quatrième Dimension
Status : Hors ligne

Re: [..] Mon script plante à cause de la mémoire

#9

Message par TT22 »

Salut, déjà il y a un problème ici :

Code : Tout sélectionner

    For $i = 1 to UBound($listemots)[b][color=#FF0000]-1[/color][/b] step 1[color=#00BF00][b];Ne pas oublier le -1 ![/b][/color]
        $read = StringReplace($read, $listemots[$i], '<span class="' & $couleurmots[$i] & '">'& $listemots[$i] & "</span>")
    Next
Et peut-être que la variable $read prend trop de place après le remplacement et que ça fait buger :wink:

Peux-tu nous donner les fichiers que tu utilises pour qu'on ai les même conditions que toi ?
Cordialement,
TT22
Avatar du membre
moi
Niveau 7
Niveau 7
Messages : 370
Enregistré le : sam. 09 juil. 2011 22:14
Localisation : devant sont ordinateur
Status : Hors ligne

Re: [..] Mon script plante à cause de la mémoire

#10

Message par moi »

pas de problèmes mais les fichiers sont longs plus de 200 lignes chacun.

en faite je pense que se sont les array qui sont trop lourds
Fichiers joints
liste.txt
(1.52 Kio) Téléchargé 51 fois
couleur.txt
(1.63 Kio) Téléchargé 69 fois
le problème ce n'est pas un problème, le seul problème ici c'est nous.

j'aime NYAN CAT Image
Avatar du membre
TT22
Membre émérite
Membre émérite
Messages : 1566
Enregistré le : lun. 18 avr. 2011 15:21
Localisation : La Quatrième Dimension
Status : Hors ligne

Re: [..] Mon script plante à cause de la mémoire

#11

Message par TT22 »

J'ai trouvé d'où vient ton problème :mrgreen:
Dans ton fichier "liste.txt" tu as par exemple

Code : Tout sélectionner

span
Ce qui veut dire que touts les span vont êtres remplacés par :

Code : Tout sélectionner

<span class=vertf>span</span>
Tu vois le problème ?
Ensuite, tous ces span vont être à nouveau remplacés ce qu nos donne :

Code : Tout sélectionner

<<span class=vertf>span</span> class=vertf><span class=vertf>span</span></<span class=vertf>span</span>>
Etc...


En plus, tu a mis dans "liste.txt": Donc tous les / sont remplacés par :

Code : Tout sélectionner

<span class=vertf>/</span>
Donc la chaine obtenu plus haut devient ceci :

Code : Tout sélectionner

<<span class=vertf>span<<span class=vertf>/</span>span> class=vertf><span class=vertf>span</span><<span class=vertf>/</span><span class=vertf>span<<span class=vertf>/</span>span>>
Pas étonnant qu'il n'y ait pas assez de mémoire et que le script plante :roll:

Donc, dans ton fichier "liste.txt", supprime toutes les lignes qui font un seul caractère (a, b, /, etc... )
Et la ligne qui contient le span

Et ça fonctionne !
Cordialement,
TT22
Avatar du membre
moi
Niveau 7
Niveau 7
Messages : 370
Enregistré le : sam. 09 juil. 2011 22:14
Localisation : devant sont ordinateur
Status : Hors ligne

Re: [..] Mon script plante à cause de la mémoire

#12

Message par moi »

alors il n'y aura que une seule couleur disponible mais bon ce n'est pas grave...

maintenant que ce problème est réglé je vais me pencher sur LUIGI ( il pourra répondre en jouant un son pré-enregistré...)
le problème ce n'est pas un problème, le seul problème ici c'est nous.

j'aime NYAN CAT Image
Avatar du membre
TT22
Membre émérite
Membre émérite
Messages : 1566
Enregistré le : lun. 18 avr. 2011 15:21
Localisation : La Quatrième Dimension
Status : Hors ligne

Re: [..] Mon script plante à cause de la mémoire

#13

Message par TT22 »

Pour faite parler ton LUIGI, tu peux utiliser cet UDF : http://www.autoitscript.fr/forum/viewto ... =21&t=9597

Et on n'oublie pas les bonne choses, si c'est résolu passe en [R] :mrgreen:
Cordialement,
TT22
Avatar du membre
moi
Niveau 7
Niveau 7
Messages : 370
Enregistré le : sam. 09 juil. 2011 22:14
Localisation : devant sont ordinateur
Status : Hors ligne

Re: [..] Mon script plante à cause de la mémoire

#14

Message par moi »

zut j'avais déja enregistrée les voix.

je passe en [R]
le problème ce n'est pas un problème, le seul problème ici c'est nous.

j'aime NYAN CAT Image
Répondre