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

VBScript Discussion :

recherche d'une chaine de caractères


Sujet :

VBScript

  1. #1
    Nouveau membre du Club
    recherche d'une chaine de caractères
    Bonjour à tous !

    Je reviens vers vous pour une nouvelle question. Qui j’espère sollicitera votre intérêt à cette demande.
    J’ai un script qui fonctionne. il est capable de repéré un nom précis et particulier
    Ma demande est donc. que je voudrais adapter ce script sur un site internet au moment où le nom de (l’actualité) par exemple est détecter
    Que le script soit capable d’émettre un son. Ou bien même le vocaliser dans la mesure du possible.
    Encore merci à vous programmeur de votre aide.

    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
    mot_cherche = "tout"
    compteur = 0
     
    fichier_lecture_1 = "open.txt"
    Set fso = CreateObject("Scripting.FileSystemObject") 
    set fichier_lecture_2 = fso.opentextfile(fichier_lecture_1, 1, true)
    do until fichier_lecture_2.atendofstream 
    chaine = fichier_lecture_2.readline() 
    if instr(1, chaine, mot_cherche) > 0 then
    compteur = compteur + 1
    end if
    loop
    fichier_lecture_2.close 
    set fichier_lecture_2 = nothing
    set fso = nothing 
     
    wscript.echo "mot trouvé " & compteur & " fois !!"

  2. #2
    Rédacteur/Modérateur

    Salut

    je voudrais adapter ce script sur un site internet
    Quel langage penses-tu utiliser?
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.

  3. #3
    Nouveau membre du Club
    Bonjour ProgElect et merci.

    Pour répondre à votre question si possible en vbs ou en HTA.

  4. #4
    Rédacteur/Modérateur

    Re

    Ce qui me pose problème à répondre et qu'un HTA + VBScript ne peut pas être mis en ligne sur le web.
    Pour le mettre sur la toile, il faut programmer au minimum en langage HTLM plus JavaScript (voir PHP, JavaScript et CSS pour plus de possibilités).

    Par contre, il est possible de se faire un programme HTA VBscript qui sera joué sur un ordinateur en local.
    En VBScript HTA tu peux rechercher des informations dans une page HTML, les traiter/manipuler et donc présenter à l'utilisateur TA version du rendu.
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.

  5. #5
    Nouveau membre du Club
    Mon but n'est pas de mettre en ligne.

    Juste de lancer une page internet du site que l'on veut

    Et que sa cherche la chaîne de caractère qui peut être météo en Bretagne etc etc.

  6. #6

  7. #7
    Nouveau membre du Club
    Bonjour Hackoofr !

    merci pour le liens après avoir testé le deuxième script j'ai une erreur en ligne 3

    c'est ce que je cherche à faire.

    récupèré un mot sur site un déclencheur.

  8. #8

  9. #9
    Nouveau membre du Club
    le site internet par exemple ( https://www.zt-za.com/ )

    le mot on va dire Kung Fu Panda

    juste pour l'exemple

  10. #10
    Expert éminent
    Citation Envoyé par Angelus1753 Voir le message
    le site internet par exemple ( https://www.zt-za.com/ )
    le mot on va dire Kung Fu Panda
    juste pour l'exemple
    un très mauvais exemple car ce site présente une couche de sécurité (captcha) => Donc c'est impossible de "sniffer" les infos de ce dernier

  11. #11
    Rédacteur/Modérateur

    Re

    Vite fait, a pofiner, mais fonctionne
    Code html :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
    <HTML>
    	<HEAD lang="fr">
    		<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
    		<title> Recuperation QRZs par departement </title>
    		<HTA:APPLICATION
    		>
    	</HEAD>
    <SCRIPT language="VBScript" type="text/vbscript">
            Sub Window_Onload()
                    VerifSleeper()
            End Sub
            Sub VerifSleeper()
                    ' ************ procédure pour vérifier/créer un substitut à la fonction Sleep, ******
                    ' ************        car wscript.sleep ne marche pas dans un HTA              ******
                    Dim Fso : Set Fso = CreateObject("Scripting.FileSystemObject")
                    Dim TempFolder : Set TempFolder = Fso.GetSpecialFolder(2)
                    Dim TempName : TempName = "Sleeper.vbs"
                    ChemSleep = TempFolder&"\"&TempName
                    Set TempFolder = NotHing
                    ' vérifier que le système a ou n'a pas déjà le substitut à la fonction WScript.Sleep
                    If Not Fso.FileExists(ChemSleep) Then 
                            ' Création du fichier Sleeper.vbs, substitut de la fonction WScript.Sleep
                            Dim objOutputFile : Set objOutputFile = Fso.CreateTextFile(ChemSleep, True)
                            objOutputFile.Write "wscript.sleep WScript.Arguments(0)"
                            objOutputFile.Close
                            Set objOutputFile = NotHing
                    End If
                    Set Fso = NotHing
            End Sub
            ' ************************ utilisation du substitut de WScript.Sleep ********************
            Sub Sleep(MSecs): CreateObject("WScript.Shell").Run ChemSleep &" "& MSecs,1,True: End Sub
            ' ***************************************************************************************
            Sub BtGoClick()
                    Dim ie,doc,docutext
                    Dim SrcUrl: SrcUrl = "https://www.zt-za.com/"
                    Dim docRechercher: docRechercher = "Kung Fu Panda" 
     
                    on error resume next
                    Set ie = CreateObject("internetexplorer.application")
                    TxtData.value = "En cours ..."
                    ie.Navigate SrcUrl,2
                    If Err Then
                             MsgBox "Erreur N°" & Err.Number & vbNewLine & Err.Description
                             Err.Clear
                             TxtData.value = "Echec connexion à la page " & SrcUrl
                             Exit Sub
                    End If
                    Err.Clear
                    
                    Do While ie.Busy: Sleep 200: Loop ' <----- Appel du supstitut de WScript..Sleep
                    'ie.visible = true
     
                    Set doc = ie.Document
                    ie.quit: Set ie = Nothing: Set ie = Nothing
                    
                    If instr(doc,docRechercher)<>0 Then
                            docutext = docRechercher & " est présent dans la page web"
                            Else
                            docutext = docRechercher & " non trouvé dans la page web"
                    End If
                    TxtData.value = docutext
            End Sub
            '------------------------------------------------------------------------------------------------------------------
    </SCRIPT>
    	<body>
    			<button id="BtGo" onclick="BtGoClick()"> Go </button> <br />
    			<textarea id="TxtData"> </textarea>
    	</body> 
    </HTML>
    Salut hackoofr, tu reconnaitras une partie de ton code procédure pour vérifier/créer un substitut à la fonction Sleep
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.

  12. #12
    Nouveau membre du Club
    bonsoir et un très, très, très, grand merci à vous ProgElect et Hackoofr sa fonctionne j'ai testé sur 2 site different et sa fonctionne

    maintenant j'ai 2 question la première peu ton réduire la taille de la fenêtre ?

    la seconde peut on vocaliser le résultat trouvé ?

  13. #13
    Rédacteur/Modérateur

    ReRe

    ba non, il me rejette maintenant, pourtant les 2 premiers essais fonctionnaient, curieux ....
    Je viens de faire plusieurs essais, sans jamais avoir remplis le captcha, des fois la page s'ouvre sans validation non robot , curieux curieux ...
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.

  14. #14
    Nouveau membre du Club
    Pareil pour moi.
    La page s'ouvre et des fois non

    J'ai testé sur le site de BFM tv sa fonctionne
    sa fonctionne et c'est celà l'important et vous avez réussi.

  15. #15
    Rédacteur/Modérateur

    Salut

    Le code un peu nettoyé et l'ajout de tes deux questions supplémentaires
    Code html :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
    <HTML>
    	<HEAD lang="fr">
    		<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
    		<title> Recuperation QRZs par departement </title>
    		<HTA:APPLICATION
    			MAXIMIZEBUTTON="no"
    			SCROLL="no"
    			BorderStyle="thin"
    		>
    	</HEAD>
    <SCRIPT language="VBScript" type="text/vbscript">
            '------------------------------------------------------------------------------------------------------------------
            Option Explicit
            Dim ChemSleep
     
            Sub Window_Onload()
                    ResizeTo 570,250 'redimensionne la page HTA
                    VerifSleeper()
            End Sub
            Sub VerifSleeper()
                    ' ************ procédure pour vérifier/créer un substitut à la fonction Sleep, ******
                    ' ************        car wscript.sleep ne marche pas dans un HTA              ******
                    Dim Fso : Set Fso = CreateObject("Scripting.FileSystemObject")
                    Dim TempFolder : Set TempFolder = Fso.GetSpecialFolder(2)
                    Dim TempName : TempName = "Sleeper.vbs"
                    ChemSleep = TempFolder&"\"&TempName
                    Set TempFolder = NotHing
                    ' vérifier que le système a ou n'a pas déjà le substitut à la fonction WScript.Sleep
                    If Not Fso.FileExists(ChemSleep) Then 
                            ' Création du fichier Sleeper.vbs, substitut de la fonction WScript.Sleep
                            Dim objOutputFile : Set objOutputFile = Fso.CreateTextFile(ChemSleep, True)
                            objOutputFile.Write "wscript.sleep WScript.Arguments(0)"
                            objOutputFile.Close
                            Set objOutputFile = NotHing
                    End If
                    Set Fso = NotHing
            End Sub
            ' ************************ utilisation du substitut de WScript.Sleep ********************
            Sub Sleep(MSecs): CreateObject("WScript.Shell").Run ChemSleep &" "& MSecs,1,True: End Sub
            ' ***************************************************************************************
            Sub BtGoClick()
                    Dim ie,doc
                    Dim StrResult
                    Dim SrcUrl: SrcUrl = Trim(TxtUrl.value)
                    Dim StrRech: StrRech = Trim(TxtRch.value)
                    
                    on error resume next
                    Set ie = CreateObject("internetexplorer.application")
                    ResulT.innertext = "En cours ..."
                    ie.Navigate SrcUrl,2
                    'ie.visible = true
                    If Err Then
                            MsgBox "Erreur N°" & Err.Number & vbNewLine & Err.Description
                             Err.Clear
                             ResulT.innertext = "Echec connexion à la page " & SrcUrl
                             ie.quit: Set ie = Nothing
                             Exit Sub
                    End If
                    Err.Clear
                    
                    Do While ie.Busy: Sleep 200: Loop ' <----- Appel du supstitut de WScript..Sleep attente du chargement de la page web
     
                    Set doc = ie.Document ' récuperation de la page source
                    
                    If InStr(0,doc,StrRech,1)<>0 Then ' recherche du des mots
                            StrResult = StrRech & " est présent dans la page web"
                            Else
                            StrResult = StrRech & " non trouvé dans la page web"
                    End If
                    ie.quit ' fermeture d'internetexplorer
                    Set doc = Nothing: Set ie = Nothing 'nettoyage
                    ResulT.innertext = StrResult 'affichage
                    Sleep 200 'donne le temps pour rafraichir l'affichage de StrResult
                    
                    Dim Parler 'lit à haute voix le résultat de la recherche
                    set Parler = CreateObject("SAPI.SpVoice").Speak(StrResult)
                    Set Parler = Nothing
                    'si tu veux fermer automatiquement le HTA
                    'self.close
            End Sub
            '------------------------------------------------------------------------------------------------------------------
    </SCRIPT>
    	<body>
    		Adresse du site ou rechercher<br />
    		<input type="text" id="TxtUrl" style="width:500px" value="https://www.zt-za.com/"></input><br />
    		Mot a rechercher<br />
    		<input type="text" id="TxtRch" style="width:200px" value="Kung Fu Panda"></input><br />
    		<button id="BtGo" onclick="BtGoClick()">Go</button><br /><br />
    		<div id="ResulT"></div>
    	</body> 
    </HTML>
    Il y a beaucoup de choses reprises de tes demandes d'aide précédentes, d'où une partie non négligeable de code fourni par hackoofr

    Depuis le nettoyage, ça fonctionne à tous les coups, la connexion se fait et la réponse trouvée/non trouvée aboutie.
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.

  16. #16
    Nouveau membre du Club
    Bonjour ProgElect vous êtes le meilleur, y compris Hackoofr

    pour moi c'est presque résolu

    j'espère que cela va aider d'autre personne merci infiniment.

    encore une question :=)

    quand un nom existe pas peut il dire que le nom existe pas j'ai vue la commande dans le code mais j'ai un doute sur le fonctionnement

    et peut on faire comme dicton du jour que sa ce lance au moment du clique sur le ( HTA )

  17. #17
    Rédacteur/Modérateur

    Re

    Petite modification, car sur certain sites cela ne fonctionnaient pas, là cela semble fonctionner, une bonne vingtaine http, https confondu captcha ou pas, ce qui est une faille de sécurité de mon point de vue.
    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
    	Sub BtGoClick()
    		Dim ie,doc,docStr
    		Dim StrResult
    		Dim SrcUrl: SrcUrl = Trim(TxtUrl.value)
    		Dim StrRech: StrRech = Trim(TxtRch.value)
     
    		on error resume next
    		Set ie = CreateObject("internetexplorer.application")
    		ResulT.innertext = "En cours ..."
    		ie.Navigate SrcUrl,2
    		'ie.visible = true
    		If Err Then
    			MsgBox "Erreur N°" & Err.Number & vbNewLine & Err.Description
    			Err.Clear
    			ResulT.innertext = "Echec connexion à la page " & SrcUrl
    			ie.quit: Set ie = Nothing
    			Exit Sub
    		End If
    		Err.Clear
     
    		Do While ie.Busy: Sleep 200: Loop ' <----- Appel du substitut de WScript..Sleep attente du chargement de la page web
     
    		Set doc = ie.Document ' récupération de la page source [objet HTML]
    		docStr = doc.documentelement.Innertext ' récupération de la page source [contenu string]
    		ie.quit ' fermeture d'internetexplorer
    		Set doc = Nothing: Set ie = Nothing 'nettoyage
     
    		If InStr(1,docStr,StrRech)<>0 Then ' recherche du des mots
    			StrResult = StrRech & " est présent dans la page web"
    			Else
    			StrResult = StrRech & " non trouvé dans la page web"
    		End If
    		ResulT.innertext = StrResult 'affichage
    		Sleep 100 'donne le temps pour rafraichir l'affichage de StrResult
     
    		Dim Parler 'lit à haute voix le résultat de la recherche
    		set Parler = CreateObject("SAPI.SpVoice").Speak(StrResult)
    		Set Parler = Nothing
    		'si tu veux fermer automatiquement le HTA
    		'self.close
    	End Sub


    Pour ta dernière question, si le(s) mot(s) n'est pas trouvé, la condition if ligne 28, rempli la variable StrResult en conséquence, et puis elle est lut ligne 27
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.

  18. #18
    Nouveau membre du Club
    un grand bravo a vous

    c'est résolu.

    bravo à vous et merci en esperant que cela va aider d'autre personnes

    merci à toute léquipe.

###raw>template_hook.ano_emploi###