Глокая Куздра программирования 1С




Принцип обмена данными из 1С с сайтом (на MySQL) и выдачи (публикации) этих данных по запросу.
PHP-Скрипт автоматической загрузки данных из файла данных в формате CSV в базу данных сайта работающего на WordPress.

В продолжение моей темы: 1С:Альфа-Авто Автосалон Автосервис: обмен с сайтом.
С помощью данного скрипта можно загружать в автоматическом режиме, по расписанию, данные сервисных книжек (ремонтов авто) из 1С:Альфа-Авто Автосалон Автосервис.
Также можно загружать данные в ручном режиме: для этого делается скрытая страница, где размещается специальная кнопка.
Комментарии размещенные внутри скрипта разъяснят логику и порядок действия.
Комментарии с "/////    echo" использовались для отладки.
Дополнительно создана таблица для журналирования результатов загрузки данных.
Скрипт включает в себя защиту от SQL инъекций (думаю безопасность соблюдена в полной мере).
В кратце:
1. Пишется скрипт, который запускает этот.
2. Создается регламентное задание в WordPress, по которому запускается скрипт из п.1. 
3. Этот скрипт осуществляет проверку на существование файла обмена в папке.
4. Если данные не новые, загрузка не производится.
5. Если данные новые, очищается таблица сервисных книжек.
6. Загружаются новые данные.

Собственно сам скрипт:

<?php // Полная загрузка сервисных книжек, создан 2024-01-05 12:44:55

global $wpdb2;
global $failure;
global $file_hist;

/////  echo '<H2><b>Старт загрузки</b></H2><br>';

$failure=FALSE;
//подключаемся к базе
$wpdb2 = include_once 'connection.php'; ; // подключаемся к MySQL
// если не удалось подключиться, и нужно оборвать PHP с сообщением об этой ошибке
if (!empty($wpdb2->error))
{
/////   echo '<H2><b>Ошибка подключения к БД, завершение.</b></H2><br>';
$failure=TRUE;
wp_die( $wpdb2->error );
}

$m_size_file=0;
$m_mtime_file=0;
$m_comment='';
/////проверка существования файлов выгрузки из 1С
////файл выгрузки сервисных книжек
$file_hist = ABSPATH.'/_1c_alfa_exchange/AA_hist.csv';
if (!file_exists($file_hist))
{
/////   echo '<H2><b>Файл обмена с сервисными книжками не существует.</b></H2><br>';
$m_comment='Файл обмена с сервисными книжками не существует';
$failure=TRUE;
}

/////инициируем таблицу лога
/////если не существует файла то возврат и ничего не делаем
if ($failure){
///включает защиту от SQL инъекций и данные можно передавать как есть, например: $_GET['foo']
/////   echo '<H2><b>Попытка вставить запись в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>$m_comment));
wp_die();
/////    echo '<H2><b>Возврат в начало.</b></H2><br>';
return $failure;
}
/////проверка лога загрузки, что бы не загружать тоже самое
$masiv_data_file=stat($file_hist);   ////передаем в массив свойство файла
$m_size_file=$masiv_data_file[7];    ////получаем размер файла
$m_mtime_file=$masiv_data_file[9];   ////получаем дату модификации файла
////создаем запрос на получение последней удачной загрузки
////выбираем по штампу времени создания (редактирования) файла загрузки AA_hist.csv, $m_mtime_file

/////   echo '<H2><b>Размер файла: '.$m_size_file.'</b></H2><br>';
/////   echo '<H2><b>Штамп времени файла: '.$m_mtime_file.'</b></H2><br>';
/////   echo '<H2><b>Формирование запроса на выборку из лога</b></H2><br>';
////препарируем запрос
$text_zaprosa=$wpdb2->prepare("SELECT * FROM `vin_logs` WHERE `last_mtime_upload` = %s", $m_mtime_file);
$results=$wpdb2->get_results($text_zaprosa);

if ($results)
{   foreach ( $results as $r)
{
////если штамп времени и размер файла совпадают, возврат
if (($r->last_mtime_upload==$m_mtime_file) && ($r->last_size_upload==$m_size_file))
{////echo '<H2><b>Возврат в начало, т.к. найдена запись в логе.</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>'Загрузка отменена, новых данных нет, т.к. найдена запись в логе.'));
wp_die();
return $failure;
}
}
}
////если данные новые, пишем в лог запись о начале загрузки
/////echo '<H2><b>Попытка вставить запись о начале загрузки в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>0, 'last_size_upload'=>$m_size_file, 'comment'=>'Начало загрузки'));

////очищаем таблицу
$clear_tbl_zap=$wpdb2->prepare("TRUNCATE TABLE %s", 'vin_history');
$clear_tbl_zap_repl=str_replace("'","`",$clear_tbl_zap);
$results=$wpdb2->query($clear_tbl_zap_repl);
/////   echo '<H2><b>Очистка таблицы сервисных книжек</b></H2><br>';
if (empty($results))
{
/////   echo '<H2><b>Ошибка очистки таблицы книжек, завершение.</b></H2><br>';
//// если очистка не удалась, возврат
$failure=TRUE;
wp_die();
return $failure;
}

////загружаем данные
$table='vin_history';         // Имя таблицы для импорта
//$file_hist Имя CSV файла, откуда берется информация     // (путь от корня web-сервера)
$delim=';';          // Разделитель полей в CSV файле
$enclosed='"';      // Кавычки для содержимого полей
$escaped='\

67 Comments

  1. Шёпот теней

    Гы….

    Классно!

    Теперь решён извечный спор моей души — когда функция а когда процедура…

    Во-О-от спасибо!

    Reply
  2. keleg

    Ну да, если изменение делать только через функции, то введя в поиске, например, «Параметр = » получим все места, где этот параметр меняется.

    В случае использования для изменения процедур это уже не работает, придется анализировать код. А зачем делать лишнюю работу? 🙂

    Правда, если в глубине объекта меняется очень многое, не стоит писать что-то типа

    Объект.Поле.Поле = Функция(1);

    Объект.Поле.Поле2 = Функция(2);

    Объект.Поле.Поле3 = Функция(3);

    можно свернуть такую конструкцию через отдельную функцию

    Объект.Поле = Функция1(Объект.Поле)

    но это уже тема для отдельной статьи по методам рефакторинга.

    Reply
  3. venger

    Да, штеко накурдячено:-)) Свежо

    Reply
  4. Altair777

    + Аффтар жжот 🙂

    И весело, и занимательно, и правильно.

    Reply
  5. maljaev

    (0) Уважаемый, вам нужно на курсах 1С преподавать, не иначе! С таким свежим и неординарным подходом штеко умные программисты наконец-то появятся.

    Reply
  6. Sprite

    Интересные факты:

    «Гло́кая ку́здра ште́ко будлану́ла бо́кра и курдя́чит бокрёнка» — искусственная фраза русского языка, в которой все корневые морфемы заменены на бессмысленные сочетания звуков.

    Пример был предложен академиком Л. В. Щербой в 1930-е и использовался на вводных лекциях к курсу «Основы языкознания». Широкую известность эта фраза приобрела после публикации научно-популярной книги Льва Успенского «Слово о словах».

    Согласно устному рассказу Ираклия Андроникова, впервые (в конце 1920-х годов) фраза звучала: «Кудматая бокра штеко будланула тукастенького бокрёночка».

    В детективе Александры Марининой «Убийца поневоле» встречается персонаж — бывший уголовник по кличке Бокр, который взял себе это прозвище, прочитав в тюремной библиотеке книгу Успенского «Слово о словах».

    Точная фраза Щербы до сих пор неизвестна. Сам он произносил её в разное время по-разному, и верификация изначального варианта, судя по всему, невозможна.

    Ещё в декабре 1863 года Льюис Кэрролл, после любительского спектакля «Альфред Великий» прочёл гостям четверостишье (состояло целиком из несуществующих слов, за исключением служебных, чем формально было родственно глокой куздре), которое позже использовал как пролог к своей поэме «Бармаглот», приведённой в книге Алиса в Зазеркалье. Бармаглот — вероятно, первая попытка ввести в язык несуществующие слова, подчиняющиеся, тем не менее, всем законам языка.

    Баллада о Джаббервокке. стихотворение Льюиса Кэрролла, входящее в повесть-сказку «Алиса в Зазеркалье»:

    Сварнело. Провко ящуки

    Паробуртелись по вселянке

    Хворчастны были швабраки

    Зелиньи чхрыли в издомлянке.

    «Сын! Джаббервокка берегись:

    Ужасны клюв его и лапа.

    И птицы Джубджуб стерегись

    И опаужься Бендерцапа!»

    Взяв свой чумеч, он шел на шум,

    Искал врага кровавологи

    И подле дерева Тумтум

    Остановился на дороге.

    Стоит грозумчив и гневок, —

    Вдруг огнеглазый и рычащий,

    Дымясь восторгом, Джаббервокк

    Летит к нему глумучей чащей.

    Но вкривь-вкось чумеч кривой

    Чикчикает над Джаббервокком,

    И вот с отрубленной главой

    Герой несется торжескоком.

    «Как? Он убил его? Смотри!

    Хитральчик мой, сынок лучавый!

    О, харара! О, харара!

    Какой денек героеславый»…

    Reply
  7. CheBurator

    Хорошо, но конечно за приведенное переложение на язык 1С — двойка!

    потому что упущено СУЩЕСТВЕННОЕ УСЛОВИЕ. а именно «И»

    «булданула бокра И курдячит бокренка» — т.е. в данной фразе следовало бы учесть тот факт, что эти два события «булдание бокра» И » кудрячение бокренка» — возвращают ИСТИНУ при соблюдении двух условий. В данном примере этот наиважнейший аспект — упущен.

    Садитесь, два!

    Reply
  8. CheBurator

    Можно предположить, что Куздра стала глокой именно после булдания бокра и глокой является именно во время курдчания бокренка… то есть типа так:

    ..

    Бокры.Бокр = Куздра.Булданула(Бокры.Бокр, Штеко);

    Пока Не Бокры.Бокренок.Конец() Цикл

    Бокры.Бокренок = Куздра.Курдячит(Бокры.Бокренок);

    Куздра.Глокая = Истина;

    КонецЦикла;

    Куздра.Глокая = Ложь;

    ..

    согласитесь — результат состояния Куздры — принципиально иной ву автора и приведенном мной коменте…

    Reply
  9. kivduts

    Сhe Burashka к вам вопрос у вас дети есть? Я конечно согласен критика нужна, и всякий хлам гнать надо, но не все люди умны как вы, но и есть такие кто умнее вас.

    Reply
  10. Abadonna

    Все давно описано Л. Кэрролом 🙂 Алиса в Зазеркалье.

    БАРМАГЛОТ

    Варкалось. Хливкие шорьки

    Пырялись по паве,

    И хрюкотали зелюки.

    Как мюмзики в мове 22.

    О бойся Бармаглота, сын! 28

    Он так свирлеп и дик,

    А в глуще рымит исполин —

    Злопастный Брандашмыг! 29

    Но взял он меч, и взял он щит,

    Высоких полон дум.

    В глущобу путь его лежит

    Под дерево Тумтум.

    Он стал под дерево и ждет,

    И вдруг граахнул гром —

    Летит ужасный Бармаглот

    И пылкает огнем!

    Раз-два, раз-два! Горит трава,

    Взы-взы – стрижает меч,

    Ува! Ува! И голова

    Барабардает с плеч!

    О светозарный мальчик мой!

    Ты победил в бою!

    О храброславленный герой,

    Хвалу тебе пою!

    Варкалось 30. Хливкие шорьки

    Пырялись по наве.

    И хрюкотали зелюки.

    Как мюмзики в мове.

    Reply
  11. keleg

    Спасибо за комментарии!

    Отдельное спасибо ЧеБурашке 🙂 Заставил еще раз задуматься над смыслом великого произведения 🙂

    1) В момент булданутия Бокра Куздра уже была глокой (см. первоисточник)

    2) В моей интерпретации при любых условиях срабатывают и будание Бокра, и курдячение бокренка. Так что, считаю, все вполне корректно. Другой вопрос — что было бы, если бы Бокр не булданулся? Но об этом и первоисточник, и моя программа, умалчивают. Да и нет в 1С нормальной работы с исключениями 🙂

    Reply
  12. Razamataz

    Прикольно 🙂

    to Сhe Burashka: Ну с Вашими выводами действительно можно поспорить 😉

    1) куздра штеко булданула бокра — прошедшее время, а курдячит настоящее, поэтому "и" тут конечно есть, но ставить в коде в одно выражение имхо не правильно, поэтому с этим у автора всё ок;

    2) а вот опираясь на различие времен глокая куздра именно сейчас, я строчку

    Код
     Куздра.Глокая = Истина; 

    Показать полностью

    сместил бы на одну позицию вниз;

    3) А вот использовать

    Код
     Куздра.Глокая = Истина; 

    Показать полностью

    внутри цикла это помоему методически не правильно, т.к. как говорится масло масленное, всмысле уже после первогог выполнения присвоена истина, поэтому эту строку надо вынести за пределы цикла или же например тогда уж использовать тип число и увеличивать её величину по мере выполнения цикла, например

    Код
     Куздра.Глокая = Куздра.Глокая + ПриростГлокости; 

    Показать полностью

    И в целом тогда можно получить например след. картину:

    Код
    Результат = Куздра.Булданула(Бокры.Бокр, Штеко);
    
    Бокры.Бокр = Результат.Пациенс;
    Бокры.Бокр.Глок = Результат.ЭкспириенсПациенса;
    Куздра.Глок = Результат.ЭкспириенсАгенса; //хотя это уместнее разместить внутри функции Булданула(),
                                                                        //т.к. относится к тому же объекту
    
    Пока Куздра.ХочетГлоку() ИЛИ Не Бокры.Бокренок.Конец() Цикл
             Результат = Куздра.Курдячит(Бокры.Бокренок);
             Бокры.Бокренок = Результат.Пациенс;
             Бокры.Бокренок.ЖизненнаяСила -= Результат.ЭкспириенсПациенса;
             Куздра.Глок += Результат.ЭкспириенсАгенса;
    КонецЦикла;

    Показать полностью

    Reply
  13. CheBurator

    (10) да, у меня дети есть — сын 16 лет, который уже сейчас зарабатывает себе на свои ежедневные подростково/юношеские потребности сам.

    А насчет того что есть люди и поумнее меня — полностью с вами согласен!

    И с удовольствие черпаю у таких людей мудрость и знания в силу своих возможностей.

    Reply
  14. Lyekka

    Правильно, может оно и правильно, но сомневаюсь, что народ прямо сейчас возьмётся перелопачивать весь код, написанный до сего момента. Цель, разумеется, должна быть идеальной. Но и жить вне компьютера тоже стоит, ИМХО.

    Reply
  15. CheBurator

    (12) эээ.. тут можно и подискутировать…

    Однозначно можно утверждать что куздра — глокая в настоящем времени, то есть во время кудлачения бокренка…

    Каково было состояние куздры ранее и каково будет состояние куздры после окончания кудлачения бокренка — тут я бы не взялся утверждать однозначно…

    То есть, тут мы выходим на применение fuzzy-логики…

    Reply
  16. CheBurator

    Также можно сделать предположение, раз существует оператор «И» в утверждении — то осуществившееся событие булдания и настоящее событие кудрячения — неразрывно связаны..

    НО! По правилам русского языка союз «И» в ряде случаев рассматривается как союз «А», т.е. фраза может быть прочитана и так: » Глокая куздра штеко булданула бокра, А курдячит бокренка» — в этом случае математическое описание с учетом смысловой нагрузки во фразе — будет совершенно другое…!!!!

    Reply
  17. maljaev

    Всё-таки я предпочитаю более традиционное изложение методических материалов. В этом плане соседняя тема о том как избежать ошибок нравится мне больше. После множества прочтенных мануалов читать подобное изложение и понимать его очень сложно — возможно с непривычки.

    P.S. Кстати, Шепот, а че ты все посты подряд плюсуешь? Плюсани тогда и меня, что ли… 🙂

    Reply
  18. O-Planet

    Вы тут ваще о чем? 0_о

    Я ниасилил даже заголовок, хотя статья, наверное, интересная. :((( Сперва подумал, что она — на эльфийском. Но потом пришел к заключению, что это какой-то мало распространенный гоблинский диалект. Не думал, что столько народу знают гоблинский. Йа — нуп…

    Reply
  19. vasilykushnir

    (19) Олежа, забей… Я же забил и нормально себя чувствую. Чем бы дитё не тешилось…

    Трям.

    Reply
  20. maljaev

    (19) Пора заканчивать с РПГ… 🙂

    Reply
  21. CheBurator

    О чем показывает обсуждение данного материала? а о том, что немногим субъектам нашего сообщества доступно абстрагирование… 😉

    Reply
  22. CheBurator

    +1 глокой куздре! я хорошо оттянулся!

    Reply
  23. O-Planet

    Уточнил… Тут ашипка. Точнее, особенность используемого аффтором гоблинского наречия. Бокренок — это ваще женский род, только в просторечии, как типа мы говорим «малыш», обращаясь к подруге. И правильно — не кудрячит, а куздра куздрячит. В условии цикла надо использовать не «Конец()», а «Ооойааай()» Иначе смысл не ясен…

    Reply
  24. CheBurator

    > куздра куздрячит.

    давайте не будем скатываться к примитивизму…

    «куздра куздрячит» — понятно, что это обозначает действие _изначально_ характерное для куздры… но как таковая куздра сама по себе — нас не интересует… «кузрячит» — эквивалентно «рабочий работает» — т.е. энтропия данного сообщеняи близка к 0… «Куздра … курдячит» — гораздо более емкое обпределение действия, которое поязволяет сделат вывод о том, что куздра имеет не одну степень свободы (куздрячит) а — гораздо больше! т.е. отсюда можно сделать вывод что куздра — суть многофункциональный объект/субъект! это подтверждается также и тем, что куздра еще может/умеет/выполняет БУЛДАНИЕ БОКРА, т.е. как минимум, куздра имеет три стпени свободы — 1.куздрячение (как изначально принадлежащее куздре по самоей ее сути) 2. кудрячение (бокренка!!!! не кого именно, а как минимум — бокренка) и 3. булдание (бокра, а не кого попало)…

    ..

    вышеприведенный анализ позволяет также сделать вывод о том, что куздра — многофункциональный субъект/объект с избирательной «программой» действия, определяемой окружающей обстановкой (бокренка — кудрячит, болдание — бокра), т.е. присутствует обратная связь в определяющих мотивах поведения куздры…

    ..Вопрос о том, является ли куздра искуственным объектом/субъектом, однозначно определяемым конечным набором кортежей «действие куздры — объект вблизи куздры», или же куздра является объектом живой природы с ненормированным поведением в условиях нормированной/ненормированной внешней обстановки — на данный момент остается открытым…

    Reply
  25. Шёпот теней

    (18)

    В чём величие абстрактного искусства?

    В том, что оно имеет несколько уровней познания, оно изначально отказывается от ведения по знакомым тропинкам и предлагает человеку заняться творчеством самостоятельно. Причем совершенно не отвергает весь предыдущий путь развития, опыт предыдущего знания.

    Вот я и голосую за это, за нестандартное, за новый взгляд, за новое прочтение и мне нравится, что программисты это не только знатоки кода и бухгалтерии, но ещё и люди высокой культуры. За согласие, за попытку найти примирение. За высказывания, которые дополняют ответ, за попытку найти правду или истину, за критику, а не за желание проявить своё эго.

    Воо-о-оот такое мнение моё….

    Reply
  26. Abadonna

    (26)>В чём величие абстрактного искусства?

    Что касаемо художников-абстракционистов, то лично я бы с удовольствием бил бы их по башке рамами от их же «картин» 😉

    Reply
  27. Altair777

    По поводу искусства вообще и программирование в частности у меня давно есть такое мнение.

    Основные критерии к программе:

    1) Она должна работать правильно

    2) Она должна работать быстро

    3) Она должна работать красиво

    Это картина или стихотворение может нравится или нет… у каждого свой вкус. Это субъективно.

    А программа должна работать! Это объективная реальность.

    Reply
  28. keleg

    Ну, а чтобы программа работала правильно, быстро и красиво, ее логика должна быть понятна разработчику.

    Начиная с первого десятка тысяч строк кода это не так-то просто, уж поверьте 🙂

    Потому и появилась такая дисциплина, как рефакторинг.

    Читайте следующую статью!

    Reply
  29. Душелов

    (28) это в условиях, когда 1 программист. Попробуйте работать над программой в числе 20-30 разработчиков, и когда каждый пишет, как хочет…

    Reply
  30. Altair777

    (30) Или как я сейчас.

    Пришел на новую работу, смотрю конфу…. И фшоке 🙂

    Reply
  31. Шёпот теней

    написать программу в 10 строк может каждый

    написать программу в 100 строк может упорный

    написать программу в 1000 строк может талант

    написать программу в 10 000 строк может гений

    Reply
  32. Altair777

    (32) спорно, очень спорно… "Краткость — сестра таланта" 🙂

    Как Вам такое, например?

    Код
    Если Инд=1 Тогда
       Инд=2;
    ИначеЕсли Инд=2 Тогда
       Инд=3;
    ИначеЕсли Инд=3 Тогда
       Инд=4;
    .....................
    .....................
    .....................
    ИначеЕсли Инд=998 Тогда
       Инд=999;
    ИначеЕсли Инд=999 Тогда
       Инд=1000;
    КонецЕсли;
    

    Показать полностью

    Reply
  33. JohnyDeath

    (33) А строк-то 11 получилось 😉 , так что это ближе к «каждому» 😉

    Reply
  34. keleg

    (33)

    На самом деле код не так прост 🙂

    Код
    Функция ИндексВерен(Индекс)
      Возврат (Индекс>=0) И (Индекс<=100) И ЦелоеЧисло(Индекс);
    КонецФункции
    {**************}
    Если ИндексВерен(Индекс) тогда
      Индекс = Индекс+1;
    КонецЕсли;
    

    Показать полностью

    А еще функцию ЦелоеЧисло() нужно описать, кажется, нет там встроенной нормально (не успеваю, убегать нужно)

    Reply
  35. Altair777

    (34) мне было лень писать остальные

    Код
    ИначеЕсли

    Показать полностью

    от 5 до 997

    Но если Вы настаиваете, я напишу обработочку, которая этот текст создаст и потом результат сюда помещу.

    1999 строка получицца, кажицца 🙂

    Reply
  36. Altair777

    +36 съелось почему-то "остальные

    Код
    ИначеЕсли

    Показать полностью

    от 5 до 997

    Reply
  37. Altair777

    +37 и снова 🙂

    что-то глючат теги code /code

    мне было лень писать остальные ИначеЕсли от 5 до 997

    Reply
  38. Abadonna

    (36)>Но если Вы настаиваете, я напишу обработочку

    Обязательно напиши, только увеличь верхнюю границу до 100 тысяч :)))

    Reply
  39. JohnyDeath

    (36) если напишешь, то ты уже перейдёшь в разряд «упорный» 😉

    Reply
  40. Altair777

    (39) и (40) запроста! 🙂

    А мя за флуд не забанят?

    Reply
  41. Altair777

    +41 Поэтому на всякий случай помещаю только текст процедуры 🙂

    Код
    Процедура Сформировать()
       Перем Инд, Тек;
    &nbs
    Reply
  42. Altair777

    (39) > Обязательно напиши, только увеличь верхнюю границу до 100 тысяч :)))

    Я только до 10 тысяч увеличил. Больше мне моя природная скромность не позволила 🙂

    Reply
  43. Forego

    Из уважения к академику Щербе, автору фразы : у него куздра буДланула бокра

    Reply
  44. Шёпот теней

    (32) +

    в 10 строках кода существует хотя бы одна ошибка… Закон программирования…

    во-О-от…

    Reply
  45. kabanoff

    У меня с абстрагированием нормально, но материал (имхо) всё равно трудный. Не проще ли изложить на удобочитаемых предложениях типа «Клара у Карла украла кораллы, а Карл у Клары украл кларнет»? По-моему, так даже будет интересней.

    Reply
  46. Abadonna

    (46)>на удобочитаемых предложениях типа «Клара у Карла украла кораллы,

    Чтобы склонить Клару к оралу,

    Карл у Клары украл кораллы….

    :)))))))))

    Reply
  47. Altair777

    Вопрос. Это у меня глючит браузер или комментарии редактируются после.

    Я помню реплику Шёпот теней по поводу неодинаковых строк кода

    Кажется, это было в (45)

    А сейчас там осталось

    > (32) +

    >

    > в 10 строках кода существует хотя бы одна ошибка… Закон программирования…

    >

    > во-О-от…

    Я еще тогда хотел заметить, что в той процедуре, которую я смеха ради привел для примера (см. ее генератор в 42), нет ни одной одинаковой строки 🙂

    Reply
  48. Altair777

    (47) кажется, это должно звучать так 🙂

    Клара у Карла украла кораллы,

    Что бы Карла сконить к оралу,

    А Карл у Клары украл кларнет,

    Что бы Клару склонить на …..

    Reply
  49. kabanoff

    (47 и 49) Кажется вы форумом ошиблись. Сексуальные проблемы решают не здесь.

    Reply
  50. anonimka

    Прочла с удовольствием 🙂

    Спасибо, занятно.

    Reply
  51. Altair777

    (50)

    1) Какие проблемы? Какой секс?

    2) Это не наши проблемы, а Карла и Клары

    3) Это Abadonna первый начал… с Вашей подачи… 🙂

    Reply
  52. Altair777

    (51) Вы про поэзию? Я смущен 🙂

    Reply
  53. kabanoff

    (52) Каждый думает в меру своей распущенности.

    Reply
  54. Altair777

    (54) И какая же она у меня с Абадонной?

    Вас, кстати, не смущают слова КонецЕсли, КонецПроцедуры, КонецФункции?

    Уж как-то Вы нетерпимы… чересчур.

    Или просто Вам нужно было вставить свое «веское» слово? Так вставьте по сабжу.

    А слово «вставить» не смущает? 🙂

    Reply
  55. kabanoff

    to 55

    > И какая же она у меня с Абадонной?

    Вы вообще что хотели узнать?

    > Вас, кстати, не смущают слова КонецЕсли, КонецПроцедуры, КонецФункции?

    > Уж как-то Вы нетерпимы… чересчур.

    Меня смущают Ваши комментарии по поводу моего сообщения 46.

    > Или просто Вам нужно было вставить свое «веское» слово? Так вставьте по сабжу.

    А сообщения 47 и 49 по сабжу?

    Reply
  56. Altair777

    to 55

    > Вы вообще что хотели узнать?

    Догадайтесь с 3 раз 🙂

    —————————————-

    55. Altair777 21.10.2008

    (54) И какая же она у меня с Абадонной?

    —————————————-

    54. kabanoff 21.10.2008

    (52) Каждый думает в меру своей распущенности.

    —————————————-

    Вы о моей распущенности судите по невинному стишку? 🙂

    > Меня смущают Ваши комментарии по поводу моего сообщения 46.

    Я не комментировал это сообщение

    > А сообщения 47 и 49 по сабжу?

    Нет. Но это была глубокая ночь… Увидел в прямом эфире сообщение Абадонны и не смог удержаться, что бы немного не улучшить его 🙂

    Reply
  57. Altair777

    (57) to 56

    Reply
  58. Altair777

    (56) > Меня смущают Ваши комментарии по поводу моего сообщения 46.

    Вот сейчас прокомментирую 🙂

    > 46. kabanoff 20.10.2008

    > У меня с абстрагированием нормально, но материал (имхо) всё равно трудный. Не проще ли изложить на удобочитаемых предложениях типа «Клара у Карла украла кораллы, а Карл у Клары украл кларнет»? По-моему, так даже будет интересней.

    Дело в том, что в этой фразе совсем нету абстрагирования, только голые 😉 факты.

    И объяснять смысл, заключенный в этом блоге, там бессмысленно. (сорри за тавтологию)

    Мы пытались с Абадонной абстрагировать, развить действие.. И результат?

    А Вы сами же нас стали посылать… на секс-форумы 🙂

    Reply
  59. kabanoff

    (59) При чем здесь факты? Ну и что? Я от программирования на конкретном языке абстрагируюсь, а Вы от чего?

    Следующие сообщения не вижу смысла комментировать, ибо спорить не о чем.

    Reply
  60. O-Planet

    (44) >> Из уважения к академику Щербе, автору фразы : у него куздра буДланула бокра

    Он понял неправильно. Там было все по-другому 8)

    Reply
  61. Altair777

    (60) А в данной статье абстрагируются как раз от фактов .

    Никто не знает, кто такие «куздра» и «бокра». Да это и не суть важно.

    Важны их свойства и методы.

    Интересно, а как можно абстрагироваться от языка программирования?

    В маш.кодах свой стиль и свои приемы, в Делфях — другие…

    И это во многих отраслях человеческой дейятельности. Не факт что из хорошего скрипача, виртуозно владеющего смычком, получится хотя бы посредственный скульптор.

    Reply
  62. ded00786

    Вот это бредятина 🙂

    Однозначно +

    Reply
  63. vkr

    Прошу прощения за маленькое уточнение, но — куздра «буДЛанула» бокрёнка… 🙂

    Reply
  64. vkr

    Еще раз прошу прощения — опечатался — куздра «буДЛанула» бокра…

    Reply
  65. tsd

    Забавно 🙂

    Reply
  66. Rusk51

    Иванова Маша ударила кружку и дубасила кружечку. Ну ка примени теперь свои знания. По отношению к бокру .Смысловое.

    Заранее прошу прощения — дочке объясняю основы логики программирования. Это её пример.

    Reply
  67. cool.vlad4

    Еще примерчик из кибериады 😀

    Лопотуй голомозый, да бундет грывчато

    В кочь турмельной бычахе, что коздрой уснит,

    Окошел бы назакрочь, высвиря глазята,

    А порсаки корсливые вычат намрыд!

    Три, самолож выверстный, вертяшку сум воздлинем,

    Секливой апелайде и боровайка кнется,

    Гренит малополешный тем перезлавским тринем,

    И отмурчится бамба, и голою вернется.

    Грызнотвурога жуждя, голенистый лолень

    Самошпака миманку…

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *