За последние 24 часа нас посетил 17581 программист и 1716 роботов. Сейчас ищут 1849 программистов ...

Нужно написать скрипт.

Тема в разделе "PHP Free-Lance", создана пользователем Realman, 27 окт 2009.

  1. Realman

    Realman Активный пользователь

    С нами с:
    6 авг 2009
    Сообщения:
    26
    Симпатии:
    0
    Заказ взял [vs].
     
  2. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Вот это меня удивляет гораздо больше чем альтруист Mr.M.I.T. :)

    Зачем люди берутся за то, с чем не могут справиться? :)
     
  3. karakh

    karakh Активный пользователь

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    И откуда берутся люди, которые не могут справиться с таким заданием и при этом берутся хоть за что-то? :)
     
  4. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Откуда они берутся я знаю :)
    Я не понимаю их мотивации :)
     
  5. karakh

    karakh Активный пользователь

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    Ну в принципе берутся они оттуда же, откуда и все, да. Родина просит героев... Но "не может справиться с таким заданием" ≈ "впервые увидел php".
     
  6. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    А времени ушло все-таки два часа... Тяжело работать дома =)
     
  7. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Бгг, что ты там накрутил?

    Там один цикл и один счетчик и две проверки.
     
  8. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Не, там класс, обработка ошибок, три счетчика и два цикла, ниодного нотиса и удобный интерфейс =)
    Там же фишка еще такая - выбор строки, с которой файл читать. На вскидку, из двух часов минут 40 ушло на написание в Notepad++ и отладку.

    и 7 проверок.
     
  9. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Я всегда такие мелочи пишу в EditPlus или Notepad++
    Очень приятно и легко.
     
  10. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    У меня эти блокнотики настроены так, чтобы был отключен ClearType, символы были жёсткими, подсветка такая, как в Borland (C++ Builder) =)
     
  11. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Всегда отключаю. Сглаживание только в 7 понравилось.
     
  12. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Ты меня заинтриговал

    10 минут и 2 минуты на отладку.

    PHP:
    1.  
    2. <form action="" method="post">
    3.     <input type="text" name="start">
    4.     <input type="submit" name="submit">
    5. </form>
    6. <?php
    7. error_reporting(E_ALL | E_STRICT);
    8. $fn1 = '1.txt';
    9. $fn2 = '2.txt';
    10. $fn3 = '3.txt';
    11. $fn4 = '4.txt';
    12.  
    13. if (isset($_POST['submit'])) {
    14.     $start = abs((int) $_POST['start']);
    15.  
    16.  
    17.     $fa1 = file($fn1,FILE_IGNORE_NEW_LINES);
    18.     $fa2 = file($fn2,FILE_IGNORE_NEW_LINES);
    19.     $fa3 = file($fn3,FILE_IGNORE_NEW_LINES);
    20.     $fa4 = file($fn4,FILE_IGNORE_NEW_LINES);
    21.     $c = count($fa1);
    22.     if ($c != count($fa2) || $c != count($fa3)) {
    23.         die('Число строк в файлах 1,2,3 не совпадает');
    24.     }
    25.     if ($start > $c || $start == 0) {
    26.         $start=1;
    27.     }
    28.     $res = array();
    29.     foreach ($fa4 as $val) {
    30.         $res[] = $fa1[$start-1] . '|' . $fa2[$start-1] . '|' . $fa3[$start-1] . '|CONST||||' . $val . '|http://' . $val;
    31.         $start++;
    32.         if ($start > $c) {
    33.             $start=1;
    34.         }
    35.     }
    36.     var_dump($res);
    37. }
    38.  
    39. die();
    40.  
    Upd1
    забыл про тупость пользователя и отрицательные числа. Добавил abs()
     
  13. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Забыл добавить что заказчик пока не на связи и деньгу не перевел =)
     
  14. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Бгг. Блин.

    Ты хоть предупреждай :)
     
  15. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Это я к тому, что своим кодом пока не поделюсь )) А как обычно все оказалось не так просто, как описано в теме.
     
  16. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    Kreker
    да не обвиняю, скорее не понимаю
    отправили бы лучше в тему для новичков...
     
  17. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
  18. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    2 часа, это жесть
    напиши полное тз плиз, ради прикола сам напишу попробую =)
     
  19. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    [vs]
    С учетом показанного. Еще 10 минут сверху :)

    И еще +10 минут для произвольного числа файлов :)

    Но это задачи уже достаточно сильно отличающиеся от того, что хотел ТС :)
     
  20. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Если б оно было =)
    Надо с из четырех файлов формировать такую строку
    Код (Text):
    1. строка_1_из_файла_1|строка_1_из_файла_2_|стркоа_1_из_файла_3|слово||||строка_1_из_файла_4|http://строка_1_из_файла_4
    2. строка_2_из_файла_1|строка_2_из_файла_2_|стркоа_2_из_файла_3|слово||||строка_2_из_файла_4|http://строка_2_из_файла_4
    3. ...
    Строки из првых трех файлов начинать выбирать начиная с заданой по номеру, и выполнять скрипт пока не кончатся строки в файле 4. Если например в файле 1 строки кончились, а в файле 4 еще нет, то начинать с файла 1 опять выбирать строки с заданой.
     
  21. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Я не писал на скорость, но всё равно сомневаюсь, что получится сделать это за 20 минут без IDE.
     
  22. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    [vs]
    1. Где тут про аплоад? :)
    2. Номер задается 1, а не для всех файлов разный :)
     
  23. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    для этой задачи достаточно любого редактора :)

    Верь мне :) :) :)
     
  24. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    аплоад это 22 строки с формой и с фигурными скобками на отдельной строке.
    номера задаются разными. Такое в итоге получилось ТЗ.
     
  25. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Ну так и остального порядка 45-60 строк :)
    Всего порядка 70-85 строк

    У меня влезло в 37 за 10 минут :)
    Так что 20 минут ;)

    На самом деле я как-то замерял :)
    В случае нетривиальных/нетипичных задач у меня получается
    50-90 строк в час.

    А для таких вещей 200-350 строк в час.

    А это зря. Неудобно и в конечном итоге бесполезное усложнение.

    Я бы понял требование о разном числе строк в файле1, файле2, файле3 - такое может быть.
    А лишний ввод - это геморрой, который никому не нужен.

    Идеальное приложение должно иметь всего 1 кнопку :) "Сделай мне хорошо" :)
    А еще лучше без кнопки совсем :)