Вверх ↑
Этот топик читают: Гость
Ответов: 75
Рейтинг: -3
#16: 2008-07-29 13:57:28 ЛС | профиль | цитата
А я жду что сделает bublik
------------ Дoбавленo:

хотел вчера сделать, но передумал
А я 10 раз передумывал, и решил сделать, хотя смысла делать особого не было, потому что bublik сделает в 10 раз лучше
карма: 1

-1
Голосовали:Астрамак
Ответов: 16884
Рейтинг: 1239
#17: 2008-07-29 15:06:31 ЛС | профиль | цитата
Это я был - опять в гостях.
alexpro, а так не пробовал, например для дней

Add(StrList,1038440,175,42)
{
Strings=#6:Ошибка|6:первое|6:второе|6:третье|9:четвертое|5:пятое|6:шестое|7:седьмое|7:восьмое|7:девятое|7:десятое|12:одиннадцатое|11:двенадцатое|11:тринадцатое|13:четырнадцатое|11:пятнадцатое|12:шестнадцатое|11:семнадцатое|13:восемнадцатое|13:девятнадцатое|9:двадцатое|15:двадцать первое|15:двадцать второе|15:двадцать третье|18:двадцать четвертое|14:двадцать пятое|15:двадцать шестое|16:двадцать седьмое|16:двадцать восьмое|16:двадцать девятое|9:тридцатое|15:тридцать первое|
Point(doGetString)
Point(String)
Point(onGetString)
link(onGetString,9730473:doText,[])
}
Add(Edit,3835989,112,84)
{
Left=65
Top=20
link(onChange,1038440:doGetString,[])
}
Add(Label,9730473,231,49)
{
Left=65
Top=65
}
Для месяцев попроще - там всего 12
Для годов - первых две цифры вообще только раз


карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26163
Рейтинг: 2127
#18: 2008-07-29 15:09:35 ЛС | профиль | цитата
Вот сделал заготовку для дней (год, пока, не делал)


