UNe fois de plus je sors une cource à des fins ebaucoup plus didactiques qu'utiles, quoi que 'jaie un peu bâclé mes commentaires cette fois ci... des améliorations sont à venir quand j'en airai le tempse t les moyens.
Pour comprendre ce tutoriel-code (un simple code commenté quoi), il faut savoir créer un dialog et connaitre les identifieurs et lescommande spour l'exploiter. ATTENTION, je 'nai aps dit qu'ilf aut savoir l'exploiter, sinon mon code n'aurait aucun intéret... ce modeste script vous permettra peut etre de comprendre (si vous 'navez pas encore compris) comment exploiter un dialog (bien sûr je ne me sers pas ici de tous els controls et identifieurs possibles).
Source / Exemple :
dialog google {
size -1 -1 200 111
title "Recherche par Google"
option pixel
text "Rechercher avec Google les mots clés :", 1, 1 1 198 16, center
edit "", 2, 1 18 198 20, autohs
radio "Pages web", 3, 1 40 70 16
radio "Images", 4, 1 59 70 16
button "Pages francophones", 5, 72 39 127 20, default
button "Tout le Web", 6, 72 58 127 20
check "Archiver", 7, 1 79 70 16
link "Archives", 8, 150 80 80 16, center
text "calopsfr", 9, 1 96 198 16, disable center
}
dialog archiv_init {
size -1 -1 200 30
title "Choisissez un format"
option pixel
button "HTML", 1, 1 1 67 28
button "Dialog", 2, 133 1 67 28
text "calopsfr", 3, 68 8 66 16, center disable
}
dialog archiv_google {
size -1 -1 400 600
title "Archives de vos recherches"
option pixel
text "Voici toutes les crecherches archivées que vous avez faites jusqu'alors.", 1, 1 1 398 16, center
button "Effacer les archives", 2, 1 18 398 20
box "Infos", 3, 1 39 398 130
text "Pages web :", 4, 5 55 150 16
text "Images :", 5, 5 71 150 16
text "XX", 6, 156 55 40 16
text "XX", 7, 156 71 40 16
text "Pages francophones :", 8, 5 95 150 16
text "Tout le Web :", 9, 5 111 150 16
text "XX", 10, 156 95 40 16
text "XX", 11, 156 111 40 16
text "Recherches totales archivées :", 12, 5 132 390 16, center
text "XX", 13, 5 148 390 16, center
box "Archives", 14, 1 170 398 400
button "Fermer", 15, 1 571 398 27, default cancel
edit "", 16, 5 185 390 378, read vsbar multi
}
;On ne va rien expliquer ici, ce n'est que du graphique (et je suis large)
;et il n'y a aucune difficulté à faire ceci (à condition de savoir faire un
;dialog).
on *:dialog:archiv_init:sclick:*: {
if ($did == 2) dialog -m archiv_google archiv_google
else archiv_html
dialog -x archiv_google
}
;###Premier évènement, sans trop de difficultés
;quand le $devent sclick se déclanche sur le dialog archiv_init {
; si (le control est le n°2) on lance le dialog des archives
; sinon on exécute l'alias archiv_html
; on ferme le dialog
;}
alias google dialog -m google google
;Franchement, vous voulez que j'explique ça ?
;#####STOP#####
;Ici, on va couper un peu, je crois ^^
;On va faire ca par étapes
;#####REPRENONS#####
on *:dialog:google:*:*: {
if ($devent == init) {
did -c $dname 3
did -c $dname 7
}
;quand le dialog google se déclenche {
; si l'action $devent est l'initialisation (init) {
; on coche le controle 3
; on coche le controle 7
; }
elseif ($devent == sclick) {
if ($did == 5) || ($did == 6) {
if (!$did(2)) {
var %ars $?!="Vous n'avez pas rempli de mot(s) clé(s). Réessayer ?"
if (%ars == $false) dialog -x google
}
; sinon, si l'action $devent est un simple click (sclick) {
; si le control est le 5 ou le 6 {
; si le control 2 est vide {
; on place dans la variable la réponse à l'alerte ($true ou $false)
; si la réponse est $false on ferme le dialog (sinon on ne fait rien)
; }
else {
if ($did(7).state == 1) {
if ($file(archiv_google.ini)) var %t = $readini(archiv_google.ini,infos,total), %pf = $readini(archiv_google.ini,infos,pf), %pw = $readini(archiv_google.ini,infos,pw), %w = $readini(archiv_google.ini,infos,w), %im = $readini(archiv_google.ini,infos,im)
else var %t = 0, %pf = 0, %pw = 0, %im = 0, %w = 0
; sinon {
; si le control 7 est coché {
; si le fichier archiv_google.ini existe on place les infos générales dans leurs variables respectives
; sinon, leurs valeurs sont 0
var %f archiv_google.ini
inc %t
if ($did(3).state == 1) inc %w
elseif ($did(4).state == 1) inc %im
if ($did == 5) inc %pw
elseif ($did == 6) inc %pf
writeini %f infos total %t
writeini %f infos w %w
writeini %f infos im %im
writeini %f infos pw %pw
writeini %f infos pf %pf
writeini %f %t mts $did(2)
writeini %f %t date $date(dd/mm/yy)
writeini %f %t time $time(hh:nn:ss)
writeini %f %t pages $did($did)
writeini %f %t type $iif($did(3).state == 1,$did(3),$did(4))
; la variable %f contient le nom du fichier (c'est pour les feignants comme moi)
; on incrémente %t (elle contient le total des archives)
; si le control 3 est coché, on incrémente %w
; sinon, si le control 4 est coché on incrémente %im
; si le control clické est 5 on incrémente %pw
; sinon, si le control clické est le 6 on incrémente %pf
; on écrit dans %f toutes les données correspondantes
; ...
}
if ($did(3).state == 1) {
if ($did == 5) {
run http://www.google.fr/search?hl=fr&q= $+ $replace($did(2),$chr(32),+) $+ &btnG=Rechercher&meta=lr%3Dlang_fr&X=1
writeini %f %t link http://www.google.fr/search?hl=fr&q= $+ $replace($did(2),$chr(32),+) $+ &btnG=Rechercher&meta=lr%3Dlang_fr&X=1
}
; }
; si le control 3 est coché {
; si le bouton clické est 5 {
; on lance la page appropriée (en remplacant les espaces ($chr(32)) de $did(2) (control 2) par des + (syntaxe google)
; on réécrit l'adresse dans els archives
elseif ($did == 6) {
run http://www.google.fr/search?hl=fr&q= $+ $replace($did(2),$chr(32),+) $+ &btnG=Rechercher&meta=&X=1
writeini %f %t link http://www.google.fr/search?hl=fr&q= $+ $replace($did(2),$chr(32),+) $+ &btnG=Rechercher&meta=&X=1
}
}
; sinon, si le bouton clické est 6 {
; on lance la page appropriée (en remplacant les espaces ($chr(32)) de $did(2) (control 2) par des + (syntaxe google)
; on réécrit l'adresse dans els archives
; }
; }
else {
run http://images.google.fr/images?hl=fr&lr=&q= $+ $replace($did(2),$chr(32),+)
writeini %f %t link http://images.google.fr/images?hl=fr&lr=&q= $+ $replace($did(2),$chr(32),+)
}
}
}
; sinon {
; on lance la page appropriée
; on réécrit l'adresse
; }
; }
; }
if ($did == 8) dialog -m archiv_init archiv_init
if ($did == 4) did -b $dname 5
if ($did == 3) did -e $dname 5
}
}
; si le control est 8 on lance archiv_init
; si le control est 4 on désactive le control 5
; si el control est 3 on active le control 5
; }
;}
;#####STOP#####
;Maintenant, plus rien à expliquer, c'est soir déjà vu, soit simple...
;il s'agit jsute de récupérer les donénes dans le fichier archiv_google.ini
;et de les reptranscrire.
;#####REPRENONS#####
on *:dialog:archiv_google:*:*: {
if ($devent == init) {
if ($file(archiv_google.ini)) {
did -ra $dname 6 $readini(archiv_google.ini,infos,w)
did -ra $dname 7 $readini(archiv_google.ini,infos,im)
did -ra $dname 10 $readini(archiv_google.ini,infos,pw)
did -ra $dname 11 $readini(archiv_google.ini,infos,pf)
did -ra $dname 13 $readini(archiv_google.ini,infos,total)
var %b $readini(archiv_google.ini,infos,total)
var %line 0
while (%b > 0) {
inc %line
did -i $dname 16 %line Recherche n° %b
inc %line
did -i $dname 16 %line Date : $readini(archiv_google.ini,%b,date)
inc %line
did -i $dname 16 %line Heure : $readini(archiv_google.ini,%b,time)
inc %line
did -i $dname 16 %line Recherche : $readini(archiv_google.ini,%b,mts)
inc %line
did -i $dname 16 %line Sur : $readini(archiv_google.ini,%b,pages)
inc %line
did -i $dname 16 %line Type : $readini(archiv_google.ini,%b,type)
inc %line
did -i $dname 16 %line
dec %b
}
}
}
elseif ($devent == sclick) {
if ($did == 2) {
var %truc $?!="Etes vous sûrs de vouloir effacer les archives ?"
if (%truc == $true) {
remove archiv_google.ini
did -ra $dname 16 Les archives ont été effacées
}
}
}
}
menu * {
-
Recherche Google
.Rechercher:/dialog -m google google
.Archives
..HTML:/archiv_html
..Dialog:/dialog -m archiv_google archiv_google
..Effacer les archives:/.remove archiv_google.ini | echo -a Archives effacées
-
}
;ici, exactement le même systeme que pour le dialog... et je ne
;vais aps donenr un cours de HTML, langage (que dis, langage ?) relativement,
;voire extrèmement facile
alias archiv_html {
if ($file(archiv_google.htm)) .remove archiv_google.htm
write archiv_google.htm <html><head><title>Archives des recherches pas Google</title></head><body><center>Voici toutes les recherches archivées depuis le dernier effacement<br><table border=1 bordercolor=black><tr><td>Pages web :<b> $readini(archiv_google.ini,infos,w) </b><br>Images :<b> $readini(archiv_google.ini,infos,im) </b><br><br>Pages francophones :<b> $readini(archiv_google.ini,infos,pw) </b><br>Tout le Web :<b> $readini(archiv_google.ini,infos,pf) </b><br><br>Total des pages archivées :<b> $readini(archiv_google.ini,infos,total) </b></td></tr>
var %b $readini(archiv_google.ini,infos,total)
var %line 0
while (%b > 0) {
write archiv_google.htm <tr><td>Recherche n° %b <br>Date :<b> $readini(archiv_google.ini,%b,date) </b><br>Heure :<b> $readini(archiv_google.ini,%b,time) </b><br>Recherche :<b> $readini(archiv_google.ini,%b,mts) </b><br>Sur :<b> $readini(archiv_google.ini,%b,pages) </b><br>Type :<b> $readini(archiv_google.ini,%b,type) </b><br><a href= $+ $readini(archiv_google.ini,%b,link) $+ >Revoir les résultats sur www.google.fr</a></td></tr>
dec %b
}
write archiv_google.htm </table></center></body></html>
run archiv_google.htm
}
Conclusion :
Bien sur je vous entends venir : "pourquoi ne pas proposer toi-même les réponses ?"... en effet, pourquoi? je ne connais aps les sockets. Donc si vous me trouvez un tutoriel (tutoriel, pas un code commenté comme le mien), je pourra dnas la semaine améliorer cette source (tout enc ontinuant à la commenter).
euh, j'ia mis ca dans "Tutoriaux", dites le moi si je me susi trompé ^^
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.