нужно сделать портал!

mendel
На сайте с 06.03.2008
Offline
232
#111
Aisamiery:
Да как бы там вообще не шла речь о языке в ТЗ, а хороший спец, как правило этот тот спец, который выбирает инструмент под задачу, а не наоборот)))

Так задачи то и не было). Задача то она комплексная. Контекста то нет.

Лет семь назад писал одно сервисное приложение. Буквально килобайт 10-20 всего.

Семь языков программирования (не считая html/css которые были там отдельно).

До сих пор работает. Но это извращение в стиле вот этого вот "чарта".

Код неподдерживаемый совершенно. Отчасти потому что половину языков я уже и не помню.

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

В общем считаю что мой код на 319 символов


if(!file_exists($filename) || !is_readable($filename)) throw new Exception('Bad file or filename');
$handler = fopen($filename, 'r');
if($handler == FALSE) throw new Exception('Bad file or filename');
//
while(!feof($handler)) {
$line = fgets($handler);
echo 'http://' . $line . PHP_EOL;
}
fclose($handler);

"круче" милторговского на 19 символов

***смайлик_с_языком***

---------- Добавлено 13.02.2017 в 14:48 ----------

Aisamiery:
Если у вас доменов много, то скорее всего они лежат в файле

Покажите плиз весь Ваш код. а то "доменов много" в моем понимании это например файл-зоны дотком. Если не ошибаюсь там гига 3-4 файлик, если только домены, без служебной инфы. Плохо помню перл, но мне кажется вы задохнетесь по оперативке.

miltorg:
Но оно не даёт пустого http:// внизу

Вот это вот вообще классика психиатрии. Какое практическое применение этого бага вашей кривой реализации?

Шутку любишь над Фомой, так люби и над собой. (с) народ. Бесплатные списки читабельных(!) свободных доменов (http://burzhu.net/showthread.php?t=2976) (5L.com) Сайты, All inclusive. 5* (/ru/forum/962215)
S
На сайте с 17.08.2008
Offline
114
#112

Бесплатное решение для создания каталога предприятий для WP


Как создать каталог компаний на WordPress не будучи программистом
wordpresseasy.ru/build/sozdanie-kataloga-organizatsij/
[Удален]
#113
mendel:

...
Код неподдерживаемый совершенно. Отчасти потому что половину языков я уже и не помню.
...

Вот это вот вообще классика психиатрии. Какое практическое применение этого бага вашей кривой реализации?

Это не баг. Это задание. Олимпиада. Именно это и наводит на мысль про регулярные выражения и подмену символа перевода строки. Но похоже, что регулярные выражения вы "Отчасти ... я уже и не помню."

S
На сайте с 30.09.2016
Offline
469
#114

Можете не спорить. Победил я. Зашёл в Excel, ввёл в колонку A строку http://, в колонку B список доменов, в колонку C - формулу "=CONCATENATE(A1;B1)" (19 символов). Нажал Ctrl+Enter - и вуаля! Список готов! 😂

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
Aisamiery
На сайте с 12.04.2015
Offline
319
#115
mendel:

Покажите плиз весь Ваш код. а то "доменов много" в моем понимании это например файл-зоны дотком. Если не ошибаюсь там гига 3-4 файлик, если только домены, без служебной инфы. Плохо помню перл, но мне кажется вы задохнетесь по оперативке.

Это весь код))) Я оперирую словами постановщика :) Я понятия не имею, сколько это много, но скорее всего да, cat захлебнется подачей, но я уже сказал, для файла зоны .com я воспользуюсь sed, он поточный и правила применяет к каждой строке, то есть как бы пофигу какого размера файлик :) Ну а читать построчно может и perl, задачи читать с файла небыло, по этому читаю с STDIN а как туда залетают данные мне пофигу, файл это, или вэб сервер или php скрипт, вообще до фене))

Разработка проектов на Symfony, Laravel, 1C-Bitrix, UMI.CMS, OctoberCMS
mendel
На сайте с 06.03.2008
Offline
232
#116
miltorg:
Это не баг. Это задание. Олимпиада. Именно это и наводит на мысль про регулярные выражения и подмену символа перевода строки. Но похоже, что регулярные выражения вы "Отчасти ... я уже и не помню."

Регулярками задача не решается поскольку не удовлетворяет требованию "много".

Весь файл в памятьи - признак плохого тона.

