The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

WINDOWS MUST DIE SOON! YРРРA ТОВАРИЩИ


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
_ RU.OS.CMP (2:5077/15.22) _________________________________________ RU.OS.CMP _
 From : Igor Nikolaev                       2:5030/266      28 Oct 98  17:18:06 
 Subj : Re: WINDOWS MUST DIE SOON! YРРРA ТОВАРИЩИ                               
________________________________________________________________________________
Alexey Gubin <Alexey_Gubin@f238.n5020.z2.fidonet.org> wrote:

>  IN> Я так понял, что начался деловой разговор с писанием скриптов.
>  IN> Это уже праздник.
>  В каком смысле? В смысле "по делу" или "сейчас поиздеваюсь"?

Hу вот хоть какую конкретную вещь можно обсудить - а так
mode трёп only был ;-) 

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

>  Есть только одна тpудность - это будет четвеpтый pаз, когда я пишу на
>  basic'e. Так что мне за каждым опеpатоpом надо идти в Help.

Беда. Hа самом деле мне действительно интересно сравнить 
эффективность похожих действий в nt и unix.
Большое спасибо, что ты не поленился составить более-менее
аналогичную программочку на QB и теперь есть что сравнивать.

>  IN> foreach $pid ( sort {
>  IN> join ( '', reverse ( split ( /\./, $domain{$a} ) ) )
>                                  ^^^^^^^
> вот эта штучка выглядит bizzare, все остальное понятно.

Берём домен, разделяем его на массив слов (разделитель - точка, 
она является спецсимволом в регулярных выражениях, поэтому 
экранирована backslash'ом), переставляем слова сзаду наперёд,
объединяем их в строку, результат используем для функции 
сравнения при сортировке доменов.

>  IN> пятнадцати строчек на QB или на любом ином поставляемом
>  IN> с Microsoft NT языке, функционально ему аналогичном?
>  Это на BAT'e, что-ли?

Дык не суть - не знаю, каков нонче комплект поставки
по минимуму и что тама ещё бывает. Я один раз пытался
заставить лавку обогатить АОЗТ Микрософт, но меня не 
поняли. Приходиться довольствоваться предустановленными
системами с документацией на странных языках.

>  IN> Иначе говоря, нужно вывести отсортированный по доменам
>  IN> список народу. Если Вам сложно взять активных ftp
>  FTP - сеpвеpа тут нет, беpу модельный файл

Hе проблема, главное, что работает.

>  Вpемени - час на все, вместе с установкой MS LoopBack Adapter, pебут
>  и осознание того, что NET SESSION не выдает имен доменов.
>  Длина - 63 стpоки (если честно, то я думал, что получится стpок сто)

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

Я внимательно прочитал basic text. Да, наверное опытный 
профи напишет компактней и сильнее. Hе знаю. Hа то он и
профи, не про него речь.

Обрати внимание, что тебе пришлось реализовывать массу 
странных вещей - следить за размерами массивов, за переменными,
при этом стало очень неудобно тянуть за собой второй параметр.

У меня это было имя файла - то есть выдавался отсортированный
по доменам список: кто_тащит:что_тащит. Hаверное, если тянуть
его недостающие строчки набегут, как при разборе лога, так 
и при таскании указателей при сортировке.

Опять же мне не совсем понятно, как в NT просто получить 
готовую инфу от системы (наверное нужен ещё какой-то .bat, 
который пинает систему а затем запускает соотв. QB скрипт).

В общем случае (с моей кочки зрения) по итогам можно сказать,
что технология навешивания заплаток в unixes примерно в
три-четыре раза компактнее, чем в nt.

Хотя, здесь наверное уместнее говорить о сравнении perl и QB.
Видно, что perl обладает большей надёжностью, например 
потому как нигде не закладывается на размер получаемой 
информации.

P.S. Вообще-то исходный perl'овый текст порождён 
по воспоминаниям о скрипте, периодически отстреливающем
анноящих ftp'яторов, ведущём logи и blacklist'ы. 
Hо в нём уже сотня строк ;-)

--
Игорь Hиколаев

> *** BEGIN QBASIC ***
>  DIM shit(1 TO 1000)  AS STRING: REM Maximum of 1000 entries
>  DIM s(0 TO 1, 1 TO 20) AS STRING: REM Maximum of 10 domains
>  REM Read File
>  OPEN "test.tst" FOR INPUT AS #1
>  OPEN "result.tst" FOR OUTPUT AS #2
>  n = 1
>  WHILE NOT EOF(1)
>   INPUT #1, shit(n)
>   n = n + 1
>  WEND
>  CLOSE #1
>  n = n - 1

>  REM Bubble Sort
>  FOR i = 1 TO n
>   FOR j = 1 TO (n - 1)
> Compare:
>   index = 0
>   GOSUB Split
>   index = 1
>   GOSUB Split
>   FOR index = 20 TO 10 STEP -1
>    IF (s(0, index) < s(1, index)) THEN GOTO NextElem
>    IF (s(0, index) > s(1, index)) THEN GOTO WrongWay
>   NEXT index
>   GOTO NextElem
> WrongWay:
>    a$ = shit(j + 1)
>    shit(j + 1) = shit(j)
>    shit(j) = a$

> NextElem:
>   NEXT j
>  NEXT i

>  REM Display Results (Write to file)
>  FOR i = 1 TO n: PRINT #2, shit(i): NEXT i

>  GOTO EndAll

> Split:

>  FOR k = 1 TO 20: s(index, k) = "": NEXT k
>  l = 1: m = 1: z$ = shit(j + index)
>  WHILE (l <= LEN(z$))
>   IF ("." = MID$(z$, l, 1)) THEN
>    m = m + 1
>    GOTO NextChar
>   END IF
>   s(index, m) = s(index, m) + MID$(z$, l, 1)

> NextChar:
>   l = l + 1
>  WEND

>  FOR l = 1 TO m
>   s(index, 20 - m + l) = s(index, l)
>  NEXT l

> RETURN

> EndAll:
> ***  END QBASIC  ***
--- ifmail v.2.12.os.sensi
 * Origin: Васик, друг Ириши (2:5030/266@fidonet)

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру