Wolfik, но MT_StrTbl построен на MT-технологии, которой еще нет в новом пакете или уже есть Кстати, а она бы очень не помешала
Этот топик читают: Гость
Разработчик
Ответов: 26170
Рейтинг: 2127
|
|||
карма: 22 |
|
Ответов: 241
Рейтинг: 45
|
|||
nesco писал(а): что будем делать со старым пакетомТак ведь прибивать его никто не предлагает? Есть он и есть. Кто хочет - пользуется. Про MT - я только слышал Сам ей не пользовался и на старом пакете. Что она из себя представляет? |
|||
карма: 0 |
|
Разработчик
Ответов: 26170
Рейтинг: 2127
|
|||
Wolfik писал(а): Что она из себя представляет?Цепь структур TData, где в поле ldata каждой структуры прописан указатель на следующую |
|||
карма: 22 |
|
Ответов: 241
Рейтинг: 45
|
|||
Ясно. А идеологическая цель создания технологии какая? В каком месте после ее внедрения стало легко и хорошо?
|
|||
карма: 0 |
|
Разработчик
Ответов: 26170
Рейтинг: 2127
|
|||
Wolfik писал(а): Так ведь прибивать его никто не предлагает?Да я не про прибивать, а про перевод под новый KOL (3.14) и новый FPC ------------ Дoбавленo в 00.34: Wolfik писал(а): В каком месте после ее внедрения стало легко и хорошо?Передача по одному линку кучи данных, точнее указателя на первый элемент, а у него целый хвост тянется, и методами ReadXXX последовательно в элементе они считываются, те, каждый ReadXXX переводит указатель на следующий элемннт цепи. Самое главное. что цепь состоит из указателей на совершенно разнородные данные |
|||
карма: 22 |
|
Ответов: 241
Рейтинг: 45
|
|||
Все-таки цель не очень ясна. Рискну предположить что это делалось ради того, чтобы элемент принимал кучу своих свойств на одну точку, распаковывал их и устанавливал себя? Короче ради уменьшения линей связи между элементом и к нему направленными данными? Или для чего то другого?
|
|||
карма: 0 |
|
Разработчик
Ответов: 26170
Рейтинг: 2127
|
|||
Wolfik писал(а): чтобы элемент принимал кучу своих свойств на одну точку, распаковывал их и устанавливал себяНу, распаковкой это назвать никак нельзя, вот последовательное чтение, это да. Да и необязательно это должны быть свойства, это могут быть и текущие данные. Проще же передать указатель в функции на один элемен цепи, чем все указатели на элементы или значения передавать в качестве параметров ------------ Дoбавленo в 00.46: Подобное часто можно втретить в ситемных API, когда в функцию передается указатель на некую структура, которая содержит в себе кучу других структур или указателей на другие структуры ------------ Дoбавленo в 00.50: Но вот кто ее, с легкой руки, назвал MT (Multi Thread) я так и не понял, ее надо было назвать что-то типа Chain технология |
|||
карма: 22 |
|
Ответов: 241
Рейтинг: 45
|
|||
Чтобы в итоге финальный код программы оставался максимально чистым и быстрым все конвертации данных в единый поток и последующее чтение из него нужно делать на уровне скрипта. То есть можно всю технологию скопировать из старого пакета и заставить ее работать, но в конечном коде это будет выглядеть слегка жутковато.
Я поэтому и спрашивал, для чего именно она создавалась. Может тут подобное решение можно реализовать как то по-другому. Ок, завтра посмотрю что можно придумать. |
|||
карма: 0 |
|
Разработчик
Ответов: 26170
Рейтинг: 2127
|
|||
Wolfik писал(а): То есть можно всю технологию скопировать из старого пакета и заставить ее работать, но в конечном коде это будет выглядеть слегка жутковатоСогласен, жутковато. ИМХО, надо копать в сторону цепочной структуры. Но дело в том, что структура TData универсальная, она в себе может содержать все, что нам надо, и простые типы данных, и указатели, и индексы самих типов, по которым и определяется, что мы передаем. Хотя, может это и лишнее будет, тут посоветоваться бы неплохо с Автором пректа |
|||
карма: 22 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Assasin, Вопрос на засыпку:
Строка до 255 знаков. Есть схема: code_23475.txt Результат компиляции: code_23476.txt 1. Почему не работает ? 2. Откуда взялось Len1 ? P.S. В IC, даже не используя фирменый Length(), этот вопрос решается простым n:=s[0]; |
|||
карма: 25 |
| ||
файлы: 2 | code_23475.txt [660B] [392], code_23476.txt [1.9KB] [561] |
Разработчик
Ответов: 4698
Рейтинг: 426
|
|||
Tad писал(а): 1. Почему не работает ?Ошибка в коде компонента: разработчиком компонента не предусмотрена возможность подключения точки результата к выходу из контейнера hiFT_Memory.hws писал(а):
Tad писал(а): 2. Откуда взялось Len1 ?А где же должен еще храниться результат вычисления длины строки? Только в зарезервированной для этой цели переменной с уникальным именем. У нас тут не компилятор, а интерпретатор, который ну никак не может анализировать код на возможность оптимизаций, к тому же у нас остается привязка к интерфейсу обмена данных между обычными компонентами и структуре TData. Tad писал(а): P.S. В IC, даже не используя фирменый Length(), этот вопрос решается простым n:=s[0];Да на здоровье, можешь хоть каким образом вычислять длину строки, FTCG тебя не ограничивает в вставляемой в целевой код в строке ------------ Дoбавленo в 12.17: Wolfik,
|
|||
карма: 10 |
|
Ответов: 3349
Рейтинг: 233
|
|||
А где скачать сие пакет?
|
|||
карма: 1 |
|
Разработчик
Ответов: 26170
Рейтинг: 2127
|
|||
карма: 22 |
|
Ответов: 3349
Рейтинг: 233
|
|||
Пришла идея кодогенератор сделать, а весь Lazarus на моей скорости не скачать
------------ Дoбавленo в 13.24: Пришла идея кодогенератор сделать, а весь Lazarus на моей скорости не скачать |
|||
карма: 1 |
|
Ответов: 241
Рейтинг: 45
|
|||
Немного обновленный пакет
|
|||
карма: 0 |
|