FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Décompilation
Des incomprèhension avec Timer Emptypar JL35 Hier à 19:57

» Un album photos comme du temps des grands-mères
Des incomprèhension avec Timer Emptypar jjn4 Hier à 17:23

» Un autre pense-bête...
Des incomprèhension avec Timer Emptypar Marc Hier à 16:00

» Récupération du contenu d'une page html.
Des incomprèhension avec Timer Emptypar Pedro Lun 11 Nov 2024 - 20:16

» traitement d'une feuille excel
Des incomprèhension avec Timer Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Des incomprèhension avec Timer Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Des incomprèhension avec Timer Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Des incomprèhension avec Timer Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Des incomprèhension avec Timer Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Des incomprèhension avec Timer Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Des incomprèhension avec Timer Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Des incomprèhension avec Timer Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Des incomprèhension avec Timer Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Des incomprèhension avec Timer Emptypar leclode Ven 20 Sep 2024 - 19:02

» Bonjour tout le monde !
Des incomprèhension avec Timer Emptypar Minibug Ven 20 Sep 2024 - 8:05

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le deal à ne pas rater :
Pokémon Évolutions Prismatiques : coffrets et dates de sortie de ...
Voir le deal

 

 Des incomprèhension avec Timer

Aller en bas 
2 participants
AuteurMessage
maelilou




Nombre de messages : 180
Age : 76
Localisation : Ardennes françaises
Date d'inscription : 02/05/2012

Des incomprèhension avec Timer Empty
MessageSujet: Des incomprèhension avec Timer   Des incomprèhension avec Timer EmptyMer 30 Oct 2024 - 13:30

Bonjour
Je tente de me faire un programme permettant de charger dans un fichier excel, case pas case, les noms que je dois indexer pour un bouquin.
J'utilise le presse papier pour les récupérer, et un timer pour déclencher l'éventuelle CTRL C que je fais dans le texte du dit bouquin.

3 cas se présentent :

- C'est du texte (nom d'une personne ou d'une ville par exemple) je l'écris dans excel et je passe à la colonne suivante
- C'est un nombre, c'est donc un numèro de page et je change alors de ligne dans excel
- C'est le mot Fin et je ferme alors le fichier et j'arrête.

Mais j'ai des problèmes avec la sortie de mes routines... Dues au Timer ?
A tout hasard je vous colle le code si vous avez deux minutes pour y regarder...
En tout Elip fonctionne pile poil !

Merci et bonne journée.



Code:
' generation d'un fichier excel contenant les mots à indexer
' François Vanderesse
' genere_index V1.0 29/10/2024
' il faut créer le fichier excel et modifier la ligne 36 en conséquence
' A1 contient le numéro de ligne courant B1 le dernier numèro de colonne utilisé
' Le premier no de colonne est @ 64 en ascii
' exemple A1=2 ligne 2   B1=D colonne D
' si le contenu du prese papier est un nombre, c'est qu'on change de page.
' En selectionnant le mot Fin le programme s'arrête. Mais le fichier doit être
' fermé manuellement. Pourquoi ?

  init()
  cparti()
  
  end
 ' -----Variables, labels etc.-------
 hide 0
 sub init()
 dim derlig$,dercol$,posex$,x$
 dim lastcopy$
 dim nopage$
 dim x
 dim lu$
 label surveille
 label lecturea1b1
 label ecriturea1b1
 label incnocolonne
 label ecrituredata
 end_sub
 
 
 ' -------------------------------------
 sub cparti()
 clipboard_string_copy "": ' vider le presse papier avant de démarrer
 excel_start   : ' ouverture d'excel
 excel_file_open 1,"D:\essai_index\essai_index_241026.xlsx"
 
 timer 99
 on_timer 99,surveille
 
 end_sub
 
 ' ----------------------------------------------------------------------------
 ' cette partie permet de surveiller si un "ctrl C" a eu lieu
 Surveille:
    timer_off 99                  :  ' désactiver le TIMER
    lu$ = clipboard_string_paste$ :  ' Récupere le contenu du presse-papier
    
    
    
  ' est-ce un changement de page ?  
 
    if numeric(lu$)=1
    message "on change de page dans le livre"
     gosub lecturea1b1
     derlig$=str$(val(derlig$)+1)
     dercol$="A"
     message derlig$+" "+dercol$
     gosub ecrituredata
     dercol$="B"
     gosub ecriturea1b1
  LastCopy$ = lu$        : ' Sauvegarder ce texte pour la prochaine comparaison  
    end_if
    
    
 ' -------------------------------------
 ' est-ce la fin de la saisie ?
    if lu$="Fin"
       message "C'est fini pour l'instant !"
 
          excel_write "A1",derlig$ : ' écriture du dernier no de ligne
          excel_write "B1",dercol$ : ' écriture du dernier no de colonne
          excel_file_close 1
      excel_stop
      terminate      
    end_if
        
 ' -------------------------------------
 ' C'est un nom à indexer
 
 if (lu$ <> LastCopy$) and (lu$ <> "") : ' Y a-t-il du nouveau ?
 
 gosub lecturea1b1  : ' récup deniere ligne et derniere colonne
 gosub incnocolonne : ' increment no colonne
 gosub ecrituredata
 gosub ecriturea1b1 : ' Misa à jour deniere ligne et derniere colonne
 
  LastCopy$ = lu$   : ' Sauvegarder ce texte pour la prochaine comparaison
    end_if
 ' ------------------------------------  
    clipboard_string_copy ""     : ' vider le presse papier
    timer_on 99                  : ' Réactiver le TIMER