Add(MainForm,15545416,49,196)
{
Left=20
Top=105
}
Add(Edit,7763193,112,196)
{
Left=120
Top=15
Width=135
Text="31.10.1991"
}
Add(Button,9752373,49,259)
{
Left=165
Top=40
Caption="Convert"
link(onClick,3806260:doConvert,[])
}
Add(DateConvertor,3806260,112,259)
{
Mode=8
Format="dd.MM.yyyy"
Point(Data)
link(onResult,4802132:doConvert,[])
link(Data,7763193:Text,[])
}
Add(DateConvertor,4802132,168,259)
{
Mode=9
Format="dd.MMMM.yyyy"
Point(Data)
link(onResult,13897383:doSplit,[])
}
Add(StrPart,13897383,224,259)
{
Char="."
Point(Left)
link(onSplit,7654602:doSplit,[])
}
Add(StrPart,7654602,280,259)
{
Char="."
Point(Left)
link(onSplit,3883446:doValue,[])
}
Add(Memory,3883446,336,259)
{
link(onData,6514025:doConvert,[])
}
Add(StrList,10808902,518,98)
{
Strings=#0:|6:Первое|6:Второе|6:Третье|9:Четвертое|5:Пятое|6:Шестое|7:Седьмое|7:Восьмое|7:Девятое|7:Десятое|12:Одиннадцатое|11:Двенадцатое|11:Тринадцатое|13:Четырнадцатое|11:Пятнадцатое|12:Шестнадцатое|12:Семьнадцатое|14:Восемьнадцатое|13:Девятнадцатое|
}
Add(Math,8187818,546,259)
{
OpType=7
Op2=20
ResultType=0
link(onResult,12259435:doCase,[])
}
Add(Hub,919779,483,259)
{
link(onEvent1,8187818:doOperation,[])
link(onEvent2,14523969:doString,[(524,272)(524,580)])
}
Add(Convertor,6514025,385,259)
{
Mode=1
link(onResult,14397107:doValue,[])
link(Data,13897383:Left,[(391,247)(311,247)(311,303)(230,303)])
}
Add(Case,12259435,602,259)
{
Value=Integer(0)
link(onNextCase,11738413:doOperation,[(646,265)(646,311)(513,311)(513,349)])
link(onTrue,12520096:doRead,[])
}
Add(ArrayRW,12520096,763,266)
{
link(onRead,13230726:doEvent1,[])
link(Array,1493060:getVar,[])
link(Index,4528338:Var3,[(776,212)])
}
Add(StrList,5670325,749,98)
{
Strings=#0:|6:Первое|6:Второе|6:Третье|9:Четвертое|5:Пятое|6:Шестое|7:Седьмое|7:Восьмое|7:Девятое|
}
Add(StrList,7845986,672,98)
{
Strings=#0:|8:Двадцать|8:Тридцать|
}
Add(Math,8138607,637,343)
{
OpType=8
Op2=30
ResultType=0
link(onResult,428571:doCase,[])
link(Op1,4777786:Var3,[(643,303)])
}
Add(StrList,15355631,595,98)
{
Strings=#0:|9:Двадцатое|9:Тридцатое|
}
Add(Case,5590552,581,343)
{
Value=Integer(0)
link(onNextCase,8138607:doOperation,[])
link(onTrue,3835718:doOperation,[(625,356)(625,433)(513,433)(513,496)])
}
Add(ArrayRW,7967263,763,413)
{
Index=Integer(2)
link(onRead,16604030:doWork3,[(816,419)])
link(Array,14008214:getVar,[])
}
Add(GetDataEx,4528338,518,203)
{
Angle=3
link(Data,14397107:Value,[(486,212)(486,310)(440,310)])
}
Add(GetDataEx,1019399,518,294)
{
link(Data,4528338:Var2,[])
}
Add(ArrayRW,14164208,1008,497)
{
link(Array,4434918:getVar,[])
}
Add(ArrayRW,15420089,763,343)
{
Index=Integer(2)
link(onRead,16604030:doWork2,[])
link(Array,11601334:getVar,[])
}
Add(LineBreakEx,2292861,532,161)
{
Caption="1_19"
Type=3
link(_Data,10808902:Array,[])
}
Add(LineBreakEx,15014210,609,161)
{
Caption="20-30"
Type=3
link(_Data,15355631:Array,[])
}
Add(LineBreakEx,3386590,686,161)
{
Caption="2X-3X"
Type=3
link(_Data,7845986:Array,[])
}
Add(LineBreakEx,6402494,763,161)
{
Caption="1_9"
Type=3
link(_Data,5670325:Array,[])
}
Add(LineBreakEx,1493060,763,224)
{
Caption="1_19"
Type=2
}
Add(LineBreakEx,14008214,763,378)
{
Caption="20-30"
Type=2
}
Add(LineBreakEx,11601334,763,308)
{
Caption="2X-3X"
Type=2
}
Add(LineBreakEx,4434918,1008,462)
{
Caption="1_9"
Type=2
}
Add(Memory,14397107,434,259)
{
link(onData,919779:doEvent1,[])
}
Add(Math,11738413,525,343)
{
OpType=7
Op2=30
ResultType=0
link(onResult,5590552:doCase,[])
link(Op1,1019399:Var2,[])
}
Add(Math,6345178,637,490)
{
OpType=8
Op2=20
ResultType=0
link(onResult,9106423:doCase,[])
link(Op1,7424738:Var3,[(643,443)])
}
Add(Case,1986975,588,490)
{
Value=Integer(0)
link(onNextCase,6345178:doOperation,[])
}
Add(ArrayRW,12728939,763,567)
{
Index=Integer(1)
link(onRead,5329304:doWork3,[(816,573)])
link(Array,12518904:getVar,[])
}
Add(ArrayRW,16467400,763,490)
{
Index=Integer(1)
link(onRead,5329304:doWork2,[])
link(Array,9352090:getVar,[])
}
Add(LineBreakEx,12518904,763,532)
{
Caption="20-30"
Type=2
}
Add(LineBreakEx,9352090,763,455)
{
Caption="2X-3X"
Type=2
}
Add(Math,3835718,539,490)
{
OpType=7
Op2=20
ResultType=0
link(onResult,1986975:doCase,[])
link(Op1,7424738:Var2,[])
}
Add(GetDataEx,4777786,532,294)
{
Angle=3
link(Data,1019399:Var3,[])
}
Add(GetDataEx,7424738,532,434)
{
link(Data,4777786:Var2,[])
}
Add(Case,428571,693,343)
{
Value=Integer(0)
link(onNextCase,15420089:doRead,[])
link(onTrue,7967263:doRead,[(744,356)(744,419)])
}
Add(Case,9106423,693,490)
{
Value=Integer(0)
link(onNextCase,16467400:doRead,[])
link(onTrue,12728939:doRead,[(744,503)(744,573)])
}
Add(DoData,8325113,910,497)
{
link(onEventData,3436618:doWork2,[])
link(Data,6345178:Result,[(916,478)(744,478)(744,534)(643,534)])
}
Add(HubEx,5329304,812,483)
{
link(onEvent,6451749:doEvent1,[])
}
Add(DoData,2122006,910,350)
{
link(onEventData,8381481:doWork2,[])
link(Data,8138607:Result,[(916,331)(744,331)(744,387)(643,387)])
}
Add(HubEx,16604030,812,336)
{
link(onEvent,3952953:doEvent1,[])
}
Add(HubEx,3436618,980,490)
{
link(onEvent,14164208:doRead,[])
}
Add(Hub,3952953,840,343)
{
link(onEvent1,9186330:doWork2,[])
link(onEvent2,2122006:doData,[])
}
Add(Hub,6451749,840,490)
{
link(onEvent1,9186330:doWork3,[(963,496)])
link(onEvent2,8325113:doData,[])
}
Add(Memory,10399570,1001,343)
{
}
Add(HubEx,9186330,959,336)
{
link(onEvent,10399570:doValue,[])
}
Add(DoData,11444854,910,273)
{
Data=Integer(0)
link(onEventData,8381481:doWork1,[(984,279)])
}
Add(Hub,13230726,840,266)
{
link(onEvent1,9186330:doWork1,[(963,272)])
link(onEvent2,11444854:doData,[])
}
Add(HubEx,8381481,980,343)
{
Angle=1
link(onEvent,3436618:doWork1,[])
}
Add(FormatStr,14523969,1001,574)
{
DataCount=3
Mask="%1 %2 %3 "
link(onFString,3019466:doModify,[])
link(Str1,10399570:Value,[])
link(Str2,14164208:Item,[])
link(Str3,7654602:Left,[(1021,436)(286,436)])
}
Add(StrCase,3019466,1050,574)
{
Type=2
link(onModify,1588202:doText,[])
}
Add(StrList,2066384,854,98)
{
Strings=#0:|4:Одна|3:Две|3:Три|6:Четыре|4:Пять|5:Шесть|4:Семь|6:Восемь|6:Девять|
}
Add(StrList,4784356,924,98)
{
Strings=#0:|3:Сто|6:Двести|6:Триста|9:Четыреста|7:Пятьсот|8:Шестьсот|7:Семьсот|9:Восемьсот|9:Девятьсот|
}
Add(Label,1588202,1113,574)
{
Left=10
Top=80
Width=370
Height=20
Caption=""
AutoSize=1
}

