Bonjour,
Je développe depuis 3semaines environ en ASP dans le cadre de mon stage. Et je souhaiterai faire un petit moteur de recherche pour un site dans la rubrique offre d'emploi. Pour cela j'utilise des Dictionary:
- Il y a un champs "poste" dans le formulaire de recherche et si celui-ci n'est pas vide alors je commence à créer un dictionary en listant les offres.
Je remplis mon dictionary de la manière suivante:
key= idOffre <--> value= array de mots supérieurs à 4 lettres
J'espère avoir été explicite.
Donc voici mon code qui fait le traitement:
Et voici l'affichage
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 sql="SELECT NumOff,IntituleOff FROM OFFRES WHERE Visible=1 "&where&" ORDER BY DateOff DESC" 'Principe: On va recupérer tous les mots envoyés de longueur > à 4. ' Puis on recupérer tous les tuples de la base de données et on stocke dans un tableau tout les mots en faisant correspondre son id ' Par exemple si le tuple d'id=6 et id=4 contiennent le mot "reseaux" alors on crée un tableau (4,6) afin de construire dynamique la close WHERE ' de la requéte SQL par la suite. if(Request.Form("poste")<>"") then Dim oDict,aKeys,rs Set oDict = Server.CreateObject("Scripting.Dictionary") oDict.CompareMode = VBTextCompare Set rs = Conn.Execute(sql) where2="" 'On ajoute dans un dictionnaire qui a pour clé l'id de l'offre et pour valeur une liste de mots de l'intitulé While Not rs.EOF Dim tmp,wordArray tmp=Trim(rs("IntituleOff")) wordArray=Split(tmp," ") 'Affichage Response.Write rs("NumOff")&" == >" writeArray(wordArray) if oDict.Exists(rs("NumOff")) then oDict.Remove(rs("NumOff")) end if oDict.Add rs("NumOff"),wordArray rs.MoveNext wend ' Ajout à la main juste pour le test oDict.Add "100",Array("momo","jojo","nono") Response.write "<br /> Yo momo ! <br />" 'aKeys = oDict.Keys 'Set oDict = Nothing 'For i = 0 To Ubound(aKeys) 'Response.Write aKeys(i) & "<br>" 'Next aItems = oDict.Items 'Set oDict = Nothing For i = 0 To Ubound(aItems) writeArray(aItems(i)) Next ...
alors que je suis censé attendre28 == >étudiant -l'autre -test -1 -2 -3 -@à -" -'" -
26 == >654654564 -
21 == >sauveteur -de -baleine -
20 == >dfsdfsf -
18 == >Stage -informatique -
17 == >Technicien -réseaux -
15 == >qsdqsdqsd -
Yo momo !
qsdqsdqsd -
momo -jojo -nono -
J'ai l'impression qu'il écrase à chaque fois la valeur et de plus j'ai le test28 == >étudiant -l'autre -test -1 -2 -3 -@à -" -'" -
26 == >654654564 -
21 == >sauveteur -de -baleine -
20 == >dfsdfsf -
18 == >Stage -informatique -
17 == >Technicien -réseaux -
15 == >qsdqsdqsd -
Yo momo !
étudiant -l'autre -test -1 -2 -3 -@à -" -'" -
654654564 -
sauveteur -de -baleine -
dfsdfsf -
Stage -informatique -
Technicien -réseaux -
qsdqsdqsd -
momo -jojo -nono -
sinon j'avoue une erreur comme quoi la clé était déjà présente dans la Map , enfin Dictionary.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 if oDict.Exists(rs("NumOff")) then oDict.Remove(rs("NumOff")) end if
Je vous remercie d'avance, car cela commence à faire 2 demi-journée que je bloque dessus et que je ne comprends vraiment pas pourquoi cela ne marche.
Please
Partager