IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP Discussion :

Temporisation de script ASP


Sujet :

ASP

  1. #1
    Membre régulier
    Inscrit en
    Août 2005
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 126
    Points : 73
    Points
    73
    Par défaut Temporisation de script ASP
    Bonjour,

    je suis face à un problème étranger en ASP et je ne sais pas vraiment si le titre est adéquat. Voici un bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    mTab=array("personne.txt","adresse.txt","voiture.txt","adresse.txt"...) //12 fichiers en tout
    dirOUT=Server.MapPath("stats/data/") //initialise le répertoire
    for a=0 to ubound(mTab)
       Set FS = Server.CreateObject("Scripting.FileSystemObject")    //création de l'objet FSO
       FileToPut= dirOUT & "/" & mTab(a)    //initialisation du fichier
       response.write (a) // code de debug
        if FS.FileExists(FileToPut) then   //si le fichier existe
          Set mFile = FS.OpenTextFile(FileToPut, 1,false)
          While not mFile.atEndOfStream       //lecture ligne par ligne
              tmp=mFile.readLine
              if tmp <> "" then
                 // Traitement
              end if
          Wend
          response.write(StatHorizontal(val,lib))       //appel à une fonction
       end if
       set mFile=Nothing
       set FS=nothing
    next
    La boucle "For...Next" boucle sur 12 fichiers qui permettent de générer des graphiques (12 fichiers, 12 graphiques).
    La fonction "StatHorizontal" est dans un fichier externe, c'est elle qui permet de générer des graphiques.

    Problème:
    J'ai tenté d'exécuter mon code avec 12 fichiers et seul 2 graphiques étaient générés (ceux correspondant au 1er et 8e fichier)

    J'ai donc retenter en ajoutant la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     response.write (a) // code de debug
    qu'on peut voir dans le code plus haut.
    il m'affiche 2 graphiques et les indices : 0,8,9,10,11

    Dans le même code ci-dessus, J'ai ligne la ligne suivante en commentaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     //response.write(StatHorizontal(val,lib))       //appel à une fonction
    Le navigateur n'affiche aucun graphique (normal), mais affiche les indices : 0,1,2,3,4,5,6,7,8,9,10,11


    Bizarre comme problème. Je me dis que le code avance rop vite, mais c'est comme si il ne boucle même pas sur une partie du tableau indices.

    Quelqu'un peut m'éclairer ???

    Merci


    P.S :Au cas où ca peut aider, voici le code de ma fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    Function StatHorizontal(strValue,strLabel)
     
    	myDataTabValue=split(strValue,"+")
    	myDataTabLabel=split(strLabel,"+")
     
    	Max=0
    	for i = 0 to ubound(myDataTabValue)
    		if (myDataTabValue(i)>Max) then
    			Max=myDataTabValue(i)
    		end if
    	next 
     
    	response.write("<table width='50%' border='0' class='edit'>")
    	for a=0 to ubound(myDataTabValue)
    		if myDataTabValue(a)<>"" then
    		if a mod 2=0 then
    			mClass="stat"
    		else
    			mClass="stat2"
    		end if
     
     
    		CellSize=(myDataTabValue(a)/Max)*100
    response.write(CellSize)
    		response.write ("<br>")
    		response.write("<tr><td width='5%'>" & myDataTabLabel(a) & "</td><td>")
    		response.write("<table border='0' class='edit' height='9'><tr><td width='" & CellSize & "%' class='" & mClass & "'></td><td>" & myDataTabValue(a) & "</td></tr></table>")
    		response.write("</td></tr>")
    		end if
    	next
     
    	response.write("</table>")
    End Function

  2. #2
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Points : 1 978
    Points
    1 978
    Par défaut
    Bonjour

    Je ne suis pas sur d'avoir tout compris a ton problème, mais je vois déjà une chose qui peut faire planter ton truc, et je parierais bien que c'est l'origine de ton problème : la portée des variables. Dans le code de ta fonction StatHorizontal, tu fais appel a une variable a (for a=...), qui est également utilisée dans le corps de ton programma. Si cette variable n'est pas déclarée en local, il s'agit de la même.

    Pour la déclarer en local et te protéger de ce genre de soucis, déclare les en local, c'est-à-dire que leur portée sera la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Function StatHorizontal(strValue,strLabel)
       dim a
       ...
    end function
    (c'est vrai pour toutes les variables, bien-sûr)

  3. #3
    Membre régulier
    Inscrit en
    Août 2005
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 126
    Points : 73
    Points
    73
    Par défaut
    ...
    Ok...coupable !
    c'était bien ca. La variable continuait à s'incrémenter dans ma fonction...
    J'ai du me brouiller avec monsieur "option explicit"


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 06/03/2006, 12h53
  2. Réponses: 1
    Dernier message: 03/03/2006, 13h38
  3. Réponses: 16
    Dernier message: 25/01/2006, 12h40
  4. lancer un script asp en ligne de commande
    Par niel5 dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 26/08/2005, 11h32
  5. Conflit entre javascript et script ASP
    Par Mvu dans le forum ASP
    Réponses: 2
    Dernier message: 22/02/2005, 16h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo