Planning
#1
Bonjour,

Voilà, je me permets de faire ce poste pour demander de l'aide afin d'optimiser mon code. En fait il s'agit d'un code TCL pour la gestion du Timing des animations Radio "Planning", ce qui me manque dans le code, c'est que quand quelqu'un essaie de réserver tranche horaire et que c'est déjà réservée par un une personne X, le Bot rejet la réservation, et que la liste des planning soit réinitialiser chaque jour après minuit, et que la syntaxe de la commande d'ajout serait comme ceci: (arg serait une heure et si l'heure est déjà réservée, la demande serait rejetée)

Code :
<Ryan> !addpl 01/02/2011 21:00 - 21:00 Nom_Émission
<Radio>OK. Planning réservé.
----------------------------------
<Ryan> !addpl 21:00 Nom_Émission
<Radio>KO. Planning déjà réservé par Nick [heure]

Voici mon code que je veux améliorer.
TCL
bind pub - !addpl add_pl
proc add_pl { nick host hand channel arg } {
global add_pl
      set emission [lrange $arg 2 end]
      set Date [lindex $arg 0]
      set Heure [lindex $arg 1]
         if {$emission == ""} { 
                set emission "<Aucune précision donnée>" 
        } 
set pl "planning.txt"        
set f [open "$pl" "a"]
puts $f "\002\00306$Date \00312à\00306 $Heure \00312c'est\00306 $emission \00312avec:\00301 $nick "
close $f
putquick "NOTICE $nick OK. Is good."
}
 
 
 
 
 
bind pub -|- !delpl pub_delpl
proc pub_delpl {nick host hand chan arg} {
global vhostniv1 salonstaff
    set filepl "./planning.txt"
            set theris [file exists [file join ./ temp_planning.txt]]
            if {$theris != 0} {
                eval "exec rm -f ./temp_planning.txt"
            }
            set tempfile [open [file join ./ temp_planning.txt] "w+"]
            set file [open $filepl "r+"]
            set ln 1
            while {[eof $file] == 0} {
                set line [gets $file]
                set msg $line
                set dele 0
                foreach prm $arg {
                    if {$ln == $prm} {
                        set dele 1
                    }
                }
                if {$dele == 0} {
                    if {$msg != ""} {
                        puts $tempfile "$msg"
                    }
                }
                set dele 0
                set ln [expr {$ln} +1]
            }
            putquick "NOTICE $nick :\00312- Planning libéré < $arg > -"
            close $tempfile
            close $file
            eval "exec mv -f ./temp_planning.txt $filepl"
            return 1
        }
 
 
 
 
bind pub -|- !pl pub_planning
bind pub -|- !planning pub_planning
proc pub_planning {nick host hand chan arg} {
			set filepl "./planning.txt"
						if {![file exists $filepl]} {
						putquick "NOTICE $nick : Pas de Planning prévu "
						return 0
					}
					putquick "NOTICE $nick :Animation prévu"
					set data [open $filepl "r"]
					set numpl 0
					while {![eof $data]} { 
						gets $data datapl
						incr numpl
						if { $datapl != "" } {
							putquick "NOTICE $nick : $numpl  $datapl"
						}
					}
					if {[eof $data]} {
                              putquick "NOTICE $nick :Fin de la liste"
						close $data
					}
				}



Merci de votre aide.
Répondre Avertir
#2
Personne ne saura me préciser ce que je dois rajouter dans le code ?
Répondre Avertir
#3
Si tu as su faire la procedure pub_delpl, le système de vérification en est une simple adaptation.
Par contre, je serais à ta place, je ferais plutôt un fichier au format csv pour enregistrer les plannings, en stockant dedans:
debut;fin;animateur;titre;
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
Tchat 100% gratuit -Discutez en toute liberté