карма: 22

0
Ответов: 16884
Рейтинг: 1239
#19: 2008-07-29 16:27:04 ЛС | профиль | цитата
nesco, если по честному, то здорово удивил. То же на 11 компонентах

Add(StrList,1038440,280,91)
{
Strings=#6:Ошибка|6:первое|6:второе|6:третье|9:четвертое|5:пятое|6:шестое|7:седьмое|7:восьмое|7:девятое|7:десятое|12:одиннадцатое|11:двенадцатое|11:тринадцатое|13:четырнадцатое|11:пятнадцатое|12:шестнадцатое|11:семнадцатое|13:восемнадцатое|13:девятнадцатое|9:двадцатое|15:двадцать первое|15:двадцать второе|15:двадцать третье|18:двадцать четвертое|14:двадцать пятое|15:двадцать шестое|16:двадцать седьмое|16:двадцать восьмое|16:двадцать девятое|9:тридцатое|15:тридцать первое|
Point(doGetString)
Point(String)
Point(onGetString)
}
Add(Edit,3835989,210,70)
{
Left=65
Top=20
Width=90
Text="28.09.1900"
}
Add(Label,9730473,336,266)
{
Left=65
Top=65
}
Add(StrList,14917421,280,175)
{
Strings=#6:ошибка|6:января|7:февраля|5:марта|6:апреля|3:мая|4:июня|4:июля|7:августа|8:сентября|7:октября|6:ноября|7:декабря|
Point(doGetString)
Point(String)
}
Add(Button,6443997,56,126)
{
Left=65
Top=160
link(onClick,6936354:doEvent1,[])
}
Add(StrPart,7521220,210,126)
{
Char="."
link(onSplit,3362184:doSplit,[(255,132)(255,167)(198,167)(198,181)])
link(onPart,1038440:doGetString,[])
link(Str,3835989:Text,[])
}
Add(StrPart,3362184,210,175)
{
Char="."
link(onSplit,14354765:doValue,[(289,181)(289,174)])
link(onPart,14917421:doGetString,[(261,188)(261,223)])
}
Add(FormatStr,13160881,287,266)
{
DataCount=3
Mask="%1 %2 %3 года"
link(onFString,9730473:doText,[])
link(Str1,1038440:String,[(293,204)(307,204)])
link(Str2,14917421:String,[(300,246)(307,246)])
link(Str3,14354765:Value,[(307,233)(342,233)])
}
Add(Hub,6936354,112,126)
{
link(onEvent1,7521220:doSplit,[])
link(onEvent2,13160881:doString,[(170,139)(170,272)])
}
Add(Memory,14354765,336,168)
{
}


------------ Дoбавленo:

год, пока, тоже не делал
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26163
Рейтинг: 2127
#20: 2008-07-29 16:38:33 ЛС | профиль | цитата
Tad писал(а):
если по честному, то здорово удивил

Да я пытался построить не частный алгоритм, а общий -- чистый эксперимент, да и баловство это, совсем неоптимизированное.
Ты чаще работаещь с датами, я -- реже, да и наработок у меня по этой теме нет
Вот если бы попросили нарисовать схему с удаленным упрвлением контекстом отрисовки, ну или с MT-потоками...
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#21: 2008-07-29 17:06:01 ЛС | профиль | цитата
Просто дней всего 31 и в Edite готовый индекс
Месяцев и того меньше и тоже готовый индекс
С годом посложнее. но наверное пусть Новый сам голову поломает
bublik писал(а):
немного математики надо
можно совсем без математики
------------ Дoбавленo:

а вот это я включил между нижней точкой Edit и дальше.

Add(Edit,3835989,210,14)
{
Left=65
Top=20
Width=90
Text="28.09.1900"
}
Add(Replace,2522265,210,63)
{
@Hint=#33:Преобразование формата ДД-ММ-ГГГГ|
SubStr="-"
DestStr="."
Point(CurentStr)
link(Str,3835989:Text,[])
}
Add(Replace,1531367,210,112)
{
@Hint=#33:Преобразование формата ДД/ММ/ГГГГ|
SubStr="/"
DestStr="."
Point(CurentStr)
link(Str,2522265:CurentStr,[])
}


карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26163
Рейтинг: 2127
#22: 2008-07-29 17:14:16 ЛС | профиль | цитата
Tad, а чем конвертор даты не устроил, размером, наверное
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#23: 2008-07-29 17:28:11 ЛС | профиль | цитата
Подсказка для Новый - год начинай анализировать со второго знака с конца и год иногда пишут без первых двух.
------------ Дoбавленo:

nesco писал(а):
а чем конвертор даты не устроил
да забыл я про него
и по честному незнаю , как им дату,которая может быть написана 12-5-1999 или 2/5/2004 превратить в 12.5.1999 или 2.5.2004 (заменить "-" или "/" на точку, хотя могут написать и 12/5-1978)
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26163
Рейтинг: 2127
#24: 2008-07-29 17:28:12 ЛС | профиль | цитата
Tad, а вообще-то конвертор даты в твойе схеме был бы предпочтительнее, исключилась бы одна динамическая структура -- StrList с месяцами
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#25: 2008-07-29 17:32:02 ЛС | профиль | цитата
Покажи как. Недоходит.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26163
Рейтинг: 2127
#26: 2008-07-29 17:33:24 ЛС | профиль | цитата
Ну, например вот так было бы предпочтительнее, сразу месяц можно в стринг превратить, да и разделители "." появятся



