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 :

Microsoft VBScript runtime error '800a01a8'


Sujet :

ASP

  1. #1
    Candidat au Club
    Inscrit en
    Mai 2005
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Microsoft VBScript runtime error '800a01a8'
    Bonjour à tous,

    Je suis entrain de réaliser un moteur de recherche devant fonctionner sur une partie d'un site intranet.
    A l'execution de mon fichier Recherche.asp, l'erreur suivante apparaît dans le navigateur:

    Microsoft VBScript runtime error '800a01a8'

    Object required: '[string: "French/"]'

    /Public/StaffServices/HumanResources/StaffManual2005/StaffManual/Recherche.asp, line 14

    Voici le début de mon fichier:

    <%@ LANGUAGE="VBSCRIPT" %>

    <html>
    <head>
    <title>Staff Manual</title>

    <%
    DIM keywords, termsArray, contenu, content, texte

    SET fso = Server.CreateObject("Scripting.FileSystemObject")
    ' Création d'un accès au système de fichiers
    ' L'instruction SET permet d'affecter une référence d'objet à une variable

    SET rep = "French/"
    ' Dossier dans lequel chercher

    Je ne comprends pas du tout l'erreur!
    Merci de me faire part de vos idées.
    Marlène.

  2. #2
    Membre averti Avatar de pmboutteau
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Février 2005
    Messages : 601
    Points : 420
    Points
    420
    Par défaut
    rep c'est quoi?

    si c'est une variable fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim rep
    rep="French/"
    Je crois que le set n'est pas le bienvenu là.
    ours ours !! Au début elle est froide mais après elle est bonne!

  3. #3
    Candidat au Club
    Inscrit en
    Mai 2005
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Microsoft VBScript runtime error '800a01a8'
    merci beaucoup, le problème est résolu
    (rep est le dossier dans lequel sont situés les fichiers à rechercher)
    par contre, j'en ai un autre!

    Microsoft VBScript runtime error '800a000d'

    Type mismatch: 'notag'

    /Public/StaffServices/HumanResources/StaffManual2005/StaffManual/Recherche.asp, line 51

    Voici mon code:

    <%
    DIM rep, dir
    DIM keywords, termsArray, contenu, content, texte

    SET fso = Server.CreateObject("Scripting.FileSystemObject")
    rep = "French/"
    keywords = Request.form("terms")

    IF keywords<>"" then

    termsArray = split(lcase(keywords)," ",-1,1)
    dir = Server.MapPath(rep) & "\"
    SET folder = fso.GetFolder(dir)
    SET files = folder.Files

    FOR EACH file IN files

    SET inF = fso.OpenTextFile(dir & file.name,1,false)
    contenu = inF.readAll
    inF.close
    contenu = notag(contenu)
    content = lcase(contenu)

    FOR i = 0 TO Ubound(termsArray)
    IF InStr(content,termsArray(i)) > 0 THEN texte = "<div align=justify><A href=""" & rep & file.name & "target=""_blank"">" & file.name & "</A> :" & left(contenu,200) & "...</div><br>"
    response.write(texte)
    END IF
    NEXT
    NEXT
    END IF

    SET rep = NOTHING
    SET dir = NOTHING
    SET file = NOTHING
    SET files = NOTHING
    SET folder = NOTHING
    SET fso = NOTHING
    %>

    L'erreur concerne la ligne suivante:
    contenu = notag(contenu)

  4. #4
    Membre averti Avatar de pmboutteau
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Février 2005
    Messages : 601
    Points : 420
    Points
    420
    Par défaut
    Mets ton code dans les balises codes, sinon c'est pas très lisible
    ours ours !! Au début elle est froide mais après elle est bonne!

  5. #5
    Membre averti Avatar de pmboutteau
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Février 2005
    Messages : 601
    Points : 420
    Points
    420
    Par défaut
    noTag c'est quoi?

    Une fonction que tu as créé?
    ours ours !! Au début elle est froide mais après elle est bonne!

  6. #6
    Membre averti Avatar de pmboutteau
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Février 2005
    Messages : 601
    Points : 420
    Points
    420
    Par défaut
    En plus rep et dir faut pas les mettre à Nothing c'est pas des objets c'est des variables.
    ours ours !! Au début elle est froide mais après elle est bonne!

  7. #7
    Candidat au Club
    Inscrit en
    Mai 2005
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 6
    Points : 2
    Points
    2
    Par défaut notag
    notag supprime tous les tags html d'une chaine
    c'est une fonction ASP mais je ne peux peut être pas l'utiliser comme ca...?

  8. #8
    Membre averti Avatar de pmboutteau
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Février 2005
    Messages : 601
    Points : 420
    Points
    420
    Par défaut
    tu l'as créé avant?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <%
    function notag(txt)
       set regEx = New RegExp
       regEx.Global = True
       regEx.Pattern = "<[^>]+>"
       notag = regEx.replace(txt,"")
    end function
     
    response.write notag(chaine)
    %>
    ours ours !! Au début elle est froide mais après elle est bonne!

  9. #9
    Candidat au Club
    Inscrit en
    Mai 2005
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 6
    Points : 2
    Points
    2
    Par défaut notag
    merci bcp
    j'ai résolu toutes les erreurs!
    grace a ton aide, mon programme fonctionne!
    il affiche la liste des fichiers contenant le mot recherché!
    bonne journée
    @+

  10. #10
    Membre averti Avatar de pmboutteau
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Février 2005
    Messages : 601
    Points : 420
    Points
    420
    Par défaut
    De rien.

    Coche Résolu alors.
    ours ours !! Au début elle est froide mais après elle est bonne!

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 51
    Points : 54
    Points
    54
    Par défaut
    Marlene pourrais-tu mettre la solution et le comment que tu as fait.

    Car ça pourrais intéressé quelqu'un dans l'avenir

  12. #12
    Candidat au Club
    Inscrit en
    Mai 2005
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 6
    Points : 2
    Points
    2
    Par défaut moteur de recherche
    Voici mon code, avec qq commentaires
    Si vous avez des suggestions pour son amélioration,
    par exemple, traitement des opérateurs ET, OU, SAUF...
    je suis preneuse!

    Les réponses fournissent les fichiers qui contiennent au moins 1 des mots recherchés. Problème : la recherche d'une expression exacte, comme "indemnité de stage". En résultat, on obtient tous les fichiers qui contiennent "de"! Pas très pertinent?!

    Je suis entrain d'y travailler mais j'accepte toute aide!


    Fichier Recherche.asp

    <%@ LANGUAGE="VBSCRIPT"%>
    <!-- Déclaration du langage utilisé-->

    <%
    function notag(txt)
    ' Fonction qui supprime tous les tags HTML d'une chaîne
    set regEx = New RegExp
    regEx.Global = True
    regEx.Pattern = "<[^>]+>"
    notag = regEx.replace(txt,"")
    end function
    %>

    <%
    DIM rep, dir
    DIM keywords, termsArray, contenu, content, intro, res, texte
    ' Déclaration des variables

    SET fso = Server.CreateObject("Scripting.FileSystemObject")
    ' Création d'un accès au système de fichiers
    ' l'instruction SET permet d'affecter une référence d'objet à une variable

    rep = "French/"
    ' Dossier dans lequel on cherche les fichiers

    keywords = Request.form("terms")
    ' Récupération des mots clés saisis dans le formulaire

    res = "<hr size=""1""><font size=""3""><b>Rappel de votre requête : </b></font>" & keywords & "<br><blockquote><b><img src=""next.gif"" width=""9"" height=""9"" border=""0"">&nbsp;</b><a href=""Formulaire.asp"">Effectuez une nouvelle recherche</a></blockquote><hr size=""1""><font size=""3""><b>Résultat :</b></font><br><br>"

    response.write(res)

    resCounter = 0
    ' Nombre de réponses trouvées

    IF keywords<>"" THEN
    ' Si des mots clés ont été saisis (s'il y a quelque chose à chercher)
    ' <> est un opérateur d'inégalité

    termsArray = split(lcase(keywords)," ",-1,1)
    ' Décomposition de la chaîne de recherche en sous-chaînes séparées par des espaces
    ' la méthode split retourne un tableau de chaînes obtenu par fraction des sous-chaînes
    ' la méthode lcase convertit les mots clés en minuscules

    dir = Server.MapPath(rep) & "\"
    ' la méthode MapPath de l'objet Server renvoie le chemin absolu du répertoire contenant la page ASP traitée

    SET folder = fso.GetFolder(dir)
    ' Lecture du dossier

    SET files = folder.Files
    ' Obtention des fichiers

    FOR EACH file IN files
    ' Pour chaque fichier

    SET inF = fso.OpenTextFile(dir & file.name,1,false)
    ' la méthode OpenTextFile de la classe FileSystemObject permet l'ouverture du fichier "dir & f.name" en lecture
    ' par défaut, si le fichier n'existe pas déjà, l'ouverture échoue ("false")
    ' au terme de l'invocation de la méthode, on récupère un objet de flux (type TextStream implémentant l'interface ITextStream)

    contenu = inF.readAll
    ' Lecture totale du contenu

    inF.close
    ' Fermeture du fichier

    contenu = notag(contenu)
    ' Suppression du code

    content = lcase(contenu)
    ' Conversion du texte en minuscules

    termsCounter = 0
    ' Nombre de mots clés trouvés

    IF file.name<>"Default.asp" THEN
    ' On ne teste pas le fichier contenant la table des matières

    FOR i = 0 TO Ubound(termsArray)
    ' Pour tous les mots clés
    ' la méthode Ubound retourne la valeur d'index la plus élevée du tableau

    IF InStr(content,termsArray(i)) > 0 THEN termsCounter = termsCounter + 1
    ' Si le mot clé a été trouvé, on incrémente le compteur du nombre de mots trouvés
    ' la fonction InStr retourne un entier spécifiant la position de début de la première occurrence du mot clé à l'intérieur du fichier
    ' elle retourne 0 si la chaîne de caractères donnée en second paramètre n'a pas été trouvée

    NEXT
    ' On passe au mot clé suivant

    IF termsCounter > 0 THEN
    ' Si au moins un mot clé a été trouvé, on incrémente le compteur du nombre de réponses et on affiche un lien vers le fichier

    resCounter = resCounter + 1

    texte = "<div align=justify><b>" & resCounter & ". </b><A href=""" & rep & file.name & """ target=""_blank"">" & file.name & "</A><br>" & left(contenu,1000) & "...</div><b>Pertinence : </b>" & termsCounter & " sur " & Ubound(termsArray)+1 & "<br><br>"
    ' la foncion left retourne un nombre spécifique de caractères d'une chaîne

    response.write(texte)

    END IF

    END IF

    NEXT
    ' On passe au fichier suivant

    END IF

    IF resCounter=0 THEN response.write "<blockquote>Aucun document correspond à votre recherche.</blockquote>"
    ' Si le compteur du nombre de réponses trouvées est resté à zéro

    ' Libération de l'espace mémoire alloué
    SET inF = NOTHING
    SET files = NOTHING
    SET folder = NOTHING
    SET fso = NOTHING
    %>


    Fichier Formulaire.asp

    <table width="100%">
    <tr>
    <td><font size="2"><b>Votre recherche :</b></font><br><br></td>
    </tr>
    <tr>
    <td><font size="2">Veuillez saisir des mots clés<br>
    <ul><li>séparés par des espaces pour rechercher l'un ou l'autre des mots (exemple : salaire rémunération)</li></ul>
    <br></font></td>
    </tr>
    <!-- Le formulaire appelle le script Recherche.asp avec la méthode POST-->
    <form method="post" action="Recherche.asp">
    <tr>
    <td>
    <!-- Le champ texte a pour label terms-->
    <input type="text" name="terms"><br><br>
    </td>
    </tr>
    <tr>
    <td>
    <!-- Il existe aussi un bouton de label sub et de valeur Rechercher-->
    <input type="submit" name="sub" value=Rechercher>
    </td>
    </tr>
    </form>
    </table>

    Marlène Delabre

  13. #13
    Membre averti Avatar de pmboutteau
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Février 2005
    Messages : 601
    Points : 420
    Points
    420
    Par défaut
    Peux-tu réediter le message du dessus en mettant ton code dans les balises Code.
    ours ours !! Au début elle est froide mais après elle est bonne!

  14. #14
    Candidat au Club
    Inscrit en
    Mai 2005
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Voilà mon code final...
    J'espère que la lisibilité est meilleure!
    J'ai fait quelques améliorations: recherche de l'un ou l'autre des mots, recherche de tous les mots (all), recherche d'une expression exacte (expr).


    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
     
     
    <%@ LANGUAGE="VBSCRIPT"%>
     
    <%
    function notag(txt)
        set regEx = New RegExp
        regEx.Global = True
        regEx.Pattern = "<[^>]+>"
        notag = regEx.replace(txt,"")
    end function
    %>
     
    <%
    DIM rep, dir
    DIM keywords, expr, all
    DIM go, resCounter
    DIM carac
    DIM contenu, content, termsCounter, text
    %>
     
    <%
    SET fso = Server.CreateObject("Scripting.FileSystemObject")
    rep = "French/"
    dir = Server.MapPath(rep) & "\"
    SET folder = fso.GetFolder(dir)
    SET files = folder.Files
    %>
     
    <%
    keywords = Request.form("terms")
    IF Asc(keywords) = 0034 THEN expr = True ELSE expr = False END IF
    IF Asc(keywords) = 0043 THEN all = True ELSE all = False END IF
    keywords = trim(keywords)
    keywords = lcase(keywords)
    %>
     
    <font size="3"><b>Rappel de votre requête : </b></font> <%response.write keywords%> <br>
    <blockquote><a href="Formulaire.asp">Effectuez une nouvelle recherche</a></blockquote>
    <hr size="1">
    <font size="3"><b>Résultat :</b></font><br><br>
     
    <%
    go = False
    resCounter = 0
    %>
     
    <%
    IF keywords<>"" THEN
        IF expr=True THEN
            carac = Len(keywords)
            keywords = Mid(keywords,2,(carac-2))
            DIM termsArray(0)		
            termsArray(0) = keywords
        ELSE
            termsArray = split(keywords," ",-1,1)
            IF all=True THEN
                FOR i = 0 TO Ubound(termsArray)
                    termsArray(i) = Mid(termsArray(i),2)
                NEXT
            END IF
        END IF
    go = True
    END IF
    %>
     
    <%
    IF go=True THEN
        FOR EACH file IN files
            SET inF = fso.OpenTextFile(dir & file.name,1,false)
            contenu = inF.readAll 
            inF.close
            contenu = notag(contenu)
            content = lcase(contenu)
            termsCounter = 0
            IF file.name<>"Default.asp" THEN
                FOR i = 0 TO Ubound(termsArray)
                    IF InStr(content,termsArray(i)) > 0 THEN termsCounter = termsCounter + 1
                NEXT
                IF (termsCounter>0 AND all=False) OR (termsCounter=(Ubound(termsArray)+1) AND all=True) THEN
                    resCounter = resCounter + 1
                    text = "<div align=justify><b>" & resCounter & ". </b><A href=""" & rep & file.name & """ target=""_blank"">" & file.name & "</A><br>" & left(contenu,1000) & "...</div><b>Pertinence : </b>" & termsCounter & " sur " & Ubound(termsArray)+1 & "<br><br>"
                    response.write(text)
                END IF
            END IF
        NEXT
    END IF
    %>
     
    <%
    IF resCounter=0 THEN response.write "<blockquote>Aucun document correspond à votre recherche.</blockquote>"
    SET inF = NOTHING
    SET files = NOTHING
    SET folder = NOTHING
    SET fso = NOTHING
    %>

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

Discussions similaires

  1. Microsoft VBScript runtime error Type mismatch
    Par Fiona08 dans le forum VBScript
    Réponses: 7
    Dernier message: 19/09/2011, 21h46
  2. Réponses: 11
    Dernier message: 08/07/2008, 20h55
  3. Microsoft VBScript compilation error '800a03ea'
    Par celinebuff dans le forum ASP
    Réponses: 1
    Dernier message: 17/04/2008, 00h28
  4. Réponses: 2
    Dernier message: 11/04/2007, 15h04
  5. Réponses: 2
    Dernier message: 19/04/2005, 15h31

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