| inutile mais pas pour moi... | |
|
|
Auteur | Message |
---|
maelilou
Nombre de messages : 180 Age : 76 Localisation : Ardennes françaises Date d'inscription : 02/05/2012
| Sujet: inutile mais pas pour moi... Lun 26 Oct 2020 - 18:59 | |
| J'ai voulu me concocter un programme me permettant d'inscrire dans un fichier Excel, des mots qui seront ensuite indexés dans une publication (index sous word par exemple)
Cela fonctionne à ceci prés. Pour sortir du programme, je dois faire un CTRL C sur le mot Fin (choisi arbitrairement)
J'aurais aimé utiliser une touche comme Esc ou autre, pour finir ce programme. Après avoir bien ramé je viens vous voir...
Je ne sais pas trop comment mettre ce programme et comme il n'est pas bien long, je le mets en texte direct. Je sais... c'est pas bien...
' generation d'un fichier excel contenant les mots à indexer ' François Vanderesse ' genere_index V1.0 20201023 ' A1 contient le numéro de ligne courant
init() cparti() hide 0 end
' ************************ Variables , label etc ************************** SUB Init() hide 0 dim tex$,lastcopy$ dim positexcel$,excelord$,ged$ dim x,y$ label surveille
end_sub
' --------------------------- ' Ouverture du fichier Excel ' --------------------------- sub cparti() clipboard_string_copy "": ' vider le presse papier avant de démarrer
message "Vous devez avoir créé un fichier excel pour récupèrer vos index"
open_dialog 15 ged$=file_name$(15) : ' choisir un nom de fichier avec open_dialog if ged$ = "_" MESSAGE "Pas de fichier selectionné. On ferme !" : terminate: end end_if
excel_start : ' lancement excel
excel_file_open 1,ged$ : ' ouverture du fichier
excelord$=excel_read$ ("A1") : ' Lecture ordonnée derniere
timer 99 on_timer 99,surveille end_sub
' rem =========================================================================
Surveille: timer_off 99 : ' désactiver le TIMER tex$ = clipboard_string_paste$ : ' Récuperer le contenu du presse-papier if tex$="Fin" : ' On finit message "On arrête ! Pensez à sauvegarder le fichier excel" excelord$=str$(val(excelord$)) positexcel$="A1" excel_write positexcel$,excelord$ excel_file_close 1 excel_stop terminate end end_if if (tex$ <> LastCopy$) and (tex$ <> "") : ' Y a-t-il du nouveau ? x=val(excelord$) x=x+1 excelord$=str$(x) positexcel$="B"+excelord$
excel_write positexcel$,tex$ LastCopy$ = tex$ : ' Sauvegarder ce texte pour la prochaine comparaison end_if clipboard_string_copy "" : ' vider le presse papier timer_on 99 : ' Réactiver le TIMER
return
Si d'aventure vous avez une idée... Je suis preneur.
bonne soirée.
| |
|
| |
Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: inutile mais pas pour moi... Lun 26 Oct 2020 - 21:49 | |
| Bonsoir Maelilou, Voici une idée à tester : Pour stopper ton programme par la touche ESC, tu pourrais mettre dans la boucle Surveille, une lecture des touches clavier avec le mot-clé INKEY$. Si la touche ESC est pressée, alors on quitte le programme. En pratique, il faut déclarer une variable a$Puis, dans ton sous-programme Surveille, juste après le timer_off 99, ajouter ces quelques lignes : - Code:
-
a$=inkey$ if a$ = chr$(27) terminate end_if
En espérant que cela fonctionne, bonne continuation dans ton projet ! Si cela ne fonctionne pas, on cherchera une autre solution. | |
|
| |
maelilou
Nombre de messages : 180 Age : 76 Localisation : Ardennes françaises Date d'inscription : 02/05/2012
| Sujet: Re: inutile mais pas pour moi... Mar 27 Oct 2020 - 10:15 | |
| Merci pour ta réponse.
J'avais déjà fait un essai en ce sens, mais ça ne marche pas. A tout hasard j'ai remplacé Chr$(27) par chr$(65 ou autre ascii exprimable) mais c'est pareil On ne passe pas dans le if ... end_if
Comme si le inkey$ était inopérant...
Je ne comprends pas...
| |
|
| |
Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: inutile mais pas pour moi... Mar 27 Oct 2020 - 14:06 | |
| Aie… Il faudrait appuyer sur la touche ESC au moment où le timer se déclenche... et que ce soit bien ton programme Panoramic qui soit destinataire des entrées clavier.
Hum… Pas facile tout ça.
D’où proviennent les mots collés dans le presse-papier ? D’un LIST, MEMO, ou un programme extérieur à Panoramic du style BlocNote, Word, Excel … ?
| |
|
| |
maelilou
Nombre de messages : 180 Age : 76 Localisation : Ardennes françaises Date d'inscription : 02/05/2012
| Sujet: Re: inutile mais pas pour moi... Mar 27 Oct 2020 - 14:57 | |
| Les mots à indexer proviennent d'un ficher word ou parfois de pages html.
D'autre part dés que je fais un CTRL C sur le mot "Fin" cela fonctionne. Je teste si le contenu du presse-papier contient ce mot et si oui je sors. Mais il faut que j'ai quelque part ce mot à copier.
Je m'étais dit pour ne pas le rechercher à chaque fois que je le mettrais dans une cellule du fichier excel, mais ça génère une erreur (que je n'ai pas notée mais que je pourrais retrouver)
Et je trouvais plus "élégant" de sortir par escape...
L'erreur c'est : erreur externe Ligne 85 L'appel a été rejeté par l'appelé
comme si ça se mordait la queue... | |
|
| |
Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: inutile mais pas pour moi... Mar 27 Oct 2020 - 16:05 | |
| Merci Maelilou des précisions.
C’est donc un programme extérieur à Panoramic qui prend la main (Word ou pages HTML).
Dans ce cas, Panoramic ne reçoit plus les évènements clavier, souris… qui se retrouvent dirigés vers Word ou les pages HTML suivant le cas.
Concrètement, en prenant l’exemple de Word, si l’on tape sur la touche "a" du clavier, ce caractère arrivera directement dans Word et non pas dans le programme Panoramic.
Je suis désolé, je n’ai pas de solution à te proposer. | |
|
| |
silverman
Nombre de messages : 970 Age : 52 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: Re: inutile mais pas pour moi... Mar 27 Oct 2020 - 16:16 | |
| dans 'surveille', essaye d'ajouter ceci: - Code:
-
set_focus 0 : if scancode=27 then terminate | |
|
| |
maelilou
Nombre de messages : 180 Age : 76 Localisation : Ardennes françaises Date d'inscription : 02/05/2012
| Sujet: Re: inutile mais pas pour moi... Mar 27 Oct 2020 - 17:06 | |
| Merci Marc et silverman.
Avec :
set_focus 0 : if scancode=27 : ' On finit
Cela fonctionne, mais il ne faut pas fermer Form 0 Ou alors utiliser un form que je réduis à sa plus simple taille... Mais ce n'est pas grave.
De toute façon la génération de l'index de ce bouquin ne concernera que moi et pas un lecteur ou utilisateur éventuel.
Encore merci. | |
|
| |
Contenu sponsorisé
| Sujet: Re: inutile mais pas pour moi... | |
| |
|
| |
| inutile mais pas pour moi... | |
|