Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 26163
Рейтинг: 2127
#16: 2008-11-22 21:41:31 ЛС | профиль | цитата
Мдяяя...


Add(MainForm,2953706,280,217)
{
}
Add(Button,12317080,280,266)
{
Left=15
Top=15
Data=String($GPGGA,004241.47,5532.8492,N,03729.0987,E,1,04,2.0,-0015,M,,,,*31)
link(onClick,14880075:doEvent1,[])
}
Add(Label,1949808,462,336)
{
Left=150
Top=60
link(Text,2896044:Value1,[])
}
Add(Label,11513507,469,343)
{
Left=150
Top=75
link(Text,2896044:Value2,[])
}
Add(Label,7790563,476,350)
{
Left=150
Top=95
link(Text,2896044:Value3,[])
}
Add(Label,6920568,483,357)
{
Left=150
Top=115
link(Text,2896044:Value4,[])
}
Add(Label,13130245,490,364)
{
Left=150
Top=135
link(Text,2896044:Value5,[])
}
Add(Label,12341243,497,371)
{
Left=150
Top=150
link(Text,2896044:Value6,[])
}
Add(Label,650700,504,378)
{
Left=150
Top=165
link(Text,2896044:Value7,[])
}
Add(Label,10560247,511,385)
{
Left=150
Top=185
link(Text,2896044:Value8,[])
}
Add(Label,2039090,518,392)
{
Left=150
Top=200
link(Text,2896044:Value9,[])
}
Add(Label,5915212,525,399)
{
Left=150
Top=215
link(Text,2896044:Value10,[])
}
Add(Label,16651668,532,406)
{
Left=150
Top=230
link(Text,2896044:Value11,[])
}
Add(Label,444110,539,413)
{
Left=150
Top=245
link(Text,2896044:Value12,[])
}
Add(Label,11231507,546,420)
{
Left=150
Top=260
link(Text,2896044:Value13,[])
}
Add(Label,174371,553,427)
{
Left=150
Top=275
link(Text,2896044:Value14,[])
}
Add(Label,6633718,560,434)
{
Left=150
Top=290
link(Text,2896044:Value15,[])
}
Add(Label,3726760,413,217)
{
Left=85
Top=20
}
Add(Hub,14880075,336,266)
{
OutCount=3
link(onEvent1,3726760:doText,[(387,272)(387,223)])
link(onEvent2,7862850:doMT,[])
link(onEvent3,799726:doEvent1,[(384,286)(384,342)])
}
Add(Hub,799726,399,336)
{
OutCount=15
link(onEvent1,1949808:doText,[])
link(onEvent2,11513507:doText,[])
link(onEvent3,7790563:doText,[])
link(onEvent4,6920568:doText,[])
link(onEvent5,13130245:doText,[])
link(onEvent6,12341243:doText,[])
link(onEvent7,650700:doText,[])
link(onEvent8,10560247:doText,[])
link(onEvent9,2039090:doText,[])
link(onEvent10,5915212:doText,[])
link(onEvent11,16651668:doText,[])
link(onEvent12,444110:doText,[])
link(onEvent13,11231507:doText,[])
link(onEvent14,174371:doText,[])
link(onEvent15,6633718:doText,[])
}
Add(MT_String,7862850,413,266)
{
Delimeter=","
link(onResult,2896044:doValue,[])
}
Add(MT_MultiMem,2896044,462,266)
{
Count=15
}

карма: 22

