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 :

probleme avec un array


Sujet :

ASP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Inscrit en
    Septembre 2002
    Messages
    270
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 270
    Par défaut probleme avec un array
    Salut,

    je voudrais créer un tableau avec a chaque fois les noms du fichier que j'ai dans mon repertoire.

    je pense que je dois utiliser redim pour ajouter le nom de mon fichiers a tableau (je ne connais pas le nombre de fichier a l'avance)

    mais je bloque un peu

    pourriez-vous m'aider?

    merci


    voila mon code test:
    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
    <html>
    <head>
    	<title>Untitled</title>
    	<%Set FSO = Server.CreateObject("Scripting.FileSystemObject")%>
    	<%dir = Server.MapPath("pix/")%>
     
    	<%set foldPt = FSO.GetFolder(dir)%>
    	<%set fc = foldPt.Files%>
    </head>
     
    <body>
    <%dim photo%>
    <%for each f in fc%>
     
     
    <%next%>
     
    <% 
    dim a
    a = array(photo)%>
    <%=a(0)%>
    il y a <%=fc.count%> fichiers
    </body>
    </html>

  2. #2
    Membre confirmé
    Inscrit en
    Septembre 2003
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 35
    Par défaut Reponse
    Salut,

    Pour redimensionner un tableau, il faut d'abord le déclarer.
    Par exemple :

    Dim a(3)

    et ensuite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    nb = fc.count
    Redim a(nb)

  3. #3
    Membre très actif
    Inscrit en
    Septembre 2002
    Messages
    270
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 270
    Par défaut
    j'ai modifié mon code comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <% 
    dim a(3)
     
    nb = fc.count
    redim a(nb)
    %>
    <%for each f in fc%>
    	<%a(f) = "historique" + f%>
    <%next%>
    et j'ai cette erreur

    Type d'erreur :
    Erreur d'exécution Microsoft VBScript (0x800A000A)
    Tableau fixe ou temporairement verrouillé
    /new/testefichier.asp, line 18
    peut tu m'aider?

    merci

    [Balise code ajoutée par jérôme]
    [Merci d'y penser vous-même à l'avenir]

  4. #4
    Membre confirmé
    Inscrit en
    Septembre 2003
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 35
    Par défaut Reponse
    Essaye ça :

    Cint : conversion de la variable nb en sous-type entier (Integer).

    Si ça marche pas non plus, dimensionne ton tableau dès le départ à un nombre que tu estimes supérieur au nombre de fichiers : si tu estimes le nombre maximum à 500, dimensionne le à 600, etc.

    Pour les balises <% et %>, c'est pas la peine d'en mettre sur chaque ligne : ça retarde l'interprétation du code.

  5. #5
    Membre confirmé
    Inscrit en
    Septembre 2003
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 35
    Par défaut Meilleur code
    J'ai pas compris pourquoi tu veux stocker les noms de fichiers dans un tableau.
    Il y a mieux : c'est créer un lien hypertexte pour chaque fichier affiché.
    Voilà le 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
     
    <%
    Dim fsys, dossier, collec, f, flist, chemin
    chemin="\monDossier"
    Set fsys=CreateObject("Scripting.FileSystemObject")
    Set dossier=fsys.GetFolder(Server.MapPath(chemin))
    Set collec=dossier.Files
    For Each f in collec
    	flist=flist + "<a href=""" & chemin & f.name """>" 
    	& f.Name & "</a><br>" 
    Next 
    Response.Write flist 
    Set fsys=Nothing
    Set dossier=Nothing 
    Set collec=Nothing  
    %>

  6. #6
    Membre très actif
    Inscrit en
    Septembre 2002
    Messages
    270
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 270
    Par défaut
    donné une dimension superieur suis pas trop pour.


    en fait c'est un peu plus compliqué que ca.

    je vais utilisé chaque photo pour une banière animée de 5 photos qui defile de haut en bas ou inverse.

    j'ai un nombre inconnu de photo et donc j'ai besoin d'un tableau avec les nom, pour pouvoir aller les rechercher une a une pour faire suivre mon anim.

    avec un tableau j'aurai deja toutes les références dont j'aurai besoin et je pourrai utiliser chaque photo indépendament

    merci

  7. #7
    Yoh
    Yoh est déconnecté
    Membre confirmé
    Inscrit en
    Juillet 2002
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 57
    Par défaut
    Salut,

    essai ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <% 
     
    Dim a
    a = Array()
     
    For Each f In fc
       Redim Preserve a(UBound(a)+1)
       a(UBound(a)) = "historique" + f
    Next%>

  8. #8
    Membre très actif
    Inscrit en
    Septembre 2002
    Messages
    270
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 270
    Par défaut
    merci ca marche a merveille

    je vais pouvoir m'y mettre serieux

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Par défaut
    Je me permets de compléter ce post pour l'étendre aux tableaux à plusieurs dimensions car j'ai eu la même erreur ("This array is fixed or temporarily locked" ou "Tableau fixe ou temporairement verrouillé") sur un tableau à deux dimensions :

    Dim a
    Redim a(3,0)
    au lieu de
    Dim a(3,0)

    Il faut dimensionner le tableau à une dimension, puis lui ajouter la deuxième avec un redim
    ensuite, on peut faire

    <%
    Dim a
    Redim a(3,0)
    'Dim a(3,0)

    fc = split("toto,titi,tutu,tyty",",")
    For Each f In fc
    Redim Preserve a(3,UBound(a,2)+1)
    a(1,UBound(a,2)) = f
    a(2,UBound(a,2)) = f
    a(3,UBound(a,2)) = f
    Next
    %>

    Bruno CATTEAU
    http://bruno.catteau.free.fr

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

Discussions similaires

  1. Probleme avec un public array/tableau de strings
    Par Nico820 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/07/2011, 12h04
  2. [MySQL] probleme avec un fetch array
    Par Kuchiki Byakuya dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 10/03/2010, 13h37
  3. probleme de tableau array avec la fonction array_push()
    Par carmen256 dans le forum Langage
    Réponses: 13
    Dernier message: 07/09/2009, 17h21
  4. probleme avec mysql fetch array
    Par philsand77 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 19/04/2007, 07h56
  5. Petit probleme avec Arrays.Sort(...)
    Par Seth77 dans le forum Collection et Stream
    Réponses: 11
    Dernier message: 15/01/2006, 12h48

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