Mise en forme de code: pensez à utiliser les balises [ tcl ] et [ /tcl ] (sans les espaces bien sûr) autour de vos codes tcl afin d'avoir un meilleur rendu et une coloration syntaxique. x


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.
#2
Personne ne saura me préciser ce que je dois rajouter dans le code ?
#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;
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away


Possibly Related Threads…
Thread Author Replies Views Last Post
  Demande script Planning deejay-wilo 18 5,482 07/12/2021, 14:31
Last Post: CrazyCat
  [Demande] Planning radio nydalimar 8 5,833 08/10/2016, 17:52
Last Post: CrazyCat
  !planning radio Babytigrou16 18 11,559 01/07/2009, 11:31
Last Post: heretoc

Forum Jump:


Users browsing this thread: 1 Guest(s)