Объявление

Односложные и бессмысленные темы, не несущие полезную нагрузку или не содержащие в себе вопрос, будут удаляться!

#26 16-02-11 13:59:55

iUser
Забанен
Откуда: Apple Store
Здесь с 16-02-11
Сообщений: 58
Сайт
MacintoshSafari 3.2

Re: Вопрос на сообразительность

Keeper пишет:
#!/usr/bin/perl -w
print reverse <STDIN>;

Так лучше.

#!/usr/bin/perl 
print reverse <>;

Но согласитесь, sort -r filename все-таки проще и нагляднее  big_smile

Вне форума

#27 16-02-11 14:03:05

Svart Testare
Великий Человек
Откуда: Вселенной
Здесь с 05-10-09
Сообщений: 5,481
Сайт
Windows 7Internet Explorer 9.0

Re: Вопрос на сообразительность

iUser пишет:

Но согласитесь, sort -r filename все-таки проще и нагляднее

Только он делает совсем не то, что требовалось топикстартером  lol

Допустим, есть простой тестовый файл с 5 строками:

one
two
three
four
five

Так вот, sort -r имя_файла просто выведет содержимое файла отсортированное по алфавиту, но в обратном порядке:

two
three
one
four
five

А нужно:

five
four
three
two
one

«Коллективная глупость — индивидуальный признак толпы» © SLOR, 28 апреля 2011 г.
«Где пьёт толпа, все родники отравлены» © Фридрих Ницше.
Requiescat in pace, SLOR! © Уход Hedge 24 мая 2011 г.

Вне форума

#28 16-02-11 14:41:32

petrun
Участник
Здесь с 22-10-09
Сообщений: 3,172
LinuxFirefox 4.0

Re: Вопрос на сообразительность

iUser
tac тогда уж.


Анархия-мама сынов своих любит

Вне форума

#29 16-02-11 14:48:31

Apollo 11
Тролль № 1 (по рейтингу Svart'а Testare)
Откуда: Клоаки
Здесь с 01-06-10
Сообщений: 1,679
Сайт
LinuxFirefox 3.6

Re: Вопрос на сообразительность

tac имя_файла

smile


"Я как переезжал с ХР на Вин 7? Просто скопировал папку Program Files, а потом по мере необходимости возвращал софт оттуда. 100% уверенность, что не будет глюков." © Sergey2408
"Я хочу обвешать свой Winamp плагинами, но не хочу портить основную сборку.... Поэтому я просто ставлю ещё одну копию в папку /Program Files (x86)/Winamp1. Версия проги одна и та же" © Sergey2408

Вне форума

#30 16-02-11 15:16:28

iUser
Забанен
Откуда: Apple Store
Здесь с 16-02-11
Сообщений: 58
Сайт
MacintoshSafari 3.2

Re: Вопрос на сообразительность

Да, действительно sort не подходит. Значит tac filename наиболее краткий вариант. Правда на маке его нет "из коробки".

Вне форума

#31 16-02-11 15:28:41

DonDublon3
Участник
Откуда: Уфа
Здесь с 06-05-10
Сообщений: 676
Windows XPOpera 11.01

Re: Вопрос на сообразительность

F#:

open System.IO
open System

(Seq.iter (fun (x:string) -> Console.WriteLine(x) )) (List.rev (Array.toList (File.ReadAllLines("D:\wellsAV.xml"))))

Где в кавычках имя файла.
Размер бинарника 5120 байт.
Вообще я не спец по F#, можно еще короче сделать, но это надо изучать побольше.

Добавлено спустя 12 мин 55 с:
Boo:

import System
import System.IO

f = File.ReadAllLines("D:\\wellsAV.xml")
Array.Reverse(f)
for line in f:
  print line

Строчек много, зато коротко и ясно

Отредактировано DonDublon3 (16-02-11 15:34:07)


"Фу бля, крохобор вонючий" (с) Svart Testare

Вне форума

#32 16-02-11 15:57:44

iUser
Забанен
Откуда: Apple Store
Здесь с 16-02-11
Сообщений: 58
Сайт
MacintoshSafari 3.2

Re: Вопрос на сообразительность

Исправляя ляп с sort, привожу пример на Python (проверено на Python 2.5, macosx 10.5):

import sys; lines = open(sys.argv[1],'r').readlines(); lines.reverse()
for line in lines: print line,

Вне форума

#33 16-02-11 16:30:47

Lord_Evil
Master Of Darkness
Откуда: Deepest Pits Of Hell
Здесь с 06-06-10
Сообщений: 1,862
Сайт
LinuxOpera 11.00

Re: Вопрос на сообразительность

Keeper, одна куйня smile
Я не уверен, но есть подозрения, что как-то можно еще короче сделать..

Добавлено спустя 04 мин 27 с:
iUser, Ага! Разделители!)) Не пойдет так!)
Svart Testare, О.о я и не думал, что ты столько знаешь в этой области))) cool

Добавлено спустя 05 мин 53 с:
Да уж, tac действительно решает вопрос на пятерку)


Интеллигент боится лишь одного — касаться темы зла и его корней, потому что справедливо полагает, что здесь его могут сразу выeбaть телеграфным столбом.©

Вне форума

#34 16-02-11 16:54:27

DonDublon3
Участник
Откуда: Уфа
Здесь с 06-05-10
Сообщений: 676
Windows XPOpera 11.01

Re: Вопрос на сообразительность

Не совсем чистый, зато реально короткий и понятный вариант на PHP:

<? print_r ( array_reverse(file("d:\\wellsAV.xml"))); ?>

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


"Фу бля, крохобор вонючий" (с) Svart Testare

Вне форума

#35 16-02-11 17:07:42

Svart Testare
Великий Человек
Откуда: Вселенной
Здесь с 05-10-09
Сообщений: 5,481
Сайт
Windows 7Internet Explorer 9.0

Re: Вопрос на сообразительность

Lord_Evil пишет:

О.о я и не думал, что ты столько знаешь в этой области)))

Это шо, мегазнания какие-то? wink


«Коллективная глупость — индивидуальный признак толпы» © SLOR, 28 апреля 2011 г.
«Где пьёт толпа, все родники отравлены» © Фридрих Ницше.
Requiescat in pace, SLOR! © Уход Hedge 24 мая 2011 г.

Вне форума

#36 16-02-11 17:12:13

Babusha
Нехристь
Здесь с 12-03-10
Сообщений: 2,221
LinuxChrome 9.0

Re: Вопрос на сообразительность

DonDublon3,

Убогое ООП в PHP меня бесит >_<
Такие лучше бы было приятнее если было бы вот так:

<?
print_r ( file("d:\\wellsAV.xml").array_reverse() )
?>

Кстати, да, в PHP скобочки обязательны?


Удовлетворен GNU/Linux (с) Linups_Troolvalds
13-значный пароль, состоящий из одних цифр, ломается за полчаса (с) Rector. Авторитетный Хакер у себя в классе
Я тебя просто отсюда выпилю.  (с) Рехтур. Взламывает анусы по ойпи.

Вне форума

#37 16-02-11 17:15:29

Lord_Evil
Master Of Darkness
Откуда: Deepest Pits Of Hell
Здесь с 06-06-10
Сообщений: 1,862
Сайт
LinuxOpera 11.00

Re: Вопрос на сообразительность

Svart Testare, ну вообще не думал, что ты к этой области хоть как-то относишься smile


Интеллигент боится лишь одного — касаться темы зла и его корней, потому что справедливо полагает, что здесь его могут сразу выeбaть телеграфным столбом.©

Вне форума

#38 16-02-11 17:16:02

Babusha
Нехристь
Здесь с 12-03-10
Сообщений: 2,221
LinuxChrome 9.0

Re: Вопрос на сообразительность

iUser,

>>lines = open(sys.argv[1],'r').readlines(); lines.reverse()
Зачем так извращения?
Нелья было короче как нибуть?

for line in open(sys.argv[1],'r').readlines().reverse():
       print line

Обязательные "()" в питоне так бесят, зачем они нужны?


Удовлетворен GNU/Linux (с) Linups_Troolvalds
13-значный пароль, состоящий из одних цифр, ломается за полчаса (с) Rector. Авторитетный Хакер у себя в классе
Я тебя просто отсюда выпилю.  (с) Рехтур. Взламывает анусы по ойпи.

Вне форума

#39 16-02-11 17:18:49

DonDublon3
Участник
Откуда: Уфа
Здесь с 06-05-10
Сообщений: 676
Windows XPOpera 11.01

Re: Вопрос на сообразительность

Babusha пишет:

Обязательные "()" в питоне так бесят, зачем они нужны?

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


"Фу бля, крохобор вонючий" (с) Svart Testare

Вне форума

#40 16-02-11 17:27:49

iUser
Забанен
Откуда: Apple Store
Здесь с 16-02-11
Сообщений: 58
Сайт
MacintoshSafari 3.2

Re: Вопрос на сообразительность

Babusha пишет:

iUser,

>>lines = open(sys.argv[1],'r').readlines(); lines.reverse()
Зачем так извращения?
Нелья было короче как нибуть?

for line in open(sys.argv[1],'r').readlines().reverse():
       print line

На бумаге красиво, но в жизни ты отхватишь эксепшин:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'NoneType' object is not iterable
Babusha пишет:

Обязательные "()" в питоне так бесят, зачем они нужны?

Это тривиальный вызов функции/метода. Без скобок это будет обращение к переменной класса/пакаджа.

Вне форума

#41 16-02-11 17:38:29

Майор Очевидность
борец со справедливостью
Здесь с 28-10-09
Сообщений: 1,371
LinuxChrome 9.0

Re: Вопрос на сообразительность

так, я снова здесь со своей абракадаброй smile

как оказалось, LOAD-сегмент (по уму, содержащий только заголовок) у ELF-файла не может без дополнительных манипуляций выравниваться на более чем одну страницу памяти, т.е. 4096 байт.
это означает, что при чтении файла одним куском, максимальный его размер ограничивается сверху (4096 – размер_бинарника) байтами.
пока что разрешите остановиться на этом.