Add(MainForm,15137133,126,84)
{
Left=20
Top=105
}
Add(Edit,13184516,203,84)
{
Left=20
Top=15
Width=155
Text="18-09-1991"
}
Add(Button,1116410,126,133)
{
Left=155
Top=45
Caption="Convert"
link(onClick,5193398:doConvert,[])
}
Add(Edit,3834846,322,133)
{
Left=180
Top=15
Width=155
Text=""
}
Add(DateConvertor,5193398,203,133)
{
Mode=8
Format="dd-MM-yyyy"
Point(Data)
link(onResult,11868898:doConvert,[])
link(Data,13184516:Text,[])
}
Add(DateConvertor,11868898,259,133)
{
Mode=9
Format="dd.MMMM.yyyy"
Point(Data)
link(onResult,3834846:doText,[])
}

карма: 22

0
Ответов: 16884
Рейтинг: 1239
#27: 2008-07-29 17:48:59 ЛС | профиль | цитата
Не уверен. Месяц string еще вытащить надо. Вот если бы в Replace точки SubStr и DestStr можно было вытащить наружу, то тогда да - считал 18 день "восемнадцатое" задал SubStr=18 DestStr= "восемнадцатое" и в дамках.
А так получается
В момент падающей звезды мальчик не успел определиться с желанием
и на следующий день получил многоскоростной велосипед с сиськами...

------------ Дoбавленo:

Так что, как говорила моя покойная супруга: " Лучше раз родить, чем всю жизнь бриться"
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26163
Рейтинг: 2127
#28: 2008-07-29 17:49:16 ЛС | профиль | цитата
Tad, шо там его вытаскивать



Add(MainForm,1787262,203,203)
{
Left=20
Top=105
}
Add(StrList,1038440,497,217)
{
Strings=#6:Ошибка|6:первое|6:второе|6:третье|9:четвертое|5:пятое|6:шестое|7:седьмое|7:восьмое|7:девятое|7:десятое|12:одиннадцатое|11:двенадцатое|11:тринадцатое|13:четырнадцатое|11:пятнадцатое|12:шестнадцатое|11:семнадцатое|13:восемнадцатое|13:девятнадцатое|9:двадцатое|15:двадцать первое|15:двадцать второе|15:двадцать третье|18:двадцать четвертое|14:двадцать пятое|15:двадцать шестое|16:двадцать седьмое|16:двадцать восьмое|16:двадцать девятое|9:тридцатое|15:тридцать первое|
Point(doGetString)
Point(String)
Point(onGetString)
}
Add(Edit,3835989,308,203)
{
Left=65
Top=20
Width=90
Text="28-09-1900"
}
Add(Label,9730473,574,392)
{
Left=65
Top=65
}
Add(Button,6443997,203,252)
{
Left=65
Top=160
link(onClick,6936354:doEvent1,[])
}
Add(StrPart,7521220,399,252)
{
Char="."
link(onSplit,3362184:doSplit,[(443,258)(443,307)])
link(onPart,1038440:doGetString,[])
}
Add(StrPart,3362184,511,301)
{
Char="."
Point(Left)
link(onSplit,14354765:doValue,[])
}
Add(FormatStr,13160881,504,392)
{
DataCount=3
Mask="%1 %2 %3 года"
link(onFString,9730473:doText,[])
link(Str1,1038440:String,[(510,330)(524,330)])
link(Str2,3362184:Left,[])
link(Str3,14354765:Value,[(524,359)(580,359)])
}
Add(Hub,6936354,259,252)
{
link(onEvent1,5193398:doConvert,[])
link(onEvent2,13160881:doString,[(304,265)(304,398)])
}
Add(Memory,14354765,574,301)
{
}
Add(DateConvertor,5193398,308,252)
{
Mode=8
Format="dd-MM-yyyy"
Point(Data)
link(onResult,11868898:doConvert,[])
link(Data,3835989:Text,[])
}
Add(DateConvertor,11868898,350,252)
{
Mode=9
Format="dd.MMMM.yyyy"
Point(Data)
link(onResult,7521220:doSplit,[])
}
карма: 22

0
Ответов: 563
Рейтинг: 54
#29: 2008-07-29 17:54:20 ЛС | профиль | цитата
я сделал подчти, осталось год сделать это просто.
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#30: 2008-07-29 17:55:26 ЛС | профиль | цитата
nesco, у меня (в последнее время) появилось желание все возможные точки вытаскивать.
Ну почему те же SubStr и DestStr нельзя вытащить если в кодах
вроде есть

   substr := ReadString(_Data,_data_sub_str,_prop_SubStr);
dest := ReadString(_Data,_data_dest,_prop_DestStr);
а в компоненте нет.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)