Текущий архив: 2010.08.27;
Скачать: CL | DM;
ВнизХороший программист Найти похожие ветки
← →
TUser © (2010-04-20 10:45) [80]
> это же вроде depricated функционал и сейчас не используется?
>
>
В справке по Turbo Delphi про absolute такого не сказано.
← →
Ega23 © (2010-04-20 10:46) [81]
> это же вроде depricated функционал и сейчас не используется?
нет.
← →
Думкин © (2010-04-20 10:54) [82]> TUser ©
Сейчас тебя в двоичные программисты упакуют, и на том дискуссию закроют. :)
← →
TUser © (2010-04-20 11:00) [83]
> двоичные программисты
а кто это?
← →
Romkin © (2010-04-20 11:13) [84]
> Все ли тут наизусть (без гугла :)) помнят, что означают(.
> objectabsoluteи как этим пользоваться?
Память надо хорошую иметь. И кто тебе сказал, что не пользуются? absolute я пользую иногда, это удобно. А вот object, похоже, окончательно уходит.
← →
Ega23 © (2010-04-20 11:15) [85]
> А вот object, похоже, окончательно уходит.
Он же на стеке размещается, не?
← →
Думкин © (2010-04-20 11:17) [86]> TUser © (20.04.10 11:00) [83]
В аське написал.
← →
Romkin © (2010-04-20 11:46) [87]
> Он же на стеке размещается, не?
Though records can now share much of the functionality of classes, there are some important differences between classes and records.
Records do not support inheritance.
Records can contain variant parts; classes cannot.
Records are value types, so they are copied on assignment, passed by value, and allocated on the stack unless they are declared globally or explicitly allocated using the New and Dispose function. Classes are reference types, so they are not copied on assignment, they are passed by reference, and they are allocated on the heap.
Records allow operator overloading on the Win32 platform; classes, however, do not allow operator overloading.
Records are constructed automatically, using a default no-argument constructor, but classes must be explicitly constructed. Because records have a default no-argument constructor, any user-defined record constructor must have one or more parameters.
Record types cannot have destructors.
Virtual methods (those specified with the virtual, dynamic, and message keywords) cannot be used in record types.
Unlike classes, record types on the Win32 platform cannot implement interfaces
← →
Romkin © (2010-04-20 11:48) [88]В общем, все из хелпа:
type
TMyRecord = record
type
TInnerColorType = Integer;
var
Red: Integer;
class var
Blue: Integer;
procedure printRed();
constructor Create(val: Integer);
property RedProperty: TInnerColorType read Red write Red;
class property BlueProp: TInnerColorType read Blue write Blue;
end;
← →
tesseract © (2010-04-20 11:55) [89]
> Romkin © (20.04.10 11:48) [88]
Интересно, а выгрузить/загрузить в файл такую структурку можно с процедурой? Или только указатели процедурного типа вывалит при сериализации.
← →
Игорь Шевченко © (2010-04-20 12:15) [90]tesseract © (20.04.10 11:55) [89]
Тебя тоже не возьмут
← →
TUser © (2010-04-20 12:18) [91]
> все из хелпа
А из какой версии?
← →
tesseract © (2010-04-20 12:19) [92]
> Тебя тоже не возьмут
Я и не прошусь.
← →
Romkin © (2010-04-20 12:22) [93]
> А из какой версии?
2010
← →
Игорь Шевченко © (2010-04-20 12:38) [94]Romkin © (20.04.10 12:22) [93]
В 2006 тоже компилируется без ошибок
← →
Юрий Зотов © (2010-04-20 14:17) [95]> TUser © (20.04.10 09:55) [77]
> Тут когда-то обсуждалось по какому-то поводу создание простейшего
> парсера, который будет делить программу на комментарии и
> не-комментарии. (Кажется, требовалось удалить все комментарии из
> исходников.) ЮЗ взял народ на понт, - типа напишите. Браво ударив себя
> пяткой в грудь, я сказал, что задача на перекур, и написал. Только у
> меня удалялись директивы компилятора вида (*$aaa*).
Результат я знал заранее, потому что такой парсер когда-то писал. Причем ошибок в нем категорически не допускалось, потому что он должен был перелопатить реальные исходники реального известного большого проекта реальной известной софтверной компании. Набралось где-то 7.5 тыс. файлов, которые писались многими людьми много лет.
Сначала я тоже думал, что эта задачка - пустяк, но потом убедился, что не все так просто. Распознать директивы компилятора - это ерунда, но ведь комментарии бывают и вложенными (что, в-общем-то, тоже несложно), а бывают и строковые константы, в которых запросто может встретиться признак начала комментария, а признак строковой константы может быть и внутри комментария, и внутри самой строковой константы (многократный апостроф)... ну и т.п.
В общем, задача эта, конечно, не особо сложная - но уж точно не на перекур. Главное в ней - это правильный подход. То есть, начинать надо с расписывания БНФ, тогда все остальное становится уже действительно просто и однозначно.
← →
@!!ex © (2010-04-20 15:05) [96]> [95] Юрий Зотов © (20.04.10 14:17)
А разве конечный автомат с этой задачей элементарно не справится?
← →
Anatoly Podgoretsky © (2010-04-20 15:21) [97]> TUser (20.04.2010 09:55:17) [77]
Этим не надо пользоваться, но знать надо.
← →
tesseract © (2010-04-20 15:22) [98]
> @!!ex © (20.04.10 15:05) [96]
Так описание проблемы БНФ в итоге и приводёт к созданию алгоритма конечного автомата. Только ошибиться при таком подходе заметно сложнее.
← →
@!!ex © (2010-04-20 16:02) [99]> [98] tesseract © (20.04.10 15:22)
Я не знаю что такое БНФю :(
← →
Anatoly Podgoretsky © (2010-04-20 16:08) [100]> @!!ex (20.04.2010 16:02:39) [99]
А БНФ знаешь
← →
Юрий Зотов © (2010-04-20 16:16) [101]
> @!!ex © (20.04.10 15:05) [96]
> > [95] Юрий Зотов © (20.04.10 14:17)
>
> А разве конечный автомат с этой задачей элементарно не справится?
>
> <Цитата>
А что такое парсер, как не конечный автомат?
:o)
← →
tesseract © (2010-04-20 16:17) [102]>>А БНФ знаешь
Он тока РБНФ знает. Чего рука Вирта не касалась - всё чушь :-)
БНФ ИМХО даже PHP-шники знают : http://ru.wikipedia.org/wiki/%D0%A4%D0%BE%D1%80%D0%BC%D0%B0_%D0%91%D1%8D%D0%BA%D1%83%D1%81%D0%B0-%D0%9D%D0%B0%D1%83%D1%80%D0%B0
просто забыли, как она по науке называется :-)
← →
@!!ex © (2010-04-20 17:05) [103]> [101] Юрий Зотов © (20.04.10 16:16)
> А что такое парсер, как не конечный автомат?
Эм. Просто в рамках конечного автомата(автомата состояний) ситуации типа:
"Распознать директивы компилятора - это ерунда, но ведь комментарии бывают и вложенными (что, в-общем-то, тоже несложно), а бывают и строковые константы, в которых запросто может встретиться признак начала комментария, а признак строковой константы может быть и внутри комментария, и внутри самой строковой константы (многократный апостроф)... ну и т.п.
"
Разруливаются автоматически, там даже думать лишний раз не приходится, забил табличку и понеслась.
← →
MsGuns © (2010-04-20 17:17) [104]>Дмитрий Белькевич (19.04.10 11:12) [21]
>Искусство подразумевает владение техникой. Техникой живописи, >например. Без техники будь ты хоть десять раз искусен, хорошего не >получится.
Искусство в первую очередь подразумевает талант.
Без таланта невозможно создать искусство, без техники - сплошь и рядом.
← →
Юрий Зотов © (2010-04-20 17:32) [105]
> @!!ex © (20.04.10 17:05) [103]
Конечный автомат не обязательно табличка. Состояние может определяться и тем, что в данный момент выполняется данная процедура.
Но это, по сути, не так важно. Важно то, что имея БНФ все действительно легко разруливается. Не имея БНФ - уже не так легко и не так надежно. Хотя задача и правда не из сложных, но и ее надо делать грамотно, не с наскока. В частности, для поиска комментариев простой поиск символов // (* и { не прокатит.
← →
@!!ex © (2010-04-20 17:51) [106]> [105] Юрий Зотов © (20.04.10 17:32)
> В частности, для поиска комментариев простой поиск символов
> // (* и { не прокатит.
Почему?
При нахождении (* переход в состояние "комментарий 1" из любого состояния кроме комментарий или строка.
При нахождении { переход в состояние "комментарий 2" из любого состояния кроме комментарий или строка.
При нахождении *) переход в состояние не комментарий, если состояние комментарий 1
При нахождении } переход в состояние не комментарий, если состояние комментарий 2
← →
Юрий Зотов © (2010-04-20 17:58) [107]
> @!!ex © (20.04.10 17:51) [106]
Я писал "простой поиск". А то, о чем пишете Вы - уже не простой.
← →
Игорь Шевченко © (2010-04-20 18:52) [108]
> При нахождении { переход в состояние "комментарий 2" из
> любого состояния кроме комментарий или строка.
и тут глотаются директивы компилятора...
← →
@!!ex © (2010-04-20 19:28) [109]> [107] Юрий Зотов © (20.04.10 17:58)
ок. неверно понял.
> [108] Игорь Шевченко © (20.04.10 18:52)
Тут вообще простой вариант указан. :)
← →
Павел Калугин © (2010-04-21 14:13) [110]
> Чушь какая то спрашивать как работать с ком портом.
Зависит от требований. Если мне нужен специалист по работе с БД то я спрошу на собеседовании стандартные конструкции посоянно используемые в работе. Если он их не знает - надо или не брать или брать и доучивать.
То же самое если много работы с внешними устройствами то или человек это знает "от зубов" на входе или надо доучивать. Уровень з/п на входе прямо зависит от того, чему надо доучивать.
> Да и никто почти не помнит, кроме тех кто по 10 раз на дню
> это пишет.
Именно. Если нужен человек у которого данная область "вросла в пальцы" то правильная проверка. Лист бумаги и вперед.
> но смущает сравнение с водителями ... их на собеседовании
> не спрашивают ПДД, а, наверное, жаль
Их просят права показать. а ПДД с них, считается, что ГАИ спросило.
← →
tesseract © (2010-04-21 14:24) [111]
> Уровень з/п на входе прямо зависит от того, чему надо доучивать.
Если бы за знание rsXXX и USART хорошо платили я бы на 1С не переходил :-)
Страницы: 1 2 3 вся ветка
Текущий архив: 2010.08.27;
Скачать: CL | DM;
Память: 0.66 MB
Время: 0.078 c