Portál AbcLinuxu, 6. května 2025 09:27

Dotaz: Program, který vytvoří kombinaci všech řádků souboru

8.5.2011 12:14 komb
Program, který vytvoří kombinaci všech řádků souboru
Přečteno: 371×
Odpovědět | Admin
Ahoj. Testuji svou aplikaci, která čte textový soubor. Potřeboval bych nějaký program či skript, který by vytvořil soubory se všemi kombinacemi (pořadími) všech řádků toho původního souboru. Je mi celkem jedno jestli takový program vytvoří spoustu malých souborů, nebo jestli přehází originál a po každém přeházení zavolá můj program. Nevíte někdo o takovém prográmku, jsem líný si ho sám psát :-)

Řešení dotazu:


Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

8.5.2011 12:33 vlastagf | skóre: 11
Rozbalit Rozbalit vše Re: Program, který vytvoří kombinaci všech řádků souboru
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tak tohle bych rozhodne resil v pameti a ne pres disk.
8.5.2011 12:36 NN
Rozbalit Rozbalit vše Re: Program, který vytvoří kombinaci všech řádků souboru
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pokud by ti stacila nahodna kombinace pak:
sort -R foo
NN
wamba avatar 8.5.2011 15:01 wamba | skóre: 38 | blog: wamba
Rozbalit Rozbalit vše Re: Program, který vytvoří kombinaci všech řádků souboru
Odpovědět | | Sbalit | Link | Blokovat | Admin
tento perl skript
vytvoří spoustu malých souborů
use warnings;
use strict;
use autodie;
use 5.010;

use Algorithm::Permute;

my $nazev_souboru = $ARGV[0];
my @soubor        = <>;
my $i             = 1;

Algorithm::Permute::permute {

    open my $fh, '>', "$nazev_souboru$i";

    my $ss = join q{}, @soubor;
    print {$fh} $ss;

    close $fh;
    $i++;
}
@soubor;

__END__
This would have been so hard to fix when you don't know that there is in fact an easy fix.
8.5.2011 19:56 komb
Rozbalit Rozbalit vše Re: Program, který vytvoří kombinaci všech řádků souboru
Díky moc. Je to až neuvěřitelně rychlý.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.