return

 ' -------------------------------------
'lecture A1B1
lecturea1b1:
 derlig$=excel_read$ ("A1")  :' récupération no derniere ligne
 dercol$=excel_read$ ("B1")  :' récupération no derniere colonne
return

 ' -------------------------------------
'increment no colonne
incnocolonne:
x=asc(dercol$)

x=x+1
dercol$=chr$(x)

return

  ' -------------------------------------
'ecriture A1B1
ecriturea1b1:
  posex$="A1"
  excel_write posex$,derlig$ : ' écriture du dernier no de ligne
  
  posex$="B1"
  excel_write posex$,dercol$ : ' écriture du dernier no de colonne
return

 ' -------------------------------------
'ecriture d'une donnée
 ecrituredata:
  x$=dercol$+derlig$

  posex$=x$
  excel_write posex$,lu$
  
return
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Des incomprèhension avec Timer Empty
MessageSujet: Re: Des incomprèhension avec Timer   Des incomprèhension avec Timer EmptyMer 30 Oct 2024 - 14:35

Deux petites remarques, pour le principe:
1. la ligne 17 n(est jamais exécutée
2. un texte placé dans le presse-papier pendant le traitement d'un autre texte (plus précisément entre timer_off (ligne 46) et timer_on (ligne 92) est perdu

Ce ne sont pas des erreurs, c'est juste un constat du fonctionnement de ton code.

Pour ma part, à la lecture du code je ne vois pas d'anomalie flagrante. Le code est structuré correctement.

Maintenant tu dis avoir ds problèmes avec "la sortie de tes routines". Là, il faudrait en dire un peu plus.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
maelilou




Nombre de messages : 180
Age : 76
Localisation : Ardennes françaises
Date d'inscription : 02/05/2012

Des incomprèhension avec Timer Empty
MessageSujet: Re: Des incomprèhension avec Timer   Des incomprèhension avec Timer EmptyMer 30 Oct 2024 - 15:21

Merci Klaus pour ton regard d'expert.

Le problème que je rencontre c'est quand je veux changer de page. (le presse paier a alors un nombre correspondant à la future page à traiter)

Le changement de ligne se fait bien, mais le prog continue alors que j'aimerais qu'il se remette en attente du copié suivant.
C'est comme si le return ne se faisait pas...

Je ne sais pas si je me fais bien comprendre...
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Des incomprèhension avec Timer Empty
MessageSujet: Re: Des incomprèhension avec Timer   Des incomprèhension avec Timer EmptyMer 30 Oct 2024 - 16:50

Alors, je comprends mieux. Et si tu fsisais comme ceci:
Code:
  ' est-ce un changement de page ? 
 
    if numeric(lu$)=1
    message "on change de page dans le livre"
    gosub lecturea1b1
    derlig$=str$(val(derlig$)+1)
    dercol$="A"
    message derlig$+" "+dercol$
    gosub ecrituredata
    dercol$="B"
    gosub ecriturea1b1
  LastCopy$ = lu$        : ' Sauvegarder ce texte pour la prochaine comparaison 
    timer_on 99        : ' <===============
    return              : ' <===============
    end_if
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
maelilou




Nombre de messages : 180
Age : 76
Localisation : Ardennes françaises
Date d'inscription : 02/05/2012

Des incomprèhension avec Timer Empty
MessageSujet: Re: Des incomprèhension avec Timer   Des incomprèhension avec Timer EmptyMer 30 Oct 2024 - 17:16

Merci.

Là ça marche comme il faut.

Effectivement le hide 0 en ligne 17 était mal placé...

Par contre je ne comprends pas pourquoi après un "excel_file_close" la sauvegarde du fichier n'est pas faite d'office...
Mais c'est peut-être un problème à voir avec Jack ou un choix laissé à l'utilisateur ?
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Des incomprèhension avec Timer Empty
MessageSujet: Re: Des incomprèhension avec Timer   Des incomprèhension avec Timer EmptyMer 30 Oct 2024 - 17:27

Il vaut mieur laisser Excel ouvert e ne le fermer qu'à la fin réelle du programme. Même s'il est fermé par la croix rouge.

Comme ceci:
Code:
              ' generation d'un fichier excel contenant les mots à indexer
' François Vanderesse
' genere_index V1.0 29/10/2024
' il faut créer le fichier excel et modifier la ligne 36 en conséquence
' A1 contient le numéro de ligne courant B1 le dernier numèro de colonne utilisé
' Le premier no de colonne est @ 64 en ascii
' exemple A1=2 ligne 2  B1=D colonne D
' si le contenu du prese papier est un nombre, c'est qu'on change de page.
' En selectionnant le mot Fin le programme s'arrête. Mais le fichier doit être
' fermé manuellement. Pourquoi ?

  init()
  cparti()
 
  end
 ' -----Variables, labels etc.-------
 hide 0
 label close0        : ' <===========
 on_close 0,close0    : ' <===========
 sub init()
 dim derlig$,dercol$,posex$,x$
 dim lastcopy$
 dim nopage$
 dim x
 dim lu$, ExcelOpen%
 label surveille
 label lecturea1b1
 label ecriturea1b1
 label incnocolonne
 label ecrituredata
 end_sub
 
 ' -------------------------------------
close0:                    : ' <============ exécuter ceci lors de la fermeture de la form 0
  if ExcelOpen%=1
    excel_file_close 1
    excel_stop
  end_if
  retuen 
 
 ' -------------------------------------
 sub cparti()
 clipboard_string_copy "": ' vider le presse papier avant de démarrer
 excel_start  : ' ouverture d'excel
 excel_file_open 1,"D:\essai_index\essai_index_241026.xlsx"
 ExcelOpen% = 1            : ' <==============
 
 timer 99
 on_timer 99,surveille
 
 end_sub
 
 ' ----------------------------------------------------------------------------
 ' cette partie permet de surveiller si un "ctrl C" a eu lieu
 Surveille:
    timer_off 99                  :  ' désactiver le TIMER
    lu$ = clipboard_string_paste$ :  ' Récupere le contenu du presse-papier
   
   
   
  ' est-ce un changement de page ? 
 
    if numeric(lu$)=1
    message "on change de page dans le livre"
    gosub lecturea1b1
    derlig$=str$(val(derlig$)+1)
    dercol$="A"
    message derlig$+" "+dercol$
    gosub ecrituredata
    dercol$="B"
    gosub ecriturea1b1
  LastCopy$ = lu$        : ' Sauvegarder ce texte pour la prochaine comparaison 
    timer_on 99        : ' <===============
    return              : ' <===============
    end_if
   
   
 ' -------------------------------------
 ' est-ce la fin de la saisie ?
    if lu$="Fin"
      message "C'est fini pour l'instant !"
 
          excel_write "A1",derlig$ : ' écriture du dernier no de ligne
          excel_write "B1",dercol$ : ' écriture du dernier no de colonne
' **********          excel_file_close 1      <== par ici !
      terminate     
    end_if
       
 ' -------------------------------------
 ' C'est un nom à indexer
 
 if (lu$ <> LastCopy$) and (lu$ <> "") : ' Y a-t-il du nouveau ?
 
 gosub lecturea1b1  : ' récup deniere ligne et derniere colonne
 gosub incnocolonne : ' increment no colonne
 gosub ecrituredata
 gosub ecriturea1b1 : ' Misa à jour deniere ligne et derniere colonne
 
  LastCopy$ = lu$  : ' Sauvegarder ce texte pour la prochaine comparaison
    end_if
 ' ------------------------------------ 
    clipboard_string_copy ""    : ' vider le presse papier
    timer_on 99                  : ' Réactiver le TIMER
return

 ' -------------------------------------
'lecture A1B1
lecturea1b1:
 derlig$=excel_read$ ("A1")  :' récupération no derniere ligne
 dercol$=excel_read$ ("B1")  :' récupération no derniere colonne
return

 ' -------------------------------------
'increment no colonne
incnocolonne:
x=asc(dercol$)

x=x+1
dercol$=chr$(x)

return

  ' -------------------------------------
'ecriture A1B1
ecriturea1b1:
  posex$="A1"
  excel_write posex$,derlig$ : ' écriture du dernier no de ligne
 
  posex$="B1"
  excel_write posex$,dercol$ : ' écriture du dernier no de colonne
return

 ' -------------------------------------
'ecriture d'une donnée
 ecrituredata:
  x$=dercol$+derlig$

  posex$=x$
  excel_write posex$,lu$
 
return
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
maelilou




Nombre de messages : 180
Age : 76
Localisation : Ardennes françaises
Date d'inscription : 02/05/2012

Des incomprèhension avec Timer Empty
MessageSujet: Re: Des incomprèhension avec Timer   Des incomprèhension avec Timer EmptyMer 30 Oct 2024 - 17:29

2. un texte placé dans le presse-papier pendant le traitement d'un autre texte (plus précisément entre timer_off (ligne 46) et timer_on (ligne 92) est perdu

Là je n'ai pas compris ce que tu voulais me dire...
Question de béotien. sans doute. ..
Mais voilà bien longtemps que je n'avais sorti une ligne de programme.
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Des incomprèhension avec Timer Empty
MessageSujet: Re: Des incomprèhension avec Timer   Des incomprèhension avec Timer EmptyMer 30 Oct 2024 - 17:36

Citation :
Là je n'ai pas compris ce que tu voulais me dire...

Eh bien, regarde ton code:
Code:
  LastCopy$ = lu$  : ' Sauvegarder ce texte pour la prochaine comparaison
    end_if
 ' ------------------------------------ 
    clipboard_string_copy ""    : ' vider le presse papier
    timer_on 99                  : ' Réactiver le TIMER
return

Avant de réactiver le timer, tu vides explicitement le presse-papier ! Et donc, tout ce qui est arrivé entretemps, est perdu.

Pour éviter cela, tu pourrais vider le presse-papier immédiatement après avoir récupéré son contenu. Ainsi, tu auras plus de chances de récupérer un contenu arrivé entretemps. Bien spur, su deux ou plusieurs termes sont arrivées entretemps... enfin, tu sois le principe !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
maelilou




Nombre de messages : 180
Age : 76
Localisation : Ardennes françaises
Date d'inscription : 02/05/2012

Des incomprèhension avec Timer Empty
MessageSujet: Re: Des incomprèhension avec Timer   Des incomprèhension avec Timer EmptyMer 30 Oct 2024 - 17:45

Merci Klaus

Je vais regarder cela demain et pour ce soir prendre une aspirine Very Happy

C'est dur de se remettre à la tâche...
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Des incomprèhension avec Timer Empty
MessageSujet: Re: Des incomprèhension avec Timer   Des incomprèhension avec Timer EmptyMer 30 Oct 2024 - 18:26

Rassure-oit - ton retour augure de bonnes choses !

Tu as bien compris:
- le principe de la progfammation par évènements
-l'utilisation du timer
- et surtout la désactivation du timer pendant le traitement d'un évènement
- la structuration du prgramme à l'aide des SUB

Tu as clairement des bases solides et je m'attends à des choses intéressantes de ta part !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé





Des incomprèhension avec Timer Empty
MessageSujet: Re: Des incomprèhension avec Timer   Des incomprèhension avec Timer Empty

Revenir en haut Aller en bas
 
Des incomprèhension avec Timer
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Problème avec timer
» problème avec dimension du Form 0 et/ou timer
» Problème de Timer.
» IF Timer on or off ?
» sub, timer et boucle repeat...

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: