Quiz Memorial Forum

Welcome Guest ( Log In | Register )

 
Reply to this topicStart new topic
> Таймер
soulrus
post 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 секунды ......
это правда мелочь, но неприятно smile.gif
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Kreon
post 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]
}


--------------------
Не понял сам - не дай понять другому
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
soulrus
post Mar 3 2008, 10:14 AM
Post #3


Посетитель
*

Group: Members
Posts: 4
Joined: 8-July 07
Member No.: 108



Спасибо
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 User(s) are reading this topic (2 Guests and 0 Anonymous Users)
0 Members:

 



Lo-Fi Version Time is now: 29th March 2024 - 02:37 AM
Design by GPF © 2006