Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1710 connectés 

  FORUM HardWare.fr
  Programmation
  ASP

  simplifier une ligne de code ASP

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

simplifier une ligne de code ASP

n°476785
ZuL
Posté le 04-08-2003 à 11:38:14  profilanswer
 

on utilise l'objet Mala en ASP pour ceux qui connaissent...
 
y'a une ligne de code qui provoque systématiquement un dépassement mémoire...
 
Execute tblAssignNames(iCount) & " = """ & Replace(Replace(Replace(tblAssignValues(iCount) & "", """", """""" ), "''", "'" ), vbCrLf, """ & vbCrLf & """ ) & """"
 
 
vous auriez pas une idée pour la simplifier ? la décomposer ou un truc du style ?
 
merci d'avance :)

mood
Publicité
Posté le 04-08-2003 à 11:38:14  profilanswer
 

n°477466
MagicBuzz
Posté le 04-08-2003 à 20:26:50  profilanswer
 

Ca, ça fait forcément une erreur : la syntaxe est fausse.
 

& "", """", """""" )

n°477490
ZuL
Posté le 04-08-2003 à 20:52:28  profilanswer
 

MagicBuzz a écrit :

Ca, ça fait forcément une erreur : la syntaxe est fausse.
 

& "", """", """""" )




 
l'erreur c'est mémoire insuffisante :D
 
donc pas d'erreur de syntaxe.
 
le fait est que lorsque la chaine fait plus de 245000 et quelques caracteres, on dépasse la capacité [la taille maxi d'une string ? ] et ca provoque donc l'erreur tant ennervante : mémoire insuffisante....
 
que faire ?  [:tomawack]

n°477511
Gfreeman
http://www.FGFasp.com
Posté le 04-08-2003 à 21:15:32  profilanswer
 

découpe déjà ton code en plusieurs parties afin de voir si le problème vient de ton execute ou alors de la longueur de ta string. De mémoire, je crois me souvenir effectivement que la limite se situe dans cette zone là effectivement (~250000 caractères)

n°477521
MagicBuzz
Posté le 04-08-2003 à 21:22:27  profilanswer
 

Au fait, on peut savoir ce qui nécessite des replaces dans une chaîne aussi longue ?
 
Parceque...
 
1) La fonction replace, tout comme toute fonction de remplacement sera inversement proportionellement rapide que la chaîne sera longue... Y'a donc un problème de taille, tu vas tuer ton serveur là...
 
2) Tes replaces me font penser au nettoyage de données dans un fichier d'import... Y'a pas moyen de le traîter proprement, ligne par ligne, ou pas lots ?

n°477529
Gfreeman
http://www.FGFasp.com
Posté le 04-08-2003 à 21:31:14  profilanswer
 

Citation :

Au fait, on peut savoir ce qui nécessite des replaces dans une chaîne aussi longue


un journaliste en mal d'écriture :p

n°477538
ZuL
Posté le 04-08-2003 à 21:41:31  profilanswer
 

gfreeman a écrit :

découpe déjà ton code en plusieurs parties afin de voir si le problème vient de ton execute ou alors de la longueur de ta string. De mémoire, je crois me souvenir effectivement que la limite se situe dans cette zone là effectivement (~250000 caractères)


 
decoupage effectué ca revient au meme.
a la fin je fais un seul replace sur une seule variable et ca vautre pareil.
le fait est que je peux meme pas traiter ma chaine bout par bout et la reconcatener puisque 250.000 carac laxis de toute facon...on a pas des variables ultra longues en ASP ? faich'...

n°477541
ZuL
Posté le 04-08-2003 à 21:42:45  profilanswer
 

MagicBuzz a écrit :

Au fait, on peut savoir ce qui nécessite des replaces dans une chaîne aussi longue ?
 
Parceque...
 
1) La fonction replace, tout comme toute fonction de remplacement sera inversement proportionellement rapide que la chaîne sera longue... Y'a donc un problème de taille, tu vas tuer ton serveur là...
 
2) Tes replaces me font penser au nettoyage de données dans un fichier d'import... Y'a pas moyen de le traîter proprement, ligne par ligne, ou pas lots ?


 
c'est l'objet mala [un moteur de templates en ASP] donc j'y suis a peu pret pour rien ds le developpement...
la le probleme viendrait du fait qu'on atteint la limite de la taille des variables...et les découper je sais pas trop...c'est un objet utilisé sur tout le site ca risque de foutre un bordel... [:tomawack]

n°477551
Gfreeman
http://www.FGFasp.com
Posté le 04-08-2003 à 21:52:20  profilanswer
 

bah tu atteinds les limites d'un language donc forcement :( En plus le fait de doubler les " n'arrange rien :/

n°477663
ZuL
Posté le 05-08-2003 à 00:30:00  profilanswer
 

gfreeman a écrit :

bah tu atteinds les limites d'un language donc forcement :( En plus le fait de doubler les " n'arrange rien :/


 
y'a pas moyen de la contourner cette putain de limite ?
 
parce que 24 ko pour une chaine c'est pas enorme enorme hein...

mood
Publicité
Posté le 05-08-2003 à 00:30:00  profilanswer
 

n°477666
Taz
bisounours-codeur
Posté le 05-08-2003 à 00:44:06  profilanswer
 

moi j'y connais rien du tout mais ça ne serait pas moins gourmand si tu faisais replace par replace au lieu de les superposer?

n°477668
MagicBuzz
Posté le 05-08-2003 à 00:49:58  profilanswer
 

Ca fait pas 24 Ko, mais 240 Ko, ce qui est déjà énorme.
 
Deplus, c'est pas une limitation au niveau du type chaîne, mais de la fonction "replace", qui, je te l'ai dit, offrira des perfs extrêment dégradé. Trouve un moyen pour faire autrement.
 
Les chaînes en VB peuvent être bien plus longues (chais pu si c'est 2 Mo ou 2 Go, mais c'est énorme)

n°477669
MagicBuzz
Posté le 05-08-2003 à 00:52:19  profilanswer
 

Taz a écrit :

moi j'y connais rien du tout mais ça ne serait pas moins gourmand si tu faisais replace par replace au lieu de les superposer?


à mon avis, ça changera rien, la fonction replace est limitée en taille au niveau interne, et c'est pas réellement un problème de mémoire, mais un problème d'adressage dans la fonction.
 
Sinon, zul, va quand même faire un tour dans IIS et regarde l'occupation mémoire max pour un process. Ca pourrait venir de là (mais j'en doute un peu)

n°477683
ZuL
Posté le 05-08-2003 à 02:24:46  profilanswer
 

MagicBuzz a écrit :


à mon avis, ça changera rien, la fonction replace est limitée en taille au niveau interne, et c'est pas réellement un problème de mémoire, mais un problème d'adressage dans la fonction.
 
Sinon, zul, va quand même faire un tour dans IIS et regarde l'occupation mémoire max pour un process. Ca pourrait venir de là (mais j'en doute un peu)


 
ben le fait est qu'on a décomposé tous les replace
a la fin on ne fait plus qu'un
 
execute truc(icount) & "="" tmp &"""  
 
ou un machin du style et la boom.
 
ceci dit, vu que la chaine n'est pas tres cohérente [des cotes des VbCrtl et des conneries] je me demande si je vais pas eliminer d'office tout ce qui fait plus de 240000 chars...
 
 
la suite demaing :D
 
merci pour vos réponses  :hello:


Message édité par ZuL le 05-08-2003 à 02:25:47

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  ASP

  simplifier une ligne de code ASP

 

Sujets relatifs
concours de codeCode perl non interprété sur apache.
[C++] Concours de code : new test en cours, proposez votre solution !Remplacer une ligne dans un fichier
Développer un système de paiement en ligne,c'est possible avec PayPal?[python]Question de saut de ligne
un code qui marche sous ie5.5 mais pas sous ie6[VB6] Datagrid et ajout d'enregistrement via code
[HTML] Comment éviter de copier-coller du code sur chaque page ?Prob important ! Mon code ne s'exécute plus !
Plus de sujets relatifs à : simplifier une ligne de code ASP


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR