>
<style type="text/css">
table {empty-cells:show;border-collapse:collapse;border-spacing:0}
td {padding:0;border:none;width:1px;height:1px}
col {width:1px}
</style>
</HEAD>
<BODY>
<TABLE>
END
while(<>)
{
$_=~tr [uvwxyz] [ABCDEF];
$_=~s#([a-z0-9]{6})[\s\n]#<TD BGCOLOR=\#$1> </TD>#ig;
$_=~s#X#</TR><TR>#g;
print $_;
}
print "</TABLE></BODY></HTML>";
No rek bych ze minimalne tri.
Mam takovy dojem ze kdyz nekdo delal z vysledku ty dva soubory v zipu, ze mu nejkde par pixelu uklouzlo ... vetsinou ze zacatku radku a zrovna v usecich, kde nejdou moc dobre odhadnout .... no doufam ze se tam casem objevi opraveny zip ....
Ja uz jim na to dlabu... vyzkousel jsem vsechny mozne zpusoby prokladani a furt je z toho jen takova mazanina. Pokud by slo o brejlouna, cert to pal, ale dokud tu chybu neopravi, tak to nikdy neslozim tak, aby napisy sedely pixel na pixelu. Takhle mi to tam lita +- 5 pixelu a veskere pismo vypada jak rosypana rejze.
IMHO by za tohle byla dobra pomsta, kdyby jim vsichni lidi pak poslali vysledky nejak zakryptovane (na nejake takovehle urovni pochopitelne, ale co kus, to original).
Kdyz by to udelal jen nekdo, tak se na to vykaslou, ale kdyz by vysledky zakryptili vsichni, museli by to rozlouskat, aby mohli vyhlasit viteze. Sice budou louskat jen prvni tri, ale tak dlouho, dokud nenajdou prvni tri spravne... coz by se dalo take zaridit, aby se aspon tyden nenudili, ze :-)
rcpt to: gep Ale to jsem delal, nicmene vysledek stoji za kulovy. Kdyz se o tom teda bavime, vytahal jsem veci z .bash_history, co jsem vlastne provadel, sesypal to do skriptu, takze to muzes zkusit, uvidis, ze vysledek stoji za prd, napisy jsou rozjebany.
Ja sem to puvodne jen pro overeni napsal tak, ze mi to pres font color obarvovalo znak "#". Kdyz jsem videl, ze to asi fakt dela to, co chci, predelal jsem to tak, ze mi to kresli tabulku s jednopixelovyma okynkama, kterym to obarvuje pozadi.
Vystup se sype na stdout, takze nezapomen na naky >pokus.html. Napsal jsem tam par komentaru, aby to bylo krapet prehlednejsi.
------------------ cut here ----------------
#!/bin/bash
cat 1.txt |sed s/u/A/g |sed s/v/B/g |sed s/w/C/g |sed s/x/D/g |sed s/y/E/g |sed s/z/F/g |tr ' ' '\n' >1.fmt
cat 2.txt |sed s/u/A/g |sed s/v/B/g |sed s/w/C/g |sed s/x/D/g |sed s/y/E/g |sed s/z/F/g |tr ' ' '\n' >2.fmt
LINES1=`wc -l 1.fmt |awk '{print $1}'`
LINES2=`wc -l 2.fmt |awk '{print $1}'`
if (( $LINES1 > $LINES2 ));
then
MAX=$LINES1;
FILE1=1.fmt FILE2=2.fmt;
else
MAX=$LINES2;
FILE1=2.fmt; FILE2=1.fmt;
fi
# Nastavene poradi vychazi z predpokladu, ze vetsi soubor obsahuje vice radku,
#tudiz mensi by se mel vmezerovat do nej.
# Netvrdim, ze to tak je, ale zdalo se mi to logicke
while [ "$COUNT" != "$MAX" ]; do
let ++COUNT
head -$COUNT $FILE1 |tail -1 >>interlaced.dat
head -$COUNT $FILE2 |tail -1 >>interlaced.dat
done
echo "<html><head><body><style type=\"text/css\">"
echo "table {empty-cells:show;border-collapse:collapse;border-spacing:0}"
echo "td {padding:0;border:none;width:1px;height:1px}"
echo "col {width:1px}</style></head><body>"
echo "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">"
echo "<col width=\"1\">"
echo "<tbody>"
echo "<tr>"
# Kreslim tabulku s obarvenym backgroundem a polickama 1x1 pixel
cat interlaced.dat |while read; do
let ++NO
if [ "$REPLY" != "X" ];
then
echo "<td bgcolor=\"#$REPLY\"></td>"
else
# Dopocitavaci bastl, co dopocita, obarvuje na cerveno
if (( $NO < 527 ));
then
while (( $NO < 527 )); do
echo "
Ano chyb tam je vic (asi sest radek se rozpadlo). Moje reseni:
1. Ze dvou souboru udelam jeden se spravnymi barevnymi hodnotami
perl -e 'open D1, "<$ARGV[0]" || die; open D2, "<$ARGV[1]" || die; $k=
2. Vytvorim 'HTML obrazek' pomoci nasledujiciho kodu. S nejakou optimalizaci jsem se neobtezoval ;-)
#!/usr/bin/perl
my @radek = ();
my $cell = 1;
open (IN1, '<root4.hex') || die "failed to open root4.hex";
print < @_) {
push @_, @p[scalar(@_)..527-1];
if ($l==121) {
$_[448] = $_[447]; $_[450] = $_[449]; $_[452] = $_[453];
} elsif ($l==124) {
$_[454] = $_[453];
}
}
print "\t<tr>\n";
for my $i (0..527) {
print "\t\t<td bgcolor='#$_[$i]'></td>\n";
}
print "\t</tr>\n";
}
sub adj {
if (@_ < 527) {
my $p = 210;
$p = 2 if($l > 100);
my $i = $_[$p];
my @a = ();
push @a, $i for (scalar(@_)..526);
splice @_, $p, 0, @a;
} elsif(@_ > 527) {
my $i = $_[0];
my $b = 0;
my $c = 0;
my $d = 0;
my @a1;
for $c (0..$#_) {
if ($_[$c] eq $i && $_[$c+1] eq $i && $_[$c+2] eq $i && $_[$c+3] eq $i && $_[$c+4] eq $i) {
if($b) {
$d = $c;
last;
}
} else {
$b = 1;
}
}
prn(splice @_, 0, $d);
$l++;
adj(@_);
return;
}
@p = @_;
prn(@_);
}
while (<IN1>) {
chomp;
next if(!length $_);
for my $item (split /\s+/) {
next if(!length $_);
if ($item eq 'X') {
$l ++;
adj(@radek);
@radek = ();
} else {
next if(!length $item);
push @radek, $item;
}
}
}
print <<"EOFOOT";
>
</table>
</body>
</html>
EOFOOT
close IN1;
Hasismarja, to ma phpko v kazde verzi jine commandlinove parametry? To je teda solidni prasecina, inu neda se zaprit, ze je to potomek perlu :-) Jinak dik za radu a z toho tvyho reseni leze fakt hezkej obrazek, o hodne lepsi, nezli se povedl me, takovy vysledek bych skutecne necekal...
druha cast
php5 -d error_reporting=0 -r 'foreach(preg_split("/ +/", strtr(preg_replace("/\n+/", " ", implode("", array_map(create_function("\$a,\$b", "return \$a.\$b;"), file("2.txt"), file("1.txt")))), "uvwxyz", "FEDCBA")) as $c) echo ($i==0 ? "<tr>\n" : "").($c=="X" ? ($i==0 ? "" : (str_repeat("<td bgcolor=#11ff00>",527-$i+($i=0)))) : ((strlen($c)+(++$i==527? $i=0 : 0 )) ? "<td bgcolor=#$c>" : ""));' > soutez.html.part
ok, aktualizovane vydani:
$ echo -ne '\000\000\002\000\000\000\000\000\000\000\000\000\017\002\255\000\040\050' > soutez-4.tga
$ php5 -d error_reporting=0 -r 'foreach(preg_split("/ +/", strtr(preg_replace("/\n+/", " ", implode("", array_map(create_function("\$a, \$b", "return \$a.\$b;"), file("2.txt"), file("1.txt")))), "uvwxyz", "FEDCBA")) as $c) echo $c=="X" ? ($i ? (str_repeat(pack("V", 0), 527-$i+($i=0))) : "") : (strlen($c)*(($i=++$i%527)+1) ? pack("VXC", intval($c, 16), 0xff) : "");' >> soutez-4.tga
Uz me to vychazi snad vsechno, ale dost uprav jsem pak musel udelat v gimpu rucne, treba prechody mezi dilky byly vetsinou rozmazle tak jsem to doupravoval rucne. Ty barvy jsem taky pak donastavoval podle jinych dilku protoze 3. dil jsem mel cely prehazeny (modra za oranzovou apod..)
No, tak copak ma takovy obdelnik za parametry? Rekl bych, ze dva. Sirku a delku. Jeden z techto parametru je konstantni, tudiz ho pravdepodobne muzeme zanedbat, tudiz klicem asi bude ten druhy, nekonstantni parametr, ne? Nicmene myslis, ze ma cenu pokracovat, kdyz potrebujes hint na tu trivialnejsi cast ulohy? Chapu, ze te to muze bavit, ale tato cast ulohy byla fakt trivialni. Jak jsi resil predesle casti? Me trebas nastvala cast minula, kde kdyby se Johanka neprozradila v diskuzi (a ja ji neznam, takze jsem vubec netusil kdo na te fotce je), tak s tim, jakou rychlosti jsem zjistil, ze jsem schopen hesla louskat bych byl ted tak u petimistnych hesel a za tri nedele mozna u kyzeneho vysledku...
Jo... ja si napsal soubor formatu <pocet pixelu> <pismeno> a potom jsem to desifroval pomoci dekryptovaci procedury sort |awk '{print $2}'; tr -d '\n'; echo. Byla tam jedna chyba v miste, kde mi vysly stejne siroke obdelnicky (vyslo mi .zzip), ale to jsem take mohl mit blbe zmerene. Jen jsem prohodil tecku se z a URL byla OK