[R] Creation Script avec Gui

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
claw75
Niveau 2
Niveau 2
Messages : 24
Enregistré le : mer. 18 juil. 2012 11:47
Status : Hors ligne

[R] Creation Script avec Gui

#1

Message par claw75 »

Bonjour a tous,
ne connaissant rien a autoit je me tourne vers les âmes charitables.

Je vous explique ce dont j'aurai besoin:

Je suis en train de cree un petit site intranet avec un font documentaire.(plus ou moins 1500)
Et afin de pouvoir indexer différents lien dans le moteur de recherche (en .js) je souhaiterai crée une petit script qui me permettrai d'ajouter différents éléments dans mon fichier de moteur de recherche.
Le chemin du fichier (je souhaiterai un bouton parcourir qui me permet de selectionner le fichier la ou il se trouve et qu'en retour j'ai son chemin d'acces)
Le nom que je lui donnerai
Les mots clés que je lui donnerai
Et la description que je lui donnerai


Je souhaiterait aussi une interface graphique simple.

Voici en gros ce que je souhaiterai faire automatiquement:

Code : Tout sélectionner

add("<a href='Chemin complet du fichier'>Nom du fichier</a>","Mot Clé,Mot Clé;Mot Clé","Description")
Il faudrait que les éléments s'intercalent automatiquement entre les différentes balises et que a chaque nouvelle créations mon fichier .js s'accrémente automatiquement.

Pour ne pas mourir bête j’aimerai bien avoir les différentes informations dans le code:
Ex: En dessous de cette ligne c'est le code qui permet de:.....
En dessous de cette ligne je declare:....



J'espere que j'ai été assez claire.

Par avance merci
Modifié en dernier par claw75 le jeu. 11 oct. 2012 21:57, modifié 1 fois.
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

Re: [...] Creation Script avec Gui

#2

Message par PandiPanda »

Bonjour,
Nous allons d'abord commencé par le plus simple & rapide ^^
l'interface simple, ceci vous convient ?
► Afficher le texte
Concernant le "travail" de votre script, j'ai pas vraiment compris ...
Vous voulez donc ;

- récupérer le chemin du fichier via un bouton parcourir ~~> OK
- que faire avec votre description/mot-clé?
- add("<a href='Chemin complet du fichier'>Nom du fichier</a>","Mot Clé,Mot Clé;Mot Clé","Description") ?
que voulez vous dire par la ? que fait/devra faire cette méthode "add() ? une méthode deja écrite en .js ?
- pourriez vous fournir un fichier, un exemple "concret" ?
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
claw75
Niveau 2
Niveau 2
Messages : 24
Enregistré le : mer. 18 juil. 2012 11:47
Status : Hors ligne

Re: [...] Creation Script avec Gui

#3

Message par claw75 »

bonjour et merci pour l'aide
pour l'interface l'idée est la .la partie descrition n'a pas besoin d'etre aussi grande
je pencherai plus dans ce style la:

Code : Tout sélectionner

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 520, 329, 192, 120)
$Input1 = GUICtrlCreateInput("Input1", 40, 56, 201, 21)
$Parcourir = GUICtrlCreateButton("Parcourir", 280, 56, 97, 25)
$Edit1 = GUICtrlCreateEdit("", 40, 136, 145, 169)
GUICtrlSetData(-1, "Edit1")
$Mots = GUICtrlCreateLabel("Mots", 40, 104, 91, 17)
$Input2 = GUICtrlCreateInput("Input2", 216, 136, 233, 21)
$Indexer = GUICtrlCreateButton("Indexer", 239, 208, 185, 41)
$Descritpion = GUICtrlCreateLabel("Descritpion", 216, 104, 57, 17)
$Fichier = GUICtrlCreateLabel("Fichier", 40, 32, 35, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit

    EndSwitch
WEnd
les mots clés et descriptions devront s'insérés sur une ligne dans un fichier dbf.js (qui sert d'index pour le moteur de recherche.
dans la forme suivante:

add("<a href='Chemin complet du fichier'>Nom du fichier</a>","Mot Clé,Mot Clé;Mot Clé","Description")


je vous fournirai le fichier demain dans la matinée..


merci
claw75
Niveau 2
Niveau 2
Messages : 24
Enregistré le : mer. 18 juil. 2012 11:47
Status : Hors ligne

Re: [...] Creation Script avec Gui

#4

Message par claw75 »

Bonjour
Voici les informations demandées,j'ai modifier le code Gui (il y a le principal dedans après je le modifierai a ma sauce)


Code : Tout sélectionner

#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=C:\Documents and Settings\maumener\Desktop\Form1_1.kxf
Global $Form1_1 = GUICreate("Form1", 521, 330, 801, 140)
Global $Input1 = GUICtrlCreateInput("Input1", 200, 152, 201, 21)
Global $Parcourir = GUICtrlCreateButton("Parcourir", 408, 152, 97, 25)
Global $Edit1 = GUICtrlCreateEdit("", 40, 152, 145, 169)
GUICtrlSetData(-1, "Edit1")
Global $Mots = GUICtrlCreateLabel("Mots", 40, 128, 91, 17)
Global $Input2 = GUICtrlCreateInput("Input2", 224, 216, 233, 21)
Global $Indexer = GUICtrlCreateButton("Indexer", 239, 248, 185, 41)
Global $Descritpion = GUICtrlCreateLabel("Descritpion", 224, 192, 57, 17)
Global $Fichier = GUICtrlCreateLabel("Fichier", 200, 128, 35, 17)
Global $Combo1 = GUICtrlCreateCombo("Combo1", 40, 80, 153, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
Global $Type = GUICtrlCreateLabel("Type", 40, 48, 28, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
 $nMsg = GUIGetMsg()
 Switch $nMsg
  Case $GUI_EVENT_CLOSE
   Exit

 EndSwitch
WEnd

J'ai fais une petite capture pour essayer d'expliquer ce que je souhaite j’espère être assez clair.
Souhait autoit.JPG
Merci de votre aide
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

Re: [...] Creation Script avec Gui

#5

Message par PandiPanda »

Oui cela devrai aider grandement ^^
Question, la "combo" a savoir le "Type" n'est pas un input ? dans lequel vous devez mettre le nom que vous voulez??

est-il possible que les espace tels que
- nom
- mot clé
- path du fichier

soit "vide" ou il faudra vérifié avant d’écrire qu'il y'ai au moins quelque chose?
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
claw75
Niveau 2
Niveau 2
Messages : 24
Enregistré le : mer. 18 juil. 2012 11:47
Status : Hors ligne

Re: [...] Creation Script avec Gui

#6

Message par claw75 »

J'ai mis le combos car je souhaierai un petit menu deroulant pour choisir la categorie des documents (documents métiers ,specifiques bureautique,Support,etc.)

Il faudra obligatoirement que tout les champs soir rempli.Sinon la ligne l'indexation ne passera pas
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

Re: [...] Creation Script avec Gui

#7

Message par PandiPanda »

Voici un debut, il est fait a environ 80% il reste à lire le fichier et inserer au bon endroit
(continuation de l'implémentation de la méthode "_writeFile()")

Je voit 2 manière différente de faire cela ...
- on lit tout le fichier, on fait les modification nécessaire et on réécrit tout le fichier
- par lecture ligne/ligne et on insère a l'endroit qu'il faut

question rapidité et utilisation de ressource, je ne sais pas trop laquelle est la meilleur, je dirai la 2ème mais plus longue à écrire '^^

Je ne pense pas avoir le temps aujourd'hui de continuer le script voila pourquoi je pose déjà ce que j'ai fait, si quelqu'un veux continuer sur la lancée ...
► Afficher le texte
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
claw75
Niveau 2
Niveau 2
Messages : 24
Enregistré le : mer. 18 juil. 2012 11:47
Status : Hors ligne

Re: [...] Creation Script avec Gui

#8

Message par claw75 »

re et bravo c'est exactement ce que je souhaitai.

personnellement qu'importe la méthode de lecture et d’écriture.si il faut que ca mette 10 pour ecrire dans le fichier cela ne me pose pas de probleme.
ce que je souhaite juste c'est que la ligne s'inscrive bien dans la partie qui lui est destinée.
Ex Type: Doc Métier (se rajoutera en dessous de la partie Index Doc metier)

merci encore pour votre aide.Apres je ne suis pas a la journée....

Je vais déja m'amuser avec ce que j'ai en attendant

;)
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

Re: [...] Creation Script avec Gui

#9

Message par PandiPanda »

L'ordre est il important ou il peux simplement être dans la bonne catégorie ?

voici un exemple;
si j'insere "add(3eme)" a "ma categorie 2" , peut il se trouver en 1er ou DOIT il se trouver apres tout les autres?
► Afficher le texte
Si l'ordre importe peu, alors voici ^^
► Afficher le texte
Modifié en dernier par PandiPanda le jeu. 19 juil. 2012 18:48, modifié 3 fois.
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
claw75
Niveau 2
Niveau 2
Messages : 24
Enregistré le : mer. 18 juil. 2012 11:47
Status : Hors ligne

Re: [...] Creation Script avec Gui

#10

Message par claw75 »

L'ordre importe peu
vu que c'est juste pour avoir une espece de basse de donnée pour le moteur de recherche.
je testerai tout ca demain matin et je te tien au jus ,en attendant ca m'a l'air pas mal du tout.
bravo pour ta reactivité et ton travail
mci
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

Re: [...] Creation Script avec Gui

#11

Message par PandiPanda »

Bonsoir,
j'ai éditer le code, remanier ma fonction un bug au niveau si il fallait écrire a la dernière ligne, ça posait un problème.
Bug corriger, à voir si il reste d'autre problème.
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
claw75
Niveau 2
Niveau 2
Messages : 24
Enregistré le : mer. 18 juil. 2012 11:47
Status : Hors ligne

Re: [...] Creation Script avec Gui

#12

Message par claw75 »

bonsoir
j'ai effectuer un test vite fait sur la modifiaction du fichier dbf .
l'operatioon donne le resultat done or je n'ai aucune modification inscrite dans le fichier dbf.
y a t il une facon de mettre la "balise" "types" dans mon fichier dbf.js
car la il sont marqué comme des commentaires
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

Re: [...] Creation Script avec Gui

#13

Message par PandiPanda »

étrange, vous pouvez fournir le fichier "de test" ?
que voulez vous dire avec balise type dans le fichier .js ? un exemple de ce que vous penser? ^^
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
claw75
Niveau 2
Niveau 2
Messages : 24
Enregistré le : mer. 18 juil. 2012 11:47
Status : Hors ligne

Re: [...] Creation Script avec Gui

#14

Message par claw75 »

je reteste ca demain avec les bons fichiers et je vous fait un compte rendu.
claw75
Niveau 2
Niveau 2
Messages : 24
Enregistré le : mer. 18 juil. 2012 11:47
Status : Hors ligne

Re: [...] Creation Script avec Gui

#15

Message par claw75 »

Bonjour ci dessous voici les deux fichier que j'utilise

j'ai testé et je ne parviens pas a écrire dans dbf.js (rien ne se passe malgré le done)

Je pense que j'ai du mal remplir un truc:

Voici le dbf.js



Et le votre code:

Code : Tout sélectionner

#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <File.au3>

#region Variable Globale
    ;ou se trouvre votre fichier "dbf.js" : ici, même repertoire que le script
    Global $pathFileJs = @ScriptDir&"\dbf.js"
    Global $TypeComboChoix = "Doc NB Bureautique|Doc NB Support|Doc NB Specifique|Doc NB Metier" ; valeur a modifier pour vos "type"
    Global $pathFileParcourir = ""
#endregion Variable Globale

#Region ### START Koda GUI section ### Form=C:\Documents and Settings\maumener\Desktop\Form1_1.kxf
    Global $Form1_1 = GUICreate("claw75", 521, 330, 801, 140)
    Global $InputParcours = GUICtrlCreateInput("", 200, 152, 201, 21)
    Global $Parcourir = GUICtrlCreateButton("Parcourir", 408, 152, 97, 25)
    Global $EditMotCle = GUICtrlCreateEdit("", 40, 152, 145, 169)
    Global $Mots = GUICtrlCreateLabel("Mots", 40, 128, 91, 17)
    Global $InputDescription = GUICtrlCreateInput("", 224, 216, 233, 21)
    Global $Indexer = GUICtrlCreateButton("Indexer", 239, 248, 185, 41)
    Global $Description = GUICtrlCreateLabel("Descritpion", 224, 192, 57, 17)
    Global $Fichier = GUICtrlCreateLabel("Fichier", 200, 128, 35, 17)
    Global $ComboType = GUICtrlCreateCombo("", 40, 80, 153, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
    GUICtrlSetData($ComboType,$TypeComboChoix)
    Global $Type = GUICtrlCreateLabel("Type", 40, 48, 28, 17)
    GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Parcourir
            $pathFileParcourir = FileOpenDialog("claw75",@DesktopDir,"(*.*)")
            GUICtrlSetData($InputParcours,$pathFileParcourir)
        Case $Indexer
            Local $text = ""
            Local $type = GUICtrlRead($ComboType)
            Local $motcle = StringReplace(GUICtrlRead($EditMotCle),@CRLF,",")
            Local $descriptionTxt = GUICtrlRead($InputDescription)
            If $type <> "" And $motcle <> "" And $descriptionTxt <> "" And $pathFileParcourir <> "" Then
                _writeFile($pathFileJs,$type,$pathFileParcourir,$motcle,$descriptionTxt)
                If @error Then
                    Local $error[3]=["erreur ouverture de fichier","erreur d'ecriture de fichier","erreur, categorie introuvable"]
                    MsgBox(48,"erreur",$error[@error-1])
                Else
                    MsgBox(64,"Job","Done ;-)")
                EndIf
            Else
                MsgBox(48,"erreur","remplissez tout les champs")
            EndIf
    EndSwitch
WEnd

#cs _writeFile($pathFile,$type,$pathFileParcourir,$motcle,$description)
    #Permet d'ecrire dans un fichier
    @Param :
        ~ $pathFile : le fichier dans quoi ecrire
        ~ $type : dans quel catégorie écrire
        ~ $pathFileParcourir : parcours du fichier = path+nom fichier
        ~ $motcle : serie de mot cle
        ~ $description : la description
    @Return:
        ~ @error = 1 : erreur pas trouvé de fichier
        ~ @error = 2 : erreur d'ecriture
        ~ @error = 3 : erreur de categorie introuvable
#ce

Func _writeFile($pathFile,$type,$pathFileParcourir,$motcle,$description)
    Local $hFile ; sera  de mon fichier
    Local $sRead ; ma lecture du fichier
    Local $add ; mon "add(xxxx)"
    Local $nLine = 1
    $add&='add("'&"<a href='"&$pathFileParcourir&"'>"&_fileName($pathFileParcourir)&'</a>",'&'"'&$motcle&'","'&$description&'")'
    Local $aArray,$sStr=""
    _FileReadToArray($pathFile,$aArray)
    If @error Then Return SetError(1,0,"")

    While $nLine < UBound($aArray)
        $sStr&=$aArray[$nLine]&@CRLF
        If StringInStr($aArray[$nLine],$type) <> 0 Then
            $sStr&=$add&@CRLF
            For $i=$nLine+1 To UBound($aArray)-1
                $sStr&=$aArray[$i]&@CRLF
            Next
            ExitLoop
        EndIf
        $nLine+=1
    Wend

    If $nLine >= UBound($aArray) Then Return SetError(3,0,"") ; on a pas trouver la categorie
    $hFile = FileOpen($pathFile,2)
    If $hFile = -1 Then return SetError(1,0,"")
    FileWrite($hFile,$sStr)
    If @error Then
        FileClose($hFile)
        Return SetError(2,0,"")
    EndIf
    FileClose($hFile)
EndFunc

Func _fileName($path)
    Return StringRegExpReplace($path,".*\\(.*)\..*","$1")
EndFunc

arrivez vous au meme resultat que moi? ou chez vous ca fonctionne??
mci
Fichiers joints
dbf.js
(2.55 Kio) Téléchargé 77 fois
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

Re: [...] Creation Script avec Gui

#16

Message par PandiPanda »

Bonjour,
avec votre fichier actuel et le script actuel, chez moi tout fonctionne parfaitement ^^
Le problème ne devrai pas venir du script :?

J'ai rajouter #RequireAdmin , pour que le script soit exécuter en mode "admin" mais ça ma paraîtrai étrange que le script ne fonctionne pas pour cette raison ... Surtout qu'il renvoi un message "de bon fonctionnement". Fin bref' qui tente rien, n'a rien hein? ^^
► Afficher le texte
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
claw75
Niveau 2
Niveau 2
Messages : 24
Enregistré le : mer. 18 juil. 2012 11:47
Status : Hors ligne

Re: [...] Creation Script avec Gui

#17

Message par claw75 »

Autant pour moi cela fonctionne effectivement tres bien.
Je l'avais lancé sandboxé.....
en revanche est t il possible de convertir le chemin du fichier (local) en lien exploitable via un navigateur? Et l'inserer a la place du chemin local dans ma balise href?

De plus lorsque je modifi mon dbf avec le script ma page de recherche devien blanche.
je vous ai mis les different fichier en pj

Renommer xsearch-5.2f en htm et xsearch en css

Cdt
Fichiers joints
xsearch.txt
(713 Octets) Téléchargé 82 fois
xsearch-5.2f.js
(11.44 Kio) Téléchargé 102 fois
xsearch-5.2f.txt
(268 Octets) Téléchargé 75 fois
searchbuttonf.gif
searchbuttonf.gif (250 Octets) Vu 2424 fois
dbf.js
(794 Octets) Téléchargé 76 fois
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

Re: [...] Creation Script avec Gui

#18

Message par PandiPanda »

Il devrait être possible ...
Je suppose que vous avez des fichier que vous pouvez parcourir sur votre "ordinateur" que vous mettez en "ligne" ?
quel est l'arborescence des fichiers "en ligne"?

Pour vous fournir un exemple disons cette arborescence la;

"C:\Users\trolol\Downloads\claw75.au3"

que vous voulez indexer via le fichier .js il faudra donc que votre path fourni corresponde en fonction d'ou se trouve votre fichier .js (path relatif) ou donner le path absolu.

si dans votre arborescence en ligne, vous avez

Code : Tout sélectionner

http://monSite/trolol/script/dbf.js
Si nous gardon la même arborescence de départ(celui sur votre ordi), alors l'indexation doit être ...

Code : Tout sélectionner

../Downloads/claw75.au3; chemin relatif
http://monSite/trolol/Downloads/claw75.au3 ; chemin absolus
 
Donc en conclusion il faut connaitre l'arborescence final de vos fichier "en ligne". Savoir aussi si vous garder exactement la même arborescence et ainsi de remplacer le "C:\" par votre "http://xxx"
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
claw75
Niveau 2
Niveau 2
Messages : 24
Enregistré le : mer. 18 juil. 2012 11:47
Status : Hors ligne

Re: [...] Creation Script avec Gui

#19

Message par claw75 »

en fait le Le dossier "Site Documentaire" sera sur un serveur dans un dossier partagé ,composé des différents fichiers index,moteur de recherche... et un dossier "doc" composé du fond doc.Le site sera accessible via un raccourci internet pointant sur un Index.htm

Dans le fichier zip je vous est mis la configuration exact du dossier Site Documentaire.

J’espère que cela vous aidera

cdt
Fichiers joints
Site Documentaire.7z
(8.56 Kio) Téléchargé 86 fois
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

Re: [...] Creation Script avec Gui

#20

Message par PandiPanda »

Bonsoir,
en suivant l'arborescence complète du dossier mit en pièce jointe, j'ai pu modifier le script ^^
J'ai utiliser les chemin relatif, étant donné que je ne connais pas toute l'arborescence de départ.

L'arborescence de n'importe quel fichier qui devra etre indexé est de cette manière ci;
"Doc/monType/monFichier"
* monType qui sont une des valeurs de ceux de la "combo"
* monFichier étant un fichier quelconque

ce qui change du script précédent étais donc simplement de modifier le chemin "d'indexation" (inventer?) pour cela, j'ai simplement repris le nom du fichier avec son extension et rajouter le chemin habituel.

Par exemple un fichier qui se nomme ;
C:\Users\trolol\Downloads\Test 2.doc
Que je veux mettre dans la categorie ... "Doc NB Bureautique"

aura pour chemin => "Doc/Doc NB Bureautique/Test 2.doc"

Voici le script:
► Afficher le texte
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
Répondre