Графин 7.7. (окончание)

29.11.10

Разработка - Математика и алгоритмы

Предыдущие мои публикации Граф(ин) 7.7. и Граф(ин) 7.7. (дополнение) носили, скорее, умозрительный характер, имея одной из целей продемонстрировать, что деревья в частности и графы вообще вполне уживаются с семерочной платформой. Теперь это настоящий граф.

Скачать файлы

Наименование Файл Версия Размер
10Cv7.zip
.zip 33,48Kb
45
.zip 33,48Kb 45 Скачать

 

Предыдущие мои публикации Граф(ин) 7.7. и Граф(ин) 7.7. (дополнение) носили, скорее, умозрительный характер, имея одной из целей продемонстрировать, что деревья в частности и графы вообще вполне уживаются с семерочной платформой. Однако после появления статьи Запрос против рекурсии или "разузлование" номенклатуры мне просто некуда было деваться – и вот пришлось сваять небольшую конфигурацию для исследования «разузловательных» процессов. В конфигурации присутствуют два справочника: НоменклатурныеПозиции и Наборы. Содержимое справочника Наборы (с реквизитами Отец, Сын, Количество) как раз и определяет исследуемый граф.

Разумеется, я начал с 

Тест № 1. "Десять" Справочник  содержит 6-уровневый 10-арный граф , имеющий 1 000 000 различных ветвей и при обходе такого графа таблица ВремТаблица6 на выходе цикла алгоритма содержит 1 000 000  записей. Проще говоря, корневому элементу подчинены 10 элементов, каждому из которых подчинен одинаковый набор из десятка следующих элементов и т.д.

Ориентиром для меня служил пост № 118 из темы http://forum.infostart.ru/forum14/topic35991/ :

Через таблицу значений в 77 это сделать сложнее.  У вас отсутствует команда НайтиСтроки , выбирающая по фильтру нужные строки из таблицы значений. Ну, раз взялся , то помни : - контроль зацикленности каждой ветки обязателен. 1. 4 мин - не о чем говорить 2. 3 мин - очень плохо 3. 2 мин - просто плохо 4. 1.5 мин - посредственно 5. 1 мин - хорошо 6. 40 сек - отлично 7. 20 сек - Арчибальд - СУПЕРСТАР на все времена ! ( в указанное время входит копирование элементов из справочника в таблицу значений)

Ну, и сразу получил 0.777 секунды, из которых 0.5 - преобразование графа и 0.276 - собственно разузлование (скрин 1). Отнюдь не 20 сек, как в упомянутой статье. Но похуже, чем в статье Как не «попасть на миллион», решая задачу разузлования , хоть и не на два порядка.

Ладно, думаю, попробуем 100 000 000 (скрин 2). 0.993 секунды.

Добрался аж до 100 000 000 (скрин 3). 1.525 сек. То есть "деревья" (которые и не деревья вовсе, на самом-то деле) из Теста №1 обходить неинтересно.

А вот заполнять список дуг (справочник Наборы) произвольным (псевдослучайным) образом, находить в полученном графе вершины, не имеющие родителей (корни), и разузловывать сразу все эти корни, либо несколько (по отметкам в списке корней) – достаточно познавательно (скрин 4). Все-таки 3.02 секунды. Правда, разузловывались десять позиций. Бывает и больше.

Все действия производятся в форме справочника Наборы. В частности, на форме кнопки для двух вариантов заполнения исходного справочника. Кнопка Преобразовать запускает конвертацию представления графа дугами в представление вершинами. Все коды открыты. В архиве – сохраненная конфигурация.

Попробуйте поиграться!

Ну и, наконец, вывод. Успешность (эффективность) решения задач весьма призрачно зависит от платформы. Зато сильно зависит от спроектированной структуры данных... 

 

29.11.2010. Еще несколько слов о задаче разузлования. Теоретическая сложность этой задачи - О(N * lg N), где N - число (различных) узлов графа. Именно так вел бы себя алгоритм в упомянутой статье "Запрос против рекурсии...", если бы автор не отказался от конструкции "СГРУППИРОВАТЬ ПО" и не искал вместо ошибочной дуги графа все ошибочные цепочки, порожденные этой дугой. Применительно к задаче разузлования такой подход не учитывает наличия стандартизации узлов и деталей - а она реально существует. Гайка М10х17 - она и есть гайка...

 

 

См. также

Экспорт нескольких MXL таблиц в один XLS файл, на отдельные листы. Простой алгоритм

Загрузка и выгрузка в Excel Математика и алгоритмы Платформа 1С v7.7 Платформа 1С v8.3 Бесплатно (free)

Статья посвящена распространённому вопросу - как сохранить несколько таблиц (отчетов) в формате MXL, с которым работает 1С, на отдельные листы одного Excel файла. Освещается простой алгоритм решения проблемы штатными средствами, без использования внешних модулей и библиотек (не относящихся к 1С и Excel).

23.11.2015    18904    etmarket    14    

20

.NET(C#) для 1С. Динамическая компиляция класса обертки для использования .Net событий в 1С через ДобавитьОбработчик или ОбработкаВнешнегоСобытия

Разработка внешних компонент Математика и алгоритмы Платформа 1С v7.7 Платформа 1С v8.3 Бесплатно (free)

Динамическая компиляция класса обертки для использования .Net событий в 1С через ДобавитьОбработчик или ОбработкаВнешнегоСобытия, а так же генерация модулей на C# и 1С для подключения к событиям. Использование DynamicMethod и ILGenerator. Представлены примеры для использовании событий System.IO.FileSystemWatcher (Ожидает уведомления файловой системы об изменениях и инициирует события при изменениях каталога или файла в каталоге.) и SerialPort (обработка сканера штрих кода подключенного к COM порту). Обертка позволяет использовать классы .Net только на языке 1С. Реализация 1C Messenger описанного здесь http://infostart.ru/public/434771/

12.11.2015    51088    Serginio    36    

57

Степень сходства двух наименований справочника

Математика и алгоритмы Платформа 1С v7.7 Платформа 1С v8.3 Абонемент ($m)

Статья посвящена исследованию следующего вопроса: необходимо сравнить 2 наименования справочников с целью вычисления их степени сходства. По задумке, степень сходства должна выражаться в процентах.

1 стартмани

25.02.2015    24450    etmarket    46    

17

Задача про сгибание листка

Математика и алгоритмы Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Часто при приеме на работу встречается задача про сгибание листка

1 стартмани

26.02.2013    19484    11    Sbelyi78    38    

9

Универсальная печать таблицы значений

Математика и алгоритмы Оперативный учет 7.7 Бухгалтерский учет 7.7 Расчет 7.7 Конфигурации 1cv7 Россия Абонемент ($m)

Универсальная печать таблицы значений, которую не стыдно прикрутить к рабочей базе данных. Группировка данных, подсчет итогов, составление диаграмм, выгрузка в быстрый доступ к исходной ТЗ.

1 стартмани

23.05.2012    14764    66    McSeem    3    

8

Тригонометрические функции в 7.7

Математика и алгоритмы Платформа 1С v7.7 Конфигурации 1cv7 Россия Абонемент ($m)

Алгоритм получения значения тригонометрических функций путем разложения их в ряд Тейлора

1 стартмани

04.03.2012    8591    4    nysysimara    10    

5
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
100. Ish_2 1104 07.12.10 09:05 Сейчас в теме
Арчибальд , я бы хотел пояснить своё упорное стремление проверить твой алгоритм на крепость.
Дело в том , что перед публикацией я вдоволь поигрался с зацикливаниями.
Оптимизируя алгоритм и пытаясь уйти от тупого "раскладывания" графа на элементарные ветки (дерево) я приходил только к одному : ловил сам себя на зацикливаниях. Т.е. на каждый хитрый алгоритм всегда находилось зацикливание еще хитрее. Любые ускорения , свертывания промежуточных таблиц и т.д. приводили к одному к потере какой-то информации о графе - отсюда к ошибке контроля зцикливания.
Поэтому и пришел к выводу : гарантированный контроль зацикливания обеспечивает только раскладывание графа в дерево. Другими словами , на любом шаге(уровне) мы должны хранить ВСЮ, пусть даже избыточную, информацию о пройденном графе , т.е. в любой момент восстановить(отобразить) ВЕСЬ пройденный граф. Если это условие не соблюдается - жди ловушки с зацикливанием.
Вот что такое АБСОЛЮТНЫЙ контроль - хранение всей информации о пройденном графе в виде совокупности элементарных веток. Т.е. для контроля зацикленности необходимо хранение ИЗБЫТОЧНОЙ информации о графе.
Абсолютный ли у тебя контроль проверяется очень просто : должен быть удобный интерфейс для имитации зацикливаний. 3-4 сложных, глубоких зацикливаний и всё понятно.
101. Арчибальд 2706 07.12.10 10:51 Сейчас в теме
(100) Мой контроль абсолютен, это однозначно. Ибо на каждом шаге я проверяю ВСЕХ предков узла (включая и сам узел) на совпадение с очередным "ребенком". При обнаружении ребенка в списке предков я отсекаю дугу "отец-ребенок" и мне не интересно, цикл (циклы) какой длины и конфигурации порождала эта дуга. Разузлованию мешает она одна (пока что одна, дальше могут еще попасться) - именно о ней одной я и предупреждаю пользователя.
Избыточность же информации может оказаться полезной. Но прикинь, в тесте №3 ты, ограничиваясь сотней сообщений, выдаешь только 1% найденных циклов.
Безболезненно можно увеличить до 1 000 шт. Только зачем ?
И в самом деле, ни к чему, что один процент, что 10 - все равно, ВЕСЬ твой объем информации необозрим = бесполезен. Писать же обработку для сбора бесполезной информации...
Я уж не впоминаю о том, что сам же ты на меня нападал за то, что кроме перечня дуг я "избыточно" строю и пользуюсь перечнем родителей с детьми.
102. Ish_2 1104 07.12.10 11:27 Сейчас в теме
Вот я и хочу выяснить : а прав ли я ? с требованием обязательного разложения графа на элементарные ветки ?
Правильно ли я понял из твоего кода ,в случае , когда мы находимся в "Узле":
А1 - В1 - С
                 \
                   Узел   - В1   
                 /
А2 - В2 - С 

Прошли "Узел" , для которого храним свернутый список предков (А1,А2,В1,В2,С) , проверяем "В1" на совпадение с любым значением из этого списка , выдаем ошибочную дугу "Узел-В1" . Так ?
103. Арчибальд 2706 07.12.10 11:32 Сейчас в теме
104. Ish_2 1104 07.12.10 11:34 Сейчас в теме
А что ж ты раньше не сказал мне это ?!
105. Ish_2 1104 07.12.10 11:39 Сейчас в теме
Впрочем, мне так нельзя. Мне нужно обязательно выдать всю ветку от корня содержащую два элемента которые зацикленны. Иначе пользователь ничего не поймет. Ищи , свищи - где повторяется и встречается "В1" .
Вот для чего хранится избыточная информация !
Есть ли тут еще какое зло - нужно подумать.
106. Ish_2 1104 07.12.10 13:51 Сейчас в теме
Жаль ,эксперимента нет.
При поверхностом взгляде навскидку - вроде бы никаких ошибок при определении зацикливания при твоем подходе может и не быть.

Но пока скажи другое .
Ведь всё , что ты сделал можно запросто реализовать на 1с8 и рассмотреть в качестве альтернативного решения.
Так вот.
Ты привел сведения , что твой алгоритм показал менее секунды (!) в миллионном тесте №1 1-10-10-10-10-10-10 с повторениями элементов.
С другой стороны, твой алгоритм показал 10 мин(!!) в миллионном тесте №1 1-10-10-10-10-10-10 без повторений,
т.е с уникальными элементами.
Не в твоём ли контроле зацикливания причина такого падения ?
То есть когда различных элементов мало - то всё сворачивается, размер списков ничтожно мал - всё летает.
Но если элементы не повторяются , ничего не сворачивается - то жестокие "тормоза".
Возможны ли в твоем алгоритме такие изменения которые принципиально, на порядок уменьшат
катастрофические 10мин , скажем до 1мин ?
107. Арчибальд 2706 07.12.10 17:29 Сейчас в теме
(106) Динамические массивы мне бы помогли. Вариант - ВК TableDoc
Только лень уже заниматься этим...
108. Ish_2 1104 07.12.10 17:50 Сейчас в теме
(107) Понял. Применение ВК ? Это ОФФ. И не факт.

Согласен ли ты с формулировкой :

Ish_2 не удалось доказать слабость контроля зацикливания обработки Арчибальда.
Художественный смысл байки (60) и другие утверждения Ish_2 повисли в воздухе.
Из-за отсутствия независимого тестирования не нашел подверждения
и главный тезис Арчибальда "Мой контроль - абсолютен !".
109. Арчибальд 2706 07.12.10 17:57 Сейчас в теме
(108) Только с первой фразой :D
110. Ish_2 1104 07.12.10 18:03 Сейчас в теме
(108) Подожди , не горячись.
Я должен в своей статье рассказать, чем закончилась последняя шутка автора.
Я должен согласовать с тобой формулировку.
Ты принял только 1 предложение. Хм... это понятно.
Второе убираем.
А чем плохо 3 предложение ? Я ничего не соврал.
Если останется только 1 предложение - мы исказим истину.
Соглашайся на 1 и 3 предложения . Идет ?
111. Ish_2 1104 07.12.10 18:07 Сейчас в теме
Или давай свою формулировку- заключение.
112. Арчибальд 2706 08.12.10 07:48 Сейчас в теме
(111) Доказательство "абсолютности" алгоритма практически содержится в фразе
на каждом шаге я проверяю ВСЕХ предков узла (включая и сам узел) на совпадение с очередным "ребенком". При обнаружении ребенка в списке предков я отсекаю дугу "отец-ребенок" и мне не интересно, цикл (циклы) какой длины и конфигурации порождала эта дуга
Осталось только заявить, что на первом шаге, когда выбрана только одна начальная вершина (без дуг), циклов, очевидно, нет. Далее индукция.
Таким образом, "отсутствие независимого тестирования" может ставить под сомнение только правильность реализации мной указанного алгоритма, но никак не тезиса об абсолютности.
113. Ish_2 1104 08.12.10 08:45 Сейчас в теме
Мой скромный взгляд :
Горького и ехидного в адрес Арчибальда и его обработки сказано немало.
Очевидны и неисправимые недостатки его обработки графа.

Но только Арчибальд в своей теме показал очевидное преимущество отказа от рекурсии и последовательного поуровневого обхода графа.
Это - возможность разузловывать не одну номенклатуру , а одновременно сразу несколько номенклатур (список).
Задача эта актуальна, например , при формировании плана закупок , когда нужно получить список комплектующих для некоторого состава номенклатур.
То есть подход с поуровневым обходом графа , примененный в обработке Арчибальда, содержит в себе
серьезный запас по функционалу.
114. Арчибальд 2706 08.12.10 11:54 Сейчас в теме
(113) Сейчас у меня так
ТекСписок=СоздатьОбъект("СписокЗначений");
Корень=СЗ_Подграфы.ПолучитьЗначение(ё);
лСписок = СоздатьОбъект("СписокЗначений");
лСписок.ДобавитьЗначение(Корень,Формат(1,"Ч(0)10"));
ТекСписок.ДобавитьЗначение(лСписок);
Уровень = 0;
Пока ТекСписок.РазмерСписка()<>0 Цикл
СледСписок = УдлиннитьЦепи(ТекСписок);
СледСписок.Выгрузить(ТекСписок);
КонецЦикла;

Но ведь можно и так определить функцию

Функция Ярус(СписокКорнейСПредками)
Рез = УдлиннитьЦепи(СписокКорнейСПредками);
Возврат ?(Рез.РазмерСписка() = 0, "", Ярус(Рез));
КонецФункции

и написать

ТекСписок=СоздатьОбъект("СписокЗначений");
Корень=СЗ_Подграфы.ПолучитьЗначение(ё);
лСписок = СоздатьОбъект("СписокЗначений");
лСписок.ДобавитьЗначение(Корень,Формат(1,"Ч(0)10"));
ТекСписок.ДобавитьЗначение(лСписок);
Уровень = 0;
ТекСписок = Ярус(ТекСписок);

Рекурсия голимая.

Результат выполнения теста №1 в рекурсивном варианте ниже
Прикрепленные файлы:
115. Ish_2 1104 08.12.10 14:41 Сейчас в теме
(114) Арчибальд , любой вопрос можно повернуть так , а можно и эдак.
Я исхожу не из твоих пробных предположений , а из факта :
Ты отказался от рекурсии (как вычислительного приема) в своей обработке.
Из этого факта я сделал вывод : при поуровневом обходе графа рекурсия избыточна.
Хотя и возможна.
Обойдясь без рекурсии - ты уже всё доказал.
116. Арчибальд 2706 08.12.10 16:32 Сейчас в теме
(115) Я уже доказал в третьем посте полную алгоритмическую эквивалентность рекурсии и цикла - разница между ними в том, что при явной рекурсии отслеживание части изменений контекста вызова мы поручаем платформе. Другое дело, как платформа с этим справляется.
Я битый час сейчас наблюдал по диспетчеру задач за разузлованием "миллионников" на явной рекурсии и на цикле. Сначала рекурсия вела себя лучше (быстрее). Потом в "циклическом" варианте я заменил
СледСписок = УдлиннитьЦепи(ТекСписок); 
СледСписок.Выгрузить(ТекСписок);

на
ТекСписок = УдлиннитьЦепи(ТекСписок); 

и уложился в 5.2 минуты вместо 10 (на рекурсии - 8 мин). Я так понимаю, основное время затрачивается на выделение/освобождение памяти, так что одновременное присутствие двух длинных списков - это плохо.
Еще обна "фишка" обнаружилась. Под рекурсию памяти выделялось процентов на 5 больше, чем под цикл, однако процессор нагружался всего на 50-70% (для цикла - не менее 95). Вот как-то так.
117. Ish_2 1104 08.12.10 16:41 Сейчас в теме
(115) Мне тяжело читать посты без явно выраженной морали в конце.

Будь проще , ответь на вопрос :
Стоит или нет перейти в основной обработке на рекурсию ?
118. Арчибальд 2706 08.12.10 17:22 Сейчас в теме
(117) Для "поярусного" обхода, как у меня цикл и рекурсия эквивалентны.
Ты же ищешь все цепочки максимальной длины. Для этой задачи рекурсия, скорее, вредна. Лучше будет обходить "в глубину", специальным образом фиксируя пройденные цепочки. Цикл. Но не "в ширину", как у тебя.
119. Ish_2 1104 08.12.10 18:59 Сейчас в теме
(118) При использовании запроса на сервере оптимальный путь один , причем без вариантов (на мой взгляд, конечно):
- поярусно , в ширину (получаем минимальное количество обращений к БД, т.е. за одно обращение к таблицам - взять как можно больше данных).
С другой стороны , промежуточная таблица с колонками СтрокаКодов(у тебя СписокПредков), Номенклатура( у тебя Узел) может содержать миллион записей и лишь 2-3 из них продолжают иметь "детей" - но я вынужден копировать эту таблицу полностью в другую для следующего цикла. В этом - слабость опубликованного алгоритма.
В графах 1-10-10-10-10-10-10 или 1-2-2-2-2... этого не заметно.
Но если на 5 уровне было 1 миллион узлов ( в таблице миллион записей) , на 6 уровне 3 узла , на 7 - 6, на 8 -12 , то у меня на 6,7,8 уровнях будет каждый раз копироваться вся миллионная таблица.
Бороться , конечно, с этим можно . Но я решил не усложнять опубликованный алгоритм.

Сделать это при реальном внедрении , конечно, необходимо.
Меня недавно "убили" реальным примером : в графе 600 тыс.узлов , уровней "вообще-то" 20 , но одна цепочка имеет длину 67(!!). И вот мой алгоритм с 20 по 67 уровень 47 раз копирует таблицу из 600 тыс. записей.
120. ildarovich 7850 08.12.10 20:28 Сейчас в теме
(119) Не могу удержаться, чтобы спросить: рекурсию применить на примере из 600 тыс.узлов попробовали? Или религия не позволяет?
121. Ish_2 1104 08.12.10 21:09 Сейчас в теме
(120) Вообщем-то , религия.
Рекурсия и ручной кодинг была отброшены сразу в самом вначале без всяких прикидок.
Затем всего лишь из принципа были простейшие прикидки для кодинга.
На "реальном" примере в 600 тыс. узлов и 67 уровней алгоритм не запускался. Сам "реальный" пример мне недоступен.
"И вот мой алгоритм.." - описана гипотетическая ситуация.Результат настолько ясен, что и никаких испытаний не требуется.
122. Ish_2 1104 08.12.10 21:52 Сейчас в теме
И вот еще .
С самого начала была создан Справочник СпецификацииНоменклатуры по Тесту №1 1-10-10... с уникальными узлами.
На нём и шла отладка. В конце работы пришлось создать Тесты №1,№2 с повторяющимися элементами. Сделано это было только для удобства пользователя. Ждать создания справочника с уникальными узлами слишком долго.
Ведь ,с моей точки зрения, никакой раницы , между ними нет. Алгоритм "тупой" и никак не вычисляет повторяемость элементов.
Возможно , кого-то эти тесты здорово сбили с толку.
Я заранее знал , что с уникальными элементами и правильным контролем зацикливания рухнет по быстродействию "любой кодинг" на 77, как у Арчибальда и Владимира, или на 8 как у Хьюза.
Если алгоритм не рухнул - значит облегченный контроль зацикливания. Здесь все просто ловится.
Если реализовать абсолютный контроль как у Арчибальда каждый узел хранит всех своих предков - то любому алгоритму конец.
Если же "вручную" организовать еще и функционал ( выдается не список ош.дуг, а граф ошибок)- то конец втройне.
123. hogik 443 08.12.10 23:24 Сейчас в теме
(122)
"... с уникальными элементами и правильным контролем зацикливания рухнет по быстродействию "любой кодинг" на 77, как у Арчибальда и Владимира..."(с)
Игорь.
Ну, хватит врать!!!
Полный обход дерева (любого!!!) из 1111111 узлов за минуту (на Си) и за три минуты (на 1С 7.7) - это "рухнуть"(с) ?
Контроль "циклов" - полный. Алгоритм позволяет, действительно, интерактивно исправить ошибки в дереве в многопользовательском режиме. Никакого накопления ошибок не требуется т.к. находится очередной "цикл", пользователь вносит исправления и программа продолжает работать. И это достигается из-за полного отказа от запросной технологии. Запросов вместо рекурсии или запрос вместе с рекурсией (циклом) - не имеет значения.
Не в "рекурсии" проблема... ;-)
124. Ish_2 1104 09.12.10 06:20 Сейчас в теме
(123) На 77 "рухнуть" - означает "проиграть многократно" только и всего.
Ваши показатели я уже знаю - мы всё давно выяснили с Вами. Арчибальд со своим "графином" тут ни при чём.
Про 77 или 8 - мне неинтересно.
Языком молоть - не мешки ворочать.
А Вы докажите.
Создайте тему - покажите ваши результаты. Сделайте сравнительный анализ.
Без этого ,Владимир,
все Ваши рассуждения и размышлизмы - набор символов.
125. hogik 443 09.12.10 18:38 Сейчас в теме
(124)
До редактирования Вашего сообщения было написано:
""рухнуть" - означает... Что Вас так задело ?"(с)
Отвечаю на это.
Игорь.
Огромная к Вам просьба - читайте целиком сообщения собеседников.
Меня ничего не задело в слове "рухнуло".
Меня "задевает" Ваш "конкретизм" видеть задачу - "писать запросы"(ПЗ) полностью игнорирую реальную задачу. И пытаться доказывать (утверждать) своё желание ПЗ путем вранья и "опускания" собеседников.
Теперь отвечу на Вашу фразу "Языком молоть - не мешки ворочать."(с).
Вы читали, пытались понять, задавали вопросы и т.д. по моим публикация на данном ресурсе? Я Вам, лично, не представлял тексты программы, замеры, анализ по теме "запросы"? Вы ничего не поняли? Спрашивайте...
Ну, и про "все Ваши рассуждения и размышлизмы - набор символов"(с).
Игорь. Попытайтесь из "набора символов"(с) складывать слова, фразы, утверждения, мысли и т.д. Иногда это помогает. ;-)
Последнее.
Игорь, Ваше стремление ПЗ это, на самом деле, желание получить халяву (волшебную палочку). И когда у Вас этого не получается Вас это очень сердит. Но Ваши оппоненты в этом не виноваты. Не стоит на них срывать свою злость (разочарование).