Ну и регулярки пусть и незначительно (в пару раз, но в таких задачах это не важно) но жрут больше проц.

Опять таки поддерживаемость регулярок оставляет желать лучшего.

В 2007-ом я писал istio.com на регулярках. Потом в 2014-ом по договоренности с новым владельцем сервиса я делал небольшой рефакторинг, перевел код на yii1, удалил нерабочие сервисы и т.п. Пока сам свои регулярки расшифровал - пару раз психанул. Это помимо того что реально они нужны были в основном только для того функционала который я в текущей версии выкинул. Полгода назад над тем кодом уже другая команда работала, не будем уточнять историю. Я пока вспомнил что там и как когда меня спрашивали - плевался. Минут двадцать ушло разобраться в собственном коде. Вроде и десятилетний код, но я ведь его колупал три года назад. В общем регулярки это мощный инструмент, но по возможности его лучше не использовать (без фанатизма конечно, пару дней назад себе в фреймворке добавлял контрол для выбора иконок fa-* так проще было css одной регуляркой разобрать чем копипастить список иконок по кусочкам. Ну или всякие парсеры лучше делать на регулярках чем на конечных автоматах, но это уже частные случаи).

D
На сайте с 31.01.2017
Offline
15
#117
miltorg:
s/\n/\nhttp:\/\//g;# 19 символов
print;

Но ведь решение логически неверно.

Берете строку:

строка\n

и заменяете на:

строка\nhttp://

Вы это серьезно? Где в описании задачи сказано что строка ВСЕГДА начинается с переноса?

Убираем первый перенос - с таким как правило мы везде и сталкиваемся. И ваше решение выдаст неверный результат.

miltorg:
Что-то пока никто не завалил работой.

Да потому и не завалили. Как уже выше сказали, никому не интересны однострочники из олимпиад.

Логика должна подстраиваться под входящие данные, проверка ошибок и т.д. А не данные под логику.

mendel
На сайте с 06.03.2008
Offline
232
#118
Aisamiery:
Это весь код)))

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

Аккумуляторы и прочее - попахивает старым добрым ассемблером.

---------- Добавлено 13.02.2017 в 15:57 ----------

demiux:
Убираем первый перенос - с таким как правило мы везде и сталкиваемся. И ваше решение выдаст неверный результат.

Не только первый, но и последний аналогично. Мало того, он еще имел наглость сделать по этому поводу замечание(!) Aisamiery мол у того "не по ТЗ" и в конце нет пустой строки с протоколом.)))

Aisamiery
На сайте с 12.04.2015
Offline
319
#119
miltorg:
Но оно не даёт пустого http:// внизу

Дает, надо передать последнюю пустую строку, ну или тупо напечатать )))

А вот ваше не дает, как заметили выше, вначале потока, как правило, не бывает переноса строки, тем самым первый домен будет всегда без http

[Удален]
#120

Резюмирую. Никто не привёл, даже в качестве примера, моё решение на регулярках - значит вы их не используете. Это плохо. Очень плохо. Так-как задание было именно про регулярки - на что намекал лишний http.

Ближе всех к истине был Aisamiery.

Остальные не столько решали задачу, а сколько искали ошибки в задании. Если бы на моём месте был клиент - он бы был разочарован.

Aisamiery ставлю зачёт с натяжкой. Остальные не обладают достаточными знаниями в этой области

---------- Добавлено 13.02.2017 в 16:58 ----------

Aisamiery:
Дает, надо передать последнюю пустую строку, ну или тупо напечатать )))

А вот ваше не дает, как заметили выше, вначале потока, как правило, не бывает переноса строки, тем самым первый домен будет всегда без http

Так вам понравится?:

s/^|\n/\nhttp:\/\//g;

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

#==========================================

#!/usr/bin/perl

$_=q~karta-kryma.ru

nomer-aski.ru

icq-besplatno.ru

besplatnyj.ru

raskrutka-sajtov.ru

karty-oblasti.ru

vid-ulic.ru

potrebitel-ne-prav.ru

juvelirnyj.ru

radio-onlajn.ru

tury-po-evrope.ru

televidenie-onlajn.ru

but-s.ru

avtomobil-prodazha.ru

vyrazhenija.ru

slushat-radio.ru

~;

s/^|\n/\nhttp:\/\//g;

print;

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий