Зачем изобретать ВЕЛОСИПЕД или как переставить символы ?




Принцип обмена данными из 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. Kyrales

    Толком ниче не понял…видимо утро потому что….но за такого рода мысли в кризис + :))

    Reply
  2. Craig

    Видать заняться нечем))) Это ж надо было придумать такую задачу гы))) (+) за то что повеселил! Ну а теперь жду комментария – как такое в голову пришло?

    Reply
  3. Арчибальд

    Описание в обработке — это круто …

    Еще хочу обработку, чтобы делила «столбиком». С распечаткой.

    Reply
  4. Ish_2

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

    ограничено : не более 9. Существенное упрощение.

    При 10 символах в строке алгоритм придется менять.

    Возможно , логичней также сделать в исходном слове неразличимость по регистру : ИсходноеСлово = ВРег(ИсходноеСлово).

    Reply
  5. Tatitutu

    (2) «Крошка сын к отцу пришел и спросила кроха…» как получить все варианты перестановок слова ШКОЛА. — я же написал в описании.

    (3) Спасибо. Маленький каприз — это про описание ))),через полчаса будет Вам такая обработка

    (4) Нет при 10 символах (еще не сильно придется менять так как, как раз с таким подходом 10 символов и есть 0,1,2,3,4,5,6,7,8,9.

    Вот про это я и писал — своеобразный подход к решению задачи (один из вариантов — если не помнишь математику и формулы, но решить нужно)

    ИсходноеСлово = ВРег(ИсходноеСлово) — впринципе согласен , так как Ю и ю для программы это разные символы.

    А Вы попробуйте предложить другой вариант задачи (на 8-ке проще сделать)

    Reply
  6. Ish_2

    (5) Это не своеобразный подход , а ограничение , которое обычно явно указывают.

    На 8-ке не осилю.

    Reply
  7. oskar

    (5)прикольно, позновательно

    Reply
  8. Tatitutu

    (6) позволь не согласится с тобой

    Своебразный подход — заключается в данном случае в том

    порядковый номер символа в строке — приравниваем к цифре

    (проверяется уникальность символов в строке,лишние отбрасываются)

    (да строка длинной 9 знаков и это будет 987 654 321 (макс число))

    Например: слово ДОМ = 123

    значит что бы найти все варианты

    нужно перебрать с 123 по 321

    и проверить чтобы не было задвоение символов (типа ДДО)

    т.е. в новом слове должны быть все символы по 1 разу.

    123 132 213 231 312 321

    (идет прирост 9 81 18 81 9) но закономерность не смог вспомнить или вычислить — может кто знает формулу?

    Reply
  9. Ish_2

    (8) Хорошо. Сформулируем иначе.

    При объявленном ограничении возможен такой своеобразный подход.

    Любопытно. Итак , ряд чисел , упорядоченных по возрастанию.

    Кажде число составлено путем перестановок цифр из множества (0.,9).

    Известна ли реккурентня формула для определения каждого члена ряда ?

    Предположительный ответ : нет.

    Reply
  10. Ish_2

    +9 Исправление :

    Кажде число составлено путем перестановок N неповторяющихся цифр из множества (0.,9).

    Reply
  11. Tatitutu

    (10) ну… еще чуть — чуть ))) Давай свой алгоритм.

    Этот вариант — решен в ЛОБ. Нужен научный подход

    Reply
  12. Ish_2

    Чего чуть — чуть ?

    Позиция моя обозначена сразу : не осилю.

    Reply
  13. Tatitutu

    (12) я вот помню учил (я имею ввиду про научный подход)…

    а где посмотреть не помню (Яндекс тоже меня не понимает)

    Reply
  14. Ish_2

    Яндекс понимает «форум по математике.»

    Сформулируй вопрос и вперед.

    Reply
  15. Арчибальд

    Функция СтрПерестановок(Строчка, Префикс=»»)

    Рез=»»;

    лСтр=Строчка;

    Дл=СтрДлина(лСтр);

    Если Дл=1 Тогда

    Рез = Строчка;

    Иначе

    Для й=1 по Дл Цикл

    Сим=Лев(лСтр,1);

    Арг=Сред(лСтр,2);

    Рез=Рез+Префикс+СтрПерестановок(Арг,Сим);

    лСтр=Арг+Сим;

    КонеЦикла;

    КонецЕсли;

    Возврат Рез;

    КонецФункции

    Останется поделить полученную строку на кусочки требуемой длины..

    Reply
  16. Tatitutu

    (15) пока сыровато….не взлетает

    Параметр : Слон , «/»

    возврат

    /слнлосолонснонл/лосонлнонслснсо/онлнсоснслолслн/нсослнлслон­олос

    Reply
  17. venger

    (0) Так можно и довести до возможности играть с компом в балду или как там эта игра называется (из слова слова составлять)? Доработать алгоритм, прикрутить проверку (можно через и-нет) слово ли это, а не просто набор символов и вперед… Уровни сложности там еще забахать и будет игруха ниче так..

    Reply
  18. Tatitutu

    (17) Идея хорошая. Но не нова

    игра Балда для 1С 7.7. есть — разработчик spirit@kitcom.ru

    но там принцип другой — изначально есть словарь (база данных слов)

    Reply
  19. Kurt

    Теория вроде здесь есть

    http://ru.wikipedia.org/wiki/Перестановка

    А вот здесь раздел более глобальный

    http://ru.wikipedia.org/wiki/Категория:Комбинаторика

    Вот еще про комбинаторику

    http://combinatorica.narod.ru/third.html

    Посмотрел я на эти значки и подмножества… ужос… это как заново изучать… и даже не помню это «высшая математика» или нет?

    Reply
  20. Kurt

    Перестановки. Факториал

    http://mmmf.math.msu.su/archive/19992000/spivak67/s_comb.html

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

    1. Так что по-моему решать придется в лоб, прямым пересчётом, например от 1234 до 4321 (для 4х элементов).

    2. Можно только попробовать откидывать лишние варианты по контрольной сумме, например 1+2+3+4=10 (в любой их комбинации) Возможно, что такая проверка, да еще при большем количестве элементов наоборот, только затормозит процесс???

    3. Но этого еще не достаточно. «Подходящий» вариант надо дополнительно проверять на вхождение в него всех элементов, т.к. могут возникать левые числа 0+6+0+4=10, прокатывающие под контрольную сумму :(((

    Т.е. выполнять п.3 для всех чисел исключив п.2.

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

    Очень медленный вариант решения в лоб. Другого пока не вижу.

    Reply
  21. Tatitutu

    Нашел !!!! ВАРИАН скорость супер — совсем другое решение

    сейчас вылоду. Неограниченная длина строки. Ура=я умничка

    (20) Возможно будет ВСЕ ВАРИАНТЫ

    Reply
  22. Kurt

    (21) Ну таки опишите алгоритм 🙂

    Всё таки интересно.

    Reply
  23. Арчибальд

    Во как. Я просил в 3 не перестановки, а именно деление чисел. Как в четвертом классе учат…

    Reply
  24. Tatitutu

    Вот я и сделал перестановкой. Завтра выложу — сегодня не успеваю уже.

    Затык произошел если больше 6 символов — двоится начали (разбираюсь почему)

    Reply
  25. poppy

    http://infostart.ru/bitrix/components/bitrix/forum.interface/show_file.php?fid=10022&action=download

    Обработка под восьмерку. Используется рекурсия.

    Reply
  26. Tatitutu

    Всем спасибо ! Особенно (25)

    отличный вариант (обработку не буду выкладывать, т.к кто первый встал того и тапки — poppy (с) )

    Вот код кому нужно тот поймет:

    АВТОР poppy (с)

    роцедура Перестановка(Слово, Префикс, ДлинаСлова)

    Если ДлинаСлова = 1 Тогда

    Ном = Ном+1;

    Сообщить(Строка(Ном) + » » + Префикс+Слово);

    Возврат;

    КонецЕсли;

    Для ии = 1 По ДлинаСлова Цикл

    НовоеСлово = Лев(Слово, ии-1) + Сред(Слово, ии+1);

    Перестановка(НовоеСлово, Префикс + Сред(Слово, ии, 1), ДлинаСлова-1);

    КонецЦикла;

    КонецПроцедуры

    Процедура Проба()

    Исходное=СокрЛП(НачальноеСлово);

    ДлинаСлова=СтрДлина(Исходное);

    Перестановка(Исходное,»»,ДлинаСлова);

    КонецПроцедуры

    Reply
  27. Арчибальд

    (15,26)

    Функция СтрПерестановок(Строчка,Префикс=»»)

    Рез=»»;

    лСтр=СокрЛП(Строчка);

    Дл=СтрДлина(лСтр);

    Если Дл=0 Тогда

    Рез = Префикс;

    Иначе

    Для й=1 по Дл Цикл

    Сим=Сред(лСтр,й,1);

    Арг=Лев(лСтр,й-1)+Сред(лСтр,й+1);

    Рез=Рез+СтрПерестановок(Арг,Префикс+Сим);

    КонецЦикла;

    КонецЕсли;

    Возврат Рез;

    КонецФункции

    //*******************************************

    Процедура Сформировать()

    Сообщить(СтрПерестановок(тхт));

    КонецПроцедуры

    Теперь летает… Переставил слово одно…

    Reply
  28. Арчибальд

    Посмотрел — одинаково…

    Reply
  29. alexk-is
    Код
    Процедура КнопкаВыполнитьНажатие(Кнопка)
       
       ДлинаСлова = СтрДлина(Слово);
       Если ДлинаСлова = 0 Тогда
          Возврат;
       КонецЕсли;
       
       МассивБукв = Новый Массив(ДлинаСлова);
       
       // Разбросаем слово по массиву
       Для Индекс = 0 По МассивБукв.ВГраница() Цикл
          МассивБукв[Индекс] = Сред(Слово, Индекс + 1, 1);
       КонецЦикла;
       
       Перебор("", МассивБукв);
       
    КонецПроцедуры
    
    Процедура Перебор(НачалоСтроки, МассивБукв)
       
       КоличествоБукв = МассивБукв.Количество();
       
       Если КоличествоБукв = 1 Тогда
          Сообщить(НачалоСтроки + МассивБукв[0]);
       Иначе
          РазмерМассива = МассивБукв.ВГраница();
          Для Индекс = 0 По РазмерМассива Цикл
             СледующийСимвол = МассивБукв[Индекс];
             
             // Копирование массива
             НовыйМассив = Новый Массив(КоличествоБукв);
             Для Индекс2 = 0 По РазмерМассива Цикл
                НовыйМассив[Индекс2] = МассивБукв[Индекс2];
             КонецЦикла;
             НовыйМассив.Удалить(Индекс);
             
             Перебор(НачалоСтроки + СледующийСимвол, НовыйМассив);
          КонецЦикла;
       КонецЕсли;
          
    КонецПроцедуры
    

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

    Reply
  30. Tatitutu

    (28,29) Молодцы !!! Спасибо огромное — думаю и вам приятно было решить эту с виду простую задачку. Есть еще одно оригинальное решение — я в описании сразу написал — знаю 3.

    Reply
  31. alexk-is
    Reply
  32. alexk-is
    Reply
  33. Tatitutu

    (32) И тебе большое спасибо. Вот бы здорово было сравнить твое решение с (25) они оба на 8 у кого скорость быстрее ?

    Reply
  34. ROM_1C

    (0) можно использовать простую формулую комбинаторики, расбить строку на символы и юзать…

    а вообще какая применяемость даной обработки?

    Reply
  35. Tatitutu

    (34) конечно можно.стоит только попробовать самому.

    Применяемость?

    -решить задачу для сына

    -опробовать свои мозги и возможности

    -перебор вариантов (подбор пароля)

    Reply
  36. CheBurator

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

    другой вопрос чтобы сделать алгоритм максимально быстрым.

    .

    На разминку предлагаю другую подобную задачу.

    Есть N предметов.

    Необходимо выдать все возможные комбинации расположения этих N предметов по кучкам. 1шт — это тоже кучка. Например, 4 предмета:

    возможные варианты расположения по кучкам:

    — 4

    — 3 1

    — 2 1 1

    — 1 1 1 1

    — 2 2

    и т.д.

    порядок выдачи разбиения на кучки — непринципиален.

    это была одна из первых задач, но которой я обломал зубы, будучи молодым и необразованным… 😉 у меня разбиение все время получалось на N кучек по 1 шт.

    Reply
  37. Ёпрст

    (36) ты нас тут основами комбинаторики хочешь достать ?

    :))

    Reply
  38. CheBurator

    Да я не хочу достать, я могу достать! 😉

    нет, принцип не в этом! принцип в эффективности решения.

    Reply
  39. AhtungG

    (35) еще один пункт применяемости:

    — генерация внутренних кодов, состоящих из огранич списка ‘допустимых’ символов.

    к примеру, у нас:

    во избежание разночтений символов (да-да, ‘ноль’ и O, С и S, H и N такое техзадание )) автогенерация кодов на собств продукцию ограничена 0-1..9,ABCEHKLMPTXYZ.

    Этого достаточно, чтобы в пятизначке ХХ.YYY обеспечить макс 529 групп товаров с возможными 12167 эл-в в группе (реально 180 групп до 4 тыс.эл. в нескольких группах)

    Reply
  40. Tatitutu

    Спасибо за пример применения.

    Reply
  41. AhtungG

    для своей задачи (39) нашел имхо более разумное решение,

    использовал ‘перевод чисел в разные системы исчисления’ http://www.kb.mista.ru/article.php?id=78

    схитрил чуток, в Функция Из_10_В_Любую() вынес строку в параметр «012..89ABC..Z»

    подсовываю свой набор )

    Reply
  42. MiCe

    разберите слово ОКОЛОТОК

    =))

    Reply
  43. Tatitutu

    (42) вопрос к кому ?

    В описание у автора написано «(а уникальных 40320 , так Е повторяется два раза — по умолчанию буду считать ее за 1 символ т.е варианты ЕЕ=Е)»

    так в этом слове ОКОЛОТОК = ОКЛТК

    Reply
  44. Арчибальд

    (43) ОКЛТ ;))

    Reply
  45. MiCe

    (43) а я вот из описания понял что два подряд за один….

    т.е. например слово «око» дает 3 варианта

    око

    ок

    ко

    Reply
  46. MiCe

    дано — около

    около-олоко-окло-олко-олк-окл-лко-кло

    Reply
  47. KnightWarlock

    Беспонт, если слова с двумя или более повторяющимяся символами сокращает убирая повторения. НЕ ИНТЕРЕСНО…

    Reply
  48. kitt

    рассчитать количество возможных вариантов для последовательности символов — возвести длину алфавита в степень равную максимальной разрядости (длине последовательности). Всем измвестный пример — байт состоит из 8 бит, возможных значений два — ноль и единица, максимальная длина последовательности — восемь. Итого количество уникальных комбинаций байта — 2#k8SjZc9Dxk8=256 (255 если считать с ноля), то есть 00000000, 00000001, 00000011, 00000111, … 11111111.

    Ваш пример: исходное слово — ОКОЛОТОК, уникальных букв 5 (ОКЛТК), то есть длина алфавита равна пяти. Длина слова равна восьми, итого по формуле получается 5#k8SjZc9Dxk8, то есть 390 625 уникальных слов.

    Reply
  49. kitt

    да вот арчибальд подсказывает что уникальных букв в слове ОКОЛОТОК всего четыре ОКЛТ. Значет решение будет 4#k8SjZc9Dxk8 = 65536

    А то в первый раз я из (43) неправильно буквы скопипастил 🙂

    Reply
  50. jk3

    даже не знал что тут есть раздел «Занимательное программирование для 1С» 8)

    (35) тогда пора переходить на что-нибудь более серьезное: нейросети на 1С — как звучит 😉

    Reply
  51. Tatitutu

    (51) чего тут только нет — и чем разообразнее тем лучше — у кого то может ТОЛЬКО идея возникнет, а кто то ВООДУШИВИТСЯ ею и сделает что-нибудь НАСТОЯЩЕЕ.

    Как говорится лучше — «С миру по нитке и голому рубаха (с)»

    чем стоять на месте и

    «Переливать из пустого в порожнее (с)«

    Reply
  52. Altair777

    (0) Вопрос…

    А зачем переставлять символы? Тем более, так механически?

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

    А так это просто математика…

    Reply
  53. Tatitutu

    (52) Открою тебе тайну

    человек этим и отличается от животного мира

    что ОН задает ВОПРОСЫ и ищет на него ОТВЕТЫ

    а самое главное НАХОДИТ.

    Наша ЖИЗНЬ в ПОИСКЕ.

    не было бы интереснее , поверь

    вот тебе загадка про РУССКИЙ язык

    «Попробуй придумать слово на русском языке из девяти букв, которое содержит в себе шесть других слов»

    Reply
  54. Altair777

    (53) А я думал, что он разумом отличается, а не тупой перестановкой буковок…

    🙂

    Reply
  55. Tatitutu

    (54) Думают — люди умные (с)

    Reply
  56. Tatitutu

    (54) на загадку в (53) не ДУМАЛ как ответить ?

    Reply
  57. Altair777

    (55) Снова началось?

    А потом скажешь, что пароль пропал или тебя взломали?

    Обрати внимание, (52) был корректен. А вот ответ на него — совсем нет.

    Тайны мне открывать не надо. Тем более, такие сокровенные… для тебя.

    Reply
  58. Tatitutu

    (57) Неужели так трудно признать ….- я не знаю ответ на твою загадку.

    а нужно «изобретать ВЕЛОСИПЕД или как переставить символы»

    твой ответ не правильный ❗

    правильный ответ:

    Слово ПРИДУМАТЬ, которое ты уже прочитал не один раз, содержит в себе слова:

    ИДУ, ДУМАТЬ, ДУМА, УМ, МАТЬ и МАТ.

    я ответил на (52)

    Reply
  59. Altair777

    (58) я еще загадку не рассматривал

    Интересно, а сколько бы ты решал ее, если бы не знал отвтета?

    Придумать самому или найти в инете, а потом с гордым видом рассказывать как ты быстро ее решил — это, конечно, круто 🙂

    Reply
  60. Altair777

    (58) > я ответил на (52)

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

    Где слово МИР, например?

    Reply
  61. Tatitutu

    (59) ну ты не нашел же ответа (или я быстрее нашел)

    «…там где — ты учился , я преподавал » (с)

    для (60)

    нет, условия были другие (см.53)

    Где слово МИР, например?

    там написано, в условии.

    «которое СОДЕРЕЖИТ в себе «

    а МИР — это опять из области

    «зачем изобретать ВЕЛОСИПЕД или как переставить символы«

    Reply
  62. Altair777

    (61)

    1) Я еще и не искал ответ. И не обязан был, что характерно 🙂

    Вот так сразу кинуться

    2) Ты ответ знал заранее.

    3) > нет, условия были другие (см.53)

    Не вяжется с (58) > я ответил на (52)

    Прочти все внимательнее с (52) поста.

    Reply
  63. Tatitutu

    хотел сначала написать так

    ты жил с (54) а поведал про (53), на что ты примитивно в (57) обиделся 😥 (кстати совершенно не поделу)

    не буду, напишу просто

    «Хоть ссы в глаза, все божья роса» (с) не мое, народная мудрость.

    И заканчиваем «нарушать — флудить не по теме» Удачных выходных 😀

    Reply
  64. Altair777

    (63) мда… Неужели СССР (Странник Сети (Советник Разума)) вернулся?! 🙂

    Reply
  65. Tatitutu

    (64) Не выдавай ЖЕЛАЕМОЕ, за ДЕЙСТВИТЕЛЬНОЕ. 😀 😀 😀

    » и не м…..» (с) Tatitutu

    Altair777 удачных выходных !

    Reply
  66. Altair777

    и тебе того же…

    Reply
  67. venger

    (61)

    «…там где — ты учился , я преподавал » (с)

    Как бы тоже не стоит желаемое, за действительное выдавать, вообще то;-) Ну да ладно, пора по домам, поэтому стоит переключиться и заняться темой этой ветки вплотную на практике: http://infostart.ru/forum/forum1/topic28571/messages/

    😉

    Reply

Leave a Comment

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