P.S. Еще раз прошу прощение у Автора темы (публикации).
Арчибальд; +1 Ответить
126. Ish_2 1104 09.12.10 19:10 Сейчас в теме
(125)
Все участники дискуссии - представили свои реальные разработки.
Вы представили - длинные размышлизмы вперемешку с какими-то "цифирьками".

Почувствуйте разницу.

Публиковать свою обработку Вы не желаете.Доказывать ничего не хотите.
Желаете делиться размышлизмами: то, да сё..
Поэтому фраза "Языком молоть - не мешки ворочать" , употребленная мной, более чем оправдана.
127. hogik 443 09.12.10 19:28 Сейчас в теме
(126)
Игорь.
Вы опять читаете отдельные буквы в моих сообщениях. :-(
Я не желаю публиковать свою "разработку", т.к. не существует таких задач которые Вы поставили в очередной публикации цикла "Мы пишем з...". Но, я всю информацию и своё мнение Вам выдал, еще до появления Вашей публикации.
Завяжем. Вы во всём правы. Пишите запросы дальше...
128. Ish_2 1104 10.12.10 04:43 Сейчас в теме
Арчибальд, я пришел в твою тему с камнем запазухой и благой целью.
Перековать Арчибальда ! Сделать тебя нашим !
Чтобы над своим рабочим местом ты повесил плакат : "Пишу запросы !".
Признаю : ты не перековался.
Оставьте свое сообщение