Ikona Vlascovo smetiště Ikona
Tak tady máte zdrojový kód. Můžete jej libovolně upravit, ale v rámci slušnosti by jste mohli někde nechat odkaz na mě, když jsem se s tím piplal :-)
Pokud nechcete zdroják, ale přímo spustitelný, poskočte dolů.

#include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX 1000 #define KMAX 50 typedef struct { char jmeno[20]; int skore; } polozka; int j=0, n=0; const char * kol[] = {"", "O", "A", "A", "A", "", "", "", "", ""}; int minus(polozka * x, polozka * y) { return y->skore - x->skore; } void KamSTim(polozka * kde, char * kanalek, char * jmeno, int skore) { int i; if (strcmp(kanalek, "***")==0) j++; else if (skore>0) { for (i=0; (i<n) && (strcmp(kde[i].jmeno, jmeno) != 0); i++); strcpy(kde[i].jmeno, jmeno); kde[i].skore+= skore; n = (n>i)?n:i+1; } } void TridAPis(polozka * co, FILE * soubor, char * text) { int i; fprintf(soubor, " <td><h3>%s %d KOL%s</h3><table class=\"tab_odsaz\">\n\n" " <tr><td><center><b>PODLE POAD</b></center><br />\n <table>\n",text, j, kol[j]); qsort(co, n, sizeof(polozka), (int(*)(const void*, const void*)) minus); for (i=0; i<n; i++) fprintf(soubor," <tr><td>%d. %s</td><td class=\"rt\">%d</td></tr>\n", i+1, co[i].jmeno, co[i].skore); fputs(" </table>\n\n </td><td><center><b>ABECEDN</b></center><br />\n<table>", soubor); qsort(co, n, sizeof(polozka), (int(*)(const void *, const void *)) strcmp); for (i=0; i<n; i++) fprintf(soubor," <tr><td>%s</td><td class=\"rt\">%d</td></tr>\n", co[i].jmeno, co[i].skore); fputs("</table>\n\n</td></tr></table>\n\n </td>", soubor); } int main(int argc, char ** argv) { FILE * in, * out; if (in = fopen("ankety.txt", "r")) { polozka lide[MAX]; char jmeno[20], kanal[KMAX], kanalek[KMAX]; int i,x,skore; if ((argc > 1) && (sscanf(argv[1], "%d", x) != 0)); else x = 5; for (i=0; i<MAX; i++) { lide[i].skore = 0; } while ((fgets(kanal, KMAX, in)!=NULL ) && (j<x)) { sscanf(kanal, "%s %s - %d", &kanalek, &jmeno, &skore); KamSTim(lide,kanalek,jmeno,skore); } out = fopen("hof.htm", "w"); fputs("<table><tr>", out); TridAPis(lide,out,((i>1)&&(i<4))?"BODY ZA POSLEDN":"BODY ZA POSLEDNCH"); while (fgets(kanal, KMAX, in)!=NULL ) { sscanf(kanal, "%s %s - %d", &kanalek, &jmeno, &skore); KamSTim(lide,kanalek,jmeno,skore); } fclose(in); TridAPis(lide,out,"BODY CELKEM - ZA"); fputs("</tr><tr><td class=\"center\" colspan=2>\n\n<a href=\"" "http://vlasec.wz.cz/index.php?name=programy/ankety.php\" class=\"center\">" "Zdrojov kd potadla i spustitelnou verzi najdete zde.</a></td></tr></table>", out); fclose(out); } return 0; }

Lze stáhnout zde.

Druhá možnost je, že si nahrajete rovnou spustitelný soubor. Toto doporučuji obzvlášť těm, kteří neprogramují.

Program využívá čtení ze souboru anketa.txt, takže si vstupní soubor takto pojmenujte, je to VYŽADOVÁNO, jinak program skončí. Formát souboru je takový, že v něm jsou ankety (tzn. sekvence několika znaků jako pořadí možnosti, jméno možnosti a počet hlasů). Ideální využití je pro hlasování na HofyLandu, je zde ale možné (nejlépe po mírné úpravě) zpracovávat takto jiné ankety, výsledky a podobně.

Výstupní soubor je hof.htm, neboli zkráceně Hall of Fame, Síň slávy. Máte možnost změnit počet kol v soutěži za posledních x kol a to tak, že program spustíte s parametrem, kterým je číslo. Pokud jste spokojeni s číslem pět, tak nic neřešte, jinak tady mám krátký návod:

Máte 2 způsoby. Ten první je, že vytvoříte zástupce a pozměníte mu jméno souboru tak, že přidáte za jméno ještě požadovanou délku. Ten druhý je, že vytvoříte textový soubor, který přejmenujete na *.bat (hvězdičkou míním cokoli), dáte volbu Upravit a vepíšete toto: "hl_anketa.exe 5" (bez těch uvozovek). 5ku můžete nahradit jakýmkoli číslem.

Pak ještě jeden detail, tabulky vypadají lépe, pokud používají ty třídy, na které odkazují, tzn. "tab_odsaz" a "rt". Pokud nevíte, co to znamená, stačí vkopírovat krom tabulky toto:

<style> <!-- .tab_odsaz td { padding: 0.1em 1em; } .rt { text-align: right; } .center { text-align:center; } --> </style>

A to už by bylo asi vše ... popsat dalo skoro stejně práce jako napsat ten zdroják :-D
Ještě jedna drobnost, vylepšené verze mi prosím pošlete pokud nějaké uděláte. Nyní můžete zpátky nahoru.
K pohodlnému prohlížení doporučuji prohlížeč Mozilla nebo Opera. Na začátek stránky