0
Ответов: 16884
Рейтинг: 1239
#17: 2008-11-22 22:06:57 ЛС | профиль | цитата
Мдяяя... Не ново.
Это я использую (вынужнен) давно. Хотя бы здесь http://www.hiasm.com/xf//getfile/10658
Интересно, кто, идя в магаин,
берет рубли,
заходит в обменный пункт,
меняет на доллары,
дальше
заходит в другой обменник
меняет доллары на рубли
и наконец заходит в магазин.
(описано то что делается в данном случае при применении MT

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 1328
Рейтинг: 69
#18: 2008-11-22 22:13:07 ЛС | профиль | цитата
nesco, Я так сначала и делал, но когда стал брать со строки только время для синхронизации в предыдущей проге, потехоньку перешел на StrPart, а по коду и быстродействию, что лучше использовать 2 компонента МТ или например 4 StrPart?
карма: 2

0
Разработчик
Ответов: 26163
Рейтинг: 2127
#19: 2008-11-22 22:21:00 ЛС | профиль | цитата
Tad писал(а):
Мдяяя... Не ново

А я и не говорил, что ново.
Tad, есть набор штатных компонентов, которыми это можно реализовать (и не сложно). Знаешь, что я тебе скажу -- с твоим подходом я бы давно писал для себя на IC, а то -- рубли, доллары, у нас и так тут, млин, во всем пакете доллары на тугрики меняют, и обратно. Скажи, не первй раз спрашиваю -- зачем тебе HiAsm, с таким подходом (я помню разговор про автомобили)
------------ Дoбавленo:

Konst, ну естественно -- 4 StrPart будут работать быстрее 2-х МТ, но разве об этом разговор, переходите на FASM или FTCG, кто вам мешает, там будет гораздо большее быстродействие
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#20: 2008-11-22 22:42:07 ЛС | профиль | цитата
nesco писал(а):
Скажи, не первй раз спрашиваю -- зачем тебе HiAsm, с таким подходом
Вопрос совершенно не корректный (с подтекстом). Я же тебя ни разу не спрашивал зачем тебе HiAsm.
Народная мудрость писал(а):
Если в споре нечем крыть - можешь еще обозвать оппонента
Не нужен такой компонент - значит не нужен. Да и мне он был нужен только раз и то в прошлом году.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
1
Голосовали:Валерий
Разработчик
Ответов: 26163
Рейтинг: 2127
#21: 2008-11-22 23:09:27 ЛС | профиль | цитата
Tad писал(а):
с подтекстом

Не вижу подтекста...
Ладно, забей, без обид, не повод это для ругани

Tad писал(а):
Я же тебя ни разу не спрашивал зачем тебе HiAsm

Но я отвечу, он мне нужен для развития, это стало моим хобби, вот и все, и никаких подтекстов. Я могу без проблем перейти на Delphi, но у меня к нему нет никакого интереса. Поставленную мне задачу, я реализовал с помощью HiAsma, а сейчас помогаю народу познать сей прекрасный инструмент.
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#22: 2008-11-22 23:32:40 ЛС | профиль | цитата
nesco писал(а):
а сейчас помогаю народу познать сей прекрасный инструмент
А я хочу чтобы он был еще прекрасней.
nesco, я никогда не держу обид и, помоему, никогда не ругаюсь..
Кстати о птичках.
Для того чтобы расшифровать сигналы правильно (ведущие нули тоже участвуют) - нужно "открыть третью точку", которая преобразует строку в MT без учета типов и попутно можно вспомнить сколько я воевал и получил оценок за эту точку.
К примеру: 1-й блок (отсчет с 0) 004241.47 - это время в формате hhmmss.ss . Если применить твою схему то прийдется добавить несколько компонент для добавления нолей спереди (вед время может быть и 000001.00)
code_10740.txt
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1code_10740.txt [2.3KB] [230]
Разработчик
Ответов: 26163
Рейтинг: 2127
#23: 2008-11-22 23:40:01 ЛС | профиль | цитата
Tad писал(а):
нужно "открыть третью точку"

Ты имеешь ввиду doMTString, ну да, надо ее использовать, но я же просто пример привел, совсем отвлеченный от темы
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#24: 2008-11-23 00:19:37 ЛС | профиль | цитата
nesco писал(а):
Ты имеешь ввиду doMTString
Да.
Кстати
Konst писал(а):
но когда стал брать со строки только время для синхронизации
для выделения одного (любого) параметра можно с успехом применить один компонент Copy, так как
$GPGGA,004241.47,5532.8492,N,03729.0987,E,1,04,2.0,-0015,M,,,,*31
параметры строго определенной длины.
Например к долготе в этом пакете спереди добавлен ноль, потому что она может быть и 3-х значной, тоже и с кол. спутников (04) так как их может быть до 12. Т.е. запятые расположены в строго фиксированых позициях
Так что

Add(Copy,12736814,511,196)
{
Position=8
Count=9
}
выдаст время.
------------ Дoбавленo:

Вот Konst, может пригодится (чтобы мышкой не считал )

Add(Button,12317080,98,77)
{
Left=15
Top=15
link(onClick,14285144:doLoad,[])
}
Add(Edit,7378581,168,21)
{
Left=80
Top=20
Width=355
Text="$GPGGA,004241.47,5532.8492,N,03729.0987,E,1,04,2.0,-0015,M,,,,*31"
}
Add(CharArray,14285144,168,77)
{
link(onLoad,5558619:doEnum,[(210,83)(210,117)(156,117)(156,132)])
link(String,7378581:Text,[])
}
Add(ArrayEnum,5558619,168,126)
{
link(onItem,5665494:doString,[(210,132)(210,166)(156,166)(156,272)])
link(Array,14285144:Array,[])
}
Add(StringTable,3763308,245,266)
{
Left=15
Top=45
Width=115
Height=395
Font=[MS Sans Serif,8,1,0,1]
Columns=#6:№пп=50|7:Знак=80|
Grid=0
}
Add(FormatStr,5665494,168,266)
{
Mask="%2;%1"
link(onFString,3763308:doAdd,[])
link(Str1,5558619:Item,[])
link(Str2,4972106:reCalc,[(181,254)(202,254)])
}
Add(MathParse,4972106,189,210)
{
MathStr="%1 + 1"
ResultType=0
Point(reCalc)
link(X1,5558619:Index,[(195,184)(181,184)])
}


карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
1
Голосовали:Konst
Ответов: 1328
Рейтинг: 69
#25: 2008-11-23 09:13:24 ЛС | профиль | цитата
Tad, спасибо, может и пригодится nesco, я про StrPart, почему спрашивал-при нынешнем копировании с нажатым Ctrl совсем не состовляет труда наклепать хоть 20 штук, и если нет никакой разницы зачем заморачиваться? Мне они на поли не мешают
code_10741.txt

карма: 2

0
файлы: 1code_10741.txt [790B] [254]
Разработчик
Ответов: 26163
Рейтинг: 2127
#26: 2008-11-23 10:31:47 ЛС | профиль | цитата
Konst писал(а):
если нет никакой разницы зачем заморачиваться?

Я показал пример, как можно на штатных компонентах сделать компонент Tada, к тебе это никакого отношения не имело
карма: 22

0
Ответов: 1328
Рейтинг: 69
#27: 2008-11-23 16:35:00 ЛС | профиль | цитата
nesco, да я не спорю, мне просто было интересно, есть ли в итоге, после компиляции программы, какая нибудь разница.
Для пользователей, бывает тяжело определиться какой компонент или способ выбрать - по внешнему виду это не определишь, и по кол-ву для меня без разницы поставить 2 компонента или 10, но нужно стремиться к лучшему
карма: 2

0
Ответов: 16884
Рейтинг: 1239
#28: 2008-11-23 17:14:44 ЛС | профиль | цитата
nesco писал(а):
Я показал пример, как можно на штатных компонентах сделать компонент Tada

Konst, а хочешь я могу показать примеры ! не применения специализированых компонент :
как из Math сделать Counter . Кроме Math понадобятся еще 2-е If_else и 2-е Memory.
как скопировать, удалить или вставить символы в строку с нужной позиции . Copy, Insert, Delete - ненужны.
Форматированную строку получить тоже запросто (не применяя FormatStr).
nesco, извини, но
nesco писал(а):
как можно на штатных компонентах сделать
совсем не аргумент.
Чем больше штатных специализированых компонент - тем лучше.
Не подумай, что я воюю за присвоение этому компоненту звания ШТАТНОГО . НЕТ.
А рассказывать, что на фига санки - с горки можно съехать и на голой заднице... Можно, но сам не поедешь.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
2
Голосовали:Konst, Валерий
Разработчик
Ответов: 26163
Рейтинг: 2127
#29: 2008-11-23 17:38:10 ЛС | профиль | цитата
Tad писал(а):
Чем больше штатных специализированых компонент - тем лучше

не согласен -- уже сейчас в их количестве виснут.
Кому нужны узко специализированные компоненты, тот может их для себя сделать, для других -- не факт, что надо.
карма: 22

0
Ответов: 1328
Рейтинг: 69
#30: 2008-11-23 17:38:27 ЛС | профиль | цитата
Tad писал(а):
Konst, а хочешь я могу показать примеры ! не применения специализированых компонент :
как из Math сделать Counter . Кроме Math понадобятся еще 2-е If_else и 2-е Memory.
как скопировать, удалить или вставить символы в строку с нужной позиции . Copy, Insert, Delete - ненужны.
Форматированную строку получить тоже запросто (не применяя FormatStr).

Tad, конечно выложи, только лучше не сдесь, а в этюды
карма: 2

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)