Gambas France BETA


Pas de compte ? Incription

Petit module

Ce sujet est résolu.

12
AuteurMessages
DIM900#1 Posté le 5/2/2014 à 16:11:54
Bonjour a tous

Dans mon prog, je cherche , du moins j'aimerai :) : , lancer un process qui tourne en permanence sans déranger ou bloquer mon prog..

Je m'explique, j 'ai des fichier que je dois déposer sur un serveur une fois par jour.. Actuellement, cela se fait manuellement par un boutton :cheers: :cheers: .. J'aimerai automatiser cette opération, mais la je sèche complet..
Mon idée, un compteur qui lancerai le process une fois par jour ou a une heure précise..
Mais comment l’écrire sans que le prog soit bloqué avant ou après (pendent je comprend bien et par sécurité il faut le bloquer)..
Je voudrai une gambas grillée ;) :lol!:
Merci :cheers: :lol!:
Reivillo#2 Posté le 5/2/2014 à 17:49:51
C' est ici, et nul part ailleurs. « Et pis c'est tout ! »Bonjour DIM900.

Correction de mon message précédent.
Ce petit bout de Code te donnera,
peut-être des idées...

Reivillo.
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
' Gambas class file

PUBLIC hTimer AS NEW Timer AS "hTimer"

PUBLIC SUB Form_Open()

hTimer.Delay = &H1388& '5 secondes pour Test
'hTimer.Delay = &H36EE80& 'Control du hTimer toutes les Heures
hTimer.Enabled = TRUE

END

PUBLIC SUB hTimer_Timer()

PRINT "hTimer_Timer" 'Pour Teste seulement

SELECT Hour(Now) = 1 'Exemple = 1h du Matin
CASE TRUE
FileUpdate
CASE FALSE
'Sous réserve
END SELECT

END

PUBLIC SUB FileUpdate()

PRINT "FileUpdate ";; Now 'Pour Teste seulement

'Mettre ici le contenu de ton Boutton manuel Actuel
'Donc les Commandes à Exécuter...

END

PUBLIC SUB Button1_Click() 'Changer le contenu de ton Boutton manuel Actuel en...

FileUpdate

END

Version LinuxMint 13 (1.6.1-1+maya-mate(32-bit)) LTS Noyau 3.14.33-031433-generic (27-02-2015)
LinuxMint 13 Mate Fr ICI, LinuxMint 17 Mate Fr .
Programmation Gambas3 Installé depuis la Console Terminal avec successivement: Les 3 Lignes sudo en Gras ci-dessous...
sudo add-apt-repository ppa:gambas-team/gambas3
sudo apt-get update
sudo apt-get install gambas3 -y
Gambas3.8.4-57.47 (Mise à Jour Auto via mintupdate le 28-01-2016)
Pour la Doc, c'est vers là: Documentation Gambas3 FR
Jack#3 Posté le 6/2/2014 à 07:51:46
Bonjour,

pour moi la solution serait de créer un script Gambas en ligne de commande que tu lancerai régulièrement par un cron.
Pour un code démocratique nationalisons Gambas.
Reivillo#4 Posté le 6/2/2014 à 08:00:34
C' est ici, et nul part ailleurs. « Et pis c'est tout ! »Bonjour Jack.

Encore une collision de message.
Désolé.

@DIM900.
J'ai corrigé mon premier Message.

Version LinuxMint 13 (1.6.1-1+maya-mate(32-bit)) LTS Noyau 3.14.33-031433-generic (27-02-2015)
LinuxMint 13 Mate Fr ICI, LinuxMint 17 Mate Fr .
Programmation Gambas3 Installé depuis la Console Terminal avec successivement: Les 3 Lignes sudo en Gras ci-dessous...
sudo add-apt-repository ppa:gambas-team/gambas3
sudo apt-get update
sudo apt-get install gambas3 -y
Gambas3.8.4-57.47 (Mise à Jour Auto via mintupdate le 28-01-2016)
Pour la Doc, c'est vers là: Documentation Gambas3 FR
DIM900#5 Posté le 7/2/2014 à 20:02:50
Hello

Merci pour vos réponses..

Pour mon mon prog j'ai préféré utiliser le "Timer".. Il convenait plus à l'utilisation du prog..
Voici le code :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
' Gambas class file
PUBLIC $hTimerRetInfSGS AS Timer
PUBLIC $j AS DATE = Date(Now)

PUBLIC SUB _new()
$hTimerRetInfSGS = NEW Timer AS "autoRetInfoFGS"
'Configuration du Timer
$hTimerRetInfSGS.Delay = 5000
$hTimerRetInfSGS.Enabled = TRUE
END

PUBLIC SUB autoRetInfoFGS_Timer()
IF $bTmp1 = FALSE THEN
SELECT CASE Date(Now) = $j
CASE TRUE
''Code pour button
CASE FALSE
''Message d'attente
END SELECT
ENDIF
END


Par contre je suis curieux :confused: :confused:
C'est quoi "cron" ???????? :confused: :confused: :confused:
Je voudrai une gambas grillée ;) :lol!:
Merci :cheers: :lol!:
linuxos#6 Posté le 8/2/2014 à 04:48:54
Un peu de sel, de poivre et la crevette sera... DIM900,

CRON est l'ordonnancer par défaut de tout système Unix/Linux et autres...

Il fonctionne de base sur tous les Linux.

Il regarde chaque minutes si il a des choses a lancer ou faire: lancer un script ou un commande

Pour la documentation => man cron

Olivier (le caribou)
Lorsqu'on s'occupe d'informatique, il faut faire comme les canards... Paraître calme en surface et pédaler comme un forcené par en dessous.
DIM900#7 Posté le 8/2/2014 à 10:03:48
Hello linuxos ( dit le caribou :rendeer: ) :lol!:

Ok merci de l'info je vais creuser plus pour apprendre à l'utiliser.

Toute fois, j'ai changé mon code du "Timer"..

Dans le FMain.form j'ai le widget "Timer" puis j'ai simplement fait la procédure suivante

1
2
3
4
5
6
7
8
9
10
11
12
13
PUBLIC SUB TimerRetInf_Timer()

IF $bTmp1 = FALSE THEN
IF $j = Date(Now) THEN
INC $j
btnRetourInfo_Click()
btnRetourInfo.text = "Retour information \nFait le : " & Now & "\n Prochain execution le : " & $j
ENDIF
ELSE
PRINT "cest pas l'heure"
ENDIF

END


Je trouve la façon de faire plus simple de ce que j'ai écrit au premier code si dessus.. :cyclops:
Je voudrai une gambas grillée ;) :lol!:
Merci :cheers: :lol!:
DIM900#8 Posté le 11/2/2014 à 16:29:59
Hello

J'ai un petit problème avec le code inscrit si dessus :( :( ..

Lors du lancement de mon prog, pas de problème particulier.. Je vois bien mon Tmer s’exécuter mais une seul fois.. Même avec la commande "TimerRetInf.Trigger" .. Bien sur avec les commande si dessus..

Par contre, si je met uniquement un « print » pour faire un test , le process ce lance X fois avec une intervalle de temps déterminé..

Voici le code :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
PUBLIC SUB TimerRetInfSGS_Timer()

IF $bTmp1 = FALSE THEN
IF $j = Minute(Now) THEN
INC $j
btnRetourInfoSGS_Click()
btnRetourInfoSGS.text = "Retour information SGS \nFait le : " & Format$(Now, "dd/mm/yy-hh:mm:ss") ''& "\n Prochain execution le : " & Format$($j, "dd/mm/yy")
TimerRetInfSGS.Trigger
ENDIF
ELSE
TimerRetInfSGS.Trigger
ENDIF
TextArea1.Text &= "Timer : " & TimerRetInfSGS.Delay & "\n"
TextArea1.EnsureVisible


END
Je voudrai une gambas grillée ;) :lol!:
Merci :cheers: :lol!:
Jack#9 Posté le 11/2/2014 à 17:30:06
C'est pas la variable $btmp1 qui serait mise à true ?
Pour un code démocratique nationalisons Gambas.
DIM900#10 Posté le 11/2/2014 à 17:50:32
Hello

Non. Car à la fin de la procédure "btnRetourInfoSGS_Click()" je la remet sur "False"..

J'ai fait le test suivant :

1
2
3
4
5
6
7
8
9
10
11
12
PUBLIC SUB TimerRetInfSGS_Timer()

' If $bTmp1 = False Then
Ecrirelog("Aucun process en cour.")
btnRetourInfoSGS_Click()
btnRetourInfoSGS.text = "Retour information SGS. \n Fait le : " & Format$(Now)
Ecrirelog("Retour information SGS Fait en automatique le: " & Format$(Now))
' Else
' Ecrirelog("Un Process est en cour.")
' Endif

END


Et pas de changement..
Je voudrai une gambas grillée ;) :lol!:
Merci :cheers: :lol!:
DIM900#11 Posté le 11/2/2014 à 18:14:21
hello

Il y a un truc que j'oublie de faire ou qui ne va pas..
Je voudrai une gambas grillée ;) :lol!:
Merci :cheers: :lol!:
Reivillo#12 Posté le 11/2/2014 à 19:26:54
C' est ici, et nul part ailleurs. « Et pis c'est tout ! »Bonsoir.

Pourquoi utiliser la propriété Trigger du Timer?
(le Trigger n'est exécuté qu'une fois après le Délay.)

Mais plutôt la propriété Enabled=True du Timer,
si tu veux un contrôl, tous les X Délay.
Version LinuxMint 13 (1.6.1-1+maya-mate(32-bit)) LTS Noyau 3.14.33-031433-generic (27-02-2015)
LinuxMint 13 Mate Fr ICI, LinuxMint 17 Mate Fr .
Programmation Gambas3 Installé depuis la Console Terminal avec successivement: Les 3 Lignes sudo en Gras ci-dessous...
sudo add-apt-repository ppa:gambas-team/gambas3
sudo apt-get update
sudo apt-get install gambas3 -y
Gambas3.8.4-57.47 (Mise à Jour Auto via mintupdate le 28-01-2016)
Pour la Doc, c'est vers là: Documentation Gambas3 FR
DIM900#13 Posté le 28/2/2014 à 23:50:55
Hello

J'ai enlevé la propriété "trigger" et remplace par "enabled=true".

Rien ni change.

Dans mon "Timer1_Timer()"´ j ai mon " btnRetourInfo_Click()". Jusque-là me direz vous rien de problématique, mais quand je lance mon programme le "Timer" fonction bien avec ma propriété "Deley" correcte.
J attend que le "Timer" reprend son fonctionnement après la propriété "delay" correcte (à oui j oublié, j'ai mis le widget Timer ans ma partie graphique). Mais rien ne se passe..

Lorsque j enleve " btnRetourInfo_Click()" de la procédure "Timer", le programme réagit bien au "Timer". Il se lance et relance après un délai bien déterminée lorsque le programme lancé.

Mon problème ne viendrai pas du fait que je fait appel à mon btnRetourInfoSGS_click() et non à une procédure claisque.
Je testerai ça ce wk et je reviens vers vous.
Je voudrai une gambas grillée ;) :lol!:
Merci :cheers: :lol!:
Reivillo#14 Posté le 1/3/2014 à 14:49:13
C' est ici, et nul part ailleurs. « Et pis c'est tout ! »Peux-tu montrer ton Code Actuel?
Version LinuxMint 13 (1.6.1-1+maya-mate(32-bit)) LTS Noyau 3.14.33-031433-generic (27-02-2015)
LinuxMint 13 Mate Fr ICI, LinuxMint 17 Mate Fr .
Programmation Gambas3 Installé depuis la Console Terminal avec successivement: Les 3 Lignes sudo en Gras ci-dessous...
sudo add-apt-repository ppa:gambas-team/gambas3
sudo apt-get update
sudo apt-get install gambas3 -y
Gambas3.8.4-57.47 (Mise à Jour Auto via mintupdate le 28-01-2016)
Pour la Doc, c'est vers là: Documentation Gambas3 FR
DIM900#15 Posté le 3/3/2014 à 13:39:39
Hello

Voici le code :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
PUBLIC SUB btnRecupInfoSGS_Click()
'' Code du boutton
....
...
END

PUBLIC SUB Timer1_Timer()

Ecrirelog("Aucun process en cour.")
btnRetourInfoSGS_Click()
btnRetourInfoSGS.text = "Retour information SGS. \n Fait le : " & Format$(Now)
Ecrirelog("Retour information SGS Fait en automatique le: " & Format$(Now))
Timer1.Enabled = TRUE
END


J'ai mon widget Timer1 sur FMain.from.. Et c'est tout..

Lors du premier lancement le Timer1 ce déclanche sans aucun problème.. Mais il ne se déclenche plus par la suite..
Param du Timer


Je voudrai une gambas grillée ;) :lol!:
Merci :cheers: :lol!:
12