Таймер |
Таймер |
soulrus |
Feb 29 2008, 05:21 PM
Post
#1
|
Посетитель Group: Members Posts: 4 Joined: 8-July 07 Member No.: 108 |
Помогите плиз исправить в скрипте вывод времени до повторного использования команды.
выглядит так: CODE proc time:replace { arg } { regsub -all -- {seconds} $arg "секунд" arg regsub -all -- {second} $arg "секунду" arg regsub -all -- {minutes} $arg "минут" arg regsub -all -- {minute} $arg "минуту" arg return $arg } putnotc $nick "\00310...........\00304 [time:replace $wtime]\00310 ......... и получается что пишит например: ........осталось 23 минут 2 секунд ...... несовподают слова и числа. а хотелосьбы чтоб например: ........осталось 23 минуты 2 секунды ...... это правда мелочь, но неприятно |
Kreon |
Feb 29 2008, 07:38 PM
Post
#2
|
Developer Group: Root Admin Posts: 396 Joined: -- From: Внешние пределы Member No.: 2 |
Пример правильной c грамматической точки зрения реализации времени можно посмотреть в соседней теме. Впрочем, это относится не только ко времени, а вообще ко всем случаям, когда надо вывести нечто считаемое.
Т.е. идея применения примерно такая: Создается процедура numgrp CODE proc time:numgrp {number} { switch -glob -- "$number" { *11 {return 3} *12 {return 3} *13 {return 3} *14 {return 3} *1 {return 1} *2 {return 2} *3 {return 2} *4 {return 2} default {return 3} } } Затем для вашего контекста, очевидно, необходимо использовать что-то в духе CODE proc time:replace { arg } { set date "" if {[regexp {(\d+) year} $arg garb t]} { append date " $t [lindex {. год года лет} [numgrp $t]]" } if {[regexp {(\d+) week} $arg garb t]} { append date " $t [lindex {. неделя недели недель} [numgrp $t]]" } if {[regexp {(\d+) day} $arg garb t]} { append date " $t [lindex {. день дня дней} [numgrp $t]]" } if {[regexp {(\d+) hour} $arg garb t]} { append date " $t [lindex {. час часа часов} [numgrp $t]]" } if {[regexp {(\d+) minute} $arg garb t]} { append date " $t [lindex {. минута минуты минут} [numgrp $t]]" } if {[regexp {(\d+) second} $arg garb t]} { append date " $t [lindex {. секунда секунды секунд} [numgrp $t]]" } return [string trim $date] } -------------------- Не понял сам - не дай понять другому
|
soulrus |
Mar 3 2008, 10:14 AM
Post
#3
|
Посетитель Group: Members Posts: 4 Joined: 8-July 07 Member No.: 108 |
Спасибо
|
Lo-Fi Version | Time is now: 25th May 2024 - 04:31 PM |