BITS 32;
ORG 00001000h;    <-- далее, "$$"

@ehdr:             ; Elf32_Ehdr
  DB 7Fh, "ELF";       e_ident
  DB 01h, 01h, 01h, 00h;

@main:
  STD;
  MOV EDI, @data;
  JMP @code;

  DW 02h;              e_type
  DW 03h;              e_machine
  DD 01h;              e_version
  DD @main;            e_entry
  DD @phdr - $$;       e_phoff
  DD 00h;              e_shoff
  DD 00h;              e_flags
  DW @ehsz;            e_ehsize
  DW @phsz;            e_phentsize

@phdr:                             ; Elf32_Phdr
  DD 01h;              e_phnum         p_type
        ;              e_shentsize
  DD 00h;              e_shnum         p_offset
        ;              e_shstrndx
  @ehsz equ $ - @ehdr;

  DD $$;                               p_vaddr
  DD $$;                               p_paddr
  DD @fisz + @dasz;                    p_filesz
  DD @fisz + @dasz;                    p_memsz
  DD 07h;                              p_flags
  DD 01h;                              p_align

  @phsz equ $ - @phdr;

@code:
  MOV EBX, @name;
  XOR ECX, ECX;
  MOV EDX, ECX;
  LEA EAX, [ECX+5];
  INT 80h;        <-- SYS_OPEN


  MOV EBX, EAX;
  MOV DX, @dasz;
  LEA EAX, [ECX+3];
  MOV ECX, EDI;
  INT 80h;        <-- SYS_READ

  XOR EBX, EBX;
  DEC EAX;
  ADD EDI, EAX;
  LEA ECX, [EDI+2];
  LEA EDX, [EDI-1];

  @loop:
    MOV AL, 0Ah;
    REPNE SCASB;

    SUB EDX, EDI;
    LEA EAX, [EBX+4];
    INT 80h;      <-- SYS_WRITE
    MOV EDX, EDI;

  CMP DI, @data;
  JGE @loop;


  LEA EAX, [EBX+1];
  INT 80h;        <-- SYS_EXIT

; <-- здесь будут константы:
  @dasz equ 1000h - @fisz;
  @name: DB "filename.txt", 00h, 0Ah;
; <-- константы закончились

@data:
  @fisz equ $ - $$;

компилируется так:

#!/bin/bash
rm ELF
yasm -f bin -o ELF ELF.asm
chmod a+x ELF

размер в собранном виде — 153 байта.
следовательно, максимальный размер правильно обрабатываемого файла — 3943 байта.

что до скорости, то данная программа выигрывает у tac примерно 10 секунд на 20000 прогонов, что примерно равняется 0,5 миллисекунды при единичном запуске smile
в общем-то, этот результат объясним: и там и там, основную нагрузку берёт на себя ядро, а сами программы являются просто «запускателями» ядерных функций.


all your post are belong to us.

Вне форума

#42 16-02-11 17:46:00

DonDublon3
Участник
Откуда: Уфа
Здесь с 06-05-10
Сообщений: 676
Windows XPOpera 11.01

Re: Вопрос на сообразительность

Майор Очевидность пишет:

так, я снова здесь со своей абракадаброй

Снимаю шапку! Всегда восхищался людьми, умеющими программировать на асме.

Добавлено спустя 02 мин 26 с:

Babusha пишет:

Убогое ООП в PHP меня бесит

Терпи!  big_smile


"Фу бля, крохобор вонючий" (с) Svart Testare

Вне форума

#43 16-02-11 17:56:23

Lord_Evil
Master Of Darkness
Откуда: Deepest Pits Of Hell
Здесь с 06-06-10
Сообщений: 1,862
Сайт
LinuxOpera 11.00

Re: Вопрос на сообразительность

DonDublon3, Майор не просто кодит, он такие виражи закладывает! Ппц просто!)))

Babusha пишет:

Обязательные "()" в питоне так бесят

Што-то ты какой-то не спокойный lol


Интеллигент боится лишь одного — касаться темы зла и его корней, потому что справедливо полагает, что здесь его могут сразу выeбaть телеграфным столбом.©

Вне форума

#44 16-02-11 18:02:06

DonDublon3
Участник
Откуда: Уфа
Здесь с 06-05-10
Сообщений: 676
Windows XPOpera 11.01

Re: Вопрос на сообразительность

Babusha пишет:

Обязательные "()" в питоне

Да, кстати говоря - это не специфика Питона, в C# и других дотнетовских языках (может, даже во всех) то же самое. Со скобками и без - разные вещи.


"Фу бля, крохобор вонючий" (с) Svart Testare

Вне форума

Сейчас в этой теме пользователей: 0, гостей: 1
[Bot] ClaudeBot

Подвал форума

Под управлением FluxBB
Модифицировал Visman

[ Сгенерировано за 0.009 сек, 7 запросов выполнено - Использовано памяти: 1.76 Мбайт (Пик: 1.84 Мбайт) ]