abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 02:22 | Zajímavý článek

    The Document Foundation, organizace zastřešující projekt LibreOffice a další aktivity, zveřejnila výroční zprávu za rok 2024.

    ZCR | Komentářů: 0
    včera 17:33 | Nová verze

    Byla vydána nová stabilní verze 7.6 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 140. Přehled novinek i s náhledy v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    včera 16:22 | Nová verze

    Byla vydána verze 1.90.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.

    Ladislav Hagara | Komentářů: 0
    včera 16:11 | Nová verze

    GNUnet (Wikipedie) byl vydán v nové major verzi 0.25.0. Jedná se o framework pro decentralizované peer-to-peer síťování, na kterém je postavena řada aplikací.

    Ladislav Hagara | Komentářů: 0
    včera 12:11 | Nová verze

    Byla vydána nová major verze 7.0 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Nově je postavena je na Debianu 13 (Trixie) a GNOME 48 (Bengaluru). Další novinky v příslušném seznamu.

    Ladislav Hagara | Komentářů: 0
    včera 04:44 | IT novinky

    Společnost Meta na dvoudenní konferenci Meta Connect 2025 představuje své novinky. První den byly představeny nové AI brýle: Ray-Ban Meta (Gen 2), sportovní Oakley Meta Vanguard a především Meta Ray-Ban Display s integrovaným displejem a EMG náramkem pro ovládání.

    Ladislav Hagara | Komentářů: 0
    včera 01:11 | Nová verze

    Po půl roce vývoje od vydání verze 48 bylo vydáno GNOME 49 s kódovým názvem Brescia (Mastodon). S přehrávačem videí Showtime místo Totemu a prohlížečem dokumentů Papers místo Evince. Podrobný přehled novinek i s náhledy v poznámkách k vydání a v novinkách pro vývojáře.

    Ladislav Hagara | Komentářů: 11
    17.9. 16:22 | Nová verze

    Open source softwarový stack ROCm (Wikipedie) pro vývoj AI a HPC na GPU od AMD byl vydán ve verzi 7.0.0. Přidána byla podpora AMD Instinct MI355X a MI350X.

    Ladislav Hagara | Komentářů: 0
    17.9. 15:22 | Nová verze

    Byla vydána nová verze 258 správce systému a služeb systemd (GitHub).

    Ladislav Hagara | Komentářů: 6
    17.9. 15:11 | Nová verze

    Byla vydána Java 25 / JDK 25. Nových vlastností (JEP - JDK Enhancement Proposal) je 18. Jedná se o LTS verzi.

    Ladislav Hagara | Komentářů: 0
    Jaké řešení používáte k vývoji / práci?
     (39%)
     (55%)
     (6%)
     (9%)
     (12%)
     (9%)
     (12%)
     (9%)
     (15%)
    Celkem 33 hlasů
     Komentářů: 5, poslední včera 22:30
    Rozcestník

    Dotaz: Čtení z náhodného místa v souboru

    14.1.2010 23:25 Okallasch | skóre: 1
    Čtení z náhodného místa v souboru
    Přečteno: 294×
    Zdravim Céčkaří. Potřeboval bych radu... //Předem se omlouvám jestli řešim už vyřešené téma... Píši program k maturitě a jmenuje se Kalendář a diář v jednom.

    Měl by pracovat takto uživately se po spuštení objeví hlavní menu kde si může vybrat ze 4 možností: 1-Kalendář 2-Diář 3-Nastavení 4-Konec

    Zatim mám program napsaný ve fázi takovéto:

    Pokud uživatel vybere první možnost otevře se externí soubor s názvem kalendar.txt a vyplivne na obrazovku celý svůj obsah... což znamená datumy+svátky od 1.1. až do 31.12. Program ještě těsně po spuštení zjistí aktuální datum a čas a vypíše ho nad hlavní menu... A já bych potřeboval aby aktuální datum použil k nalezení místa v tom souboru kalendar.txt a od toho místa vytiskly na obrazovku aktuální den + 7 dalších dnů a tam se poté zastavil. Prozatim mám napsaný cyklus pro čtení znaků jeden za druhym až do konce souboru tedy EOF. Potřebuju poradit od vás zkušených jak tento cyklus upravit aby se dělo to co potřebuji... Zkoušel jsem nějaké pokusy, ale marně zkoušel jsem i funkce fseek, ale s tou moc ještě neumim :-(... Tak do hoďky budu na svém linuxu a hodim sem zdroják... Zatim s pozdravem Ondřej Kallasch

    Odpovědi

    15.1.2010 00:12 12345 | skóre: 41 | blog:
    Rozbalit Rozbalit vše Re: Čtení z náhodného místa v souboru
    Pokud jde o svátky, tak bys třeba mohl mít soubor, kde by na každém řádku byl jeden svátek (366 řádků). Pořadí aktuálního dne v roce spočítáš lehce (pozor na přestupný rok), najdeš si správný řádek, přečteš jich dalších sedm…

    Kromě těch svátků by ale bylo rozumnější kalendář generovat on-the-fly. Neměl jsi doufám v úmyslu mít v nějakém souboru hotový, naformátovaný kalendář včetně dat („datumů“)? Ono ne že by to nefungovalo, ale až bys chtěl nějak změnit třeba formát výstupu… práce s takovými daty by byla horší než škrábání levou nohou za pravým uchem :-)
    15.1.2010 00:54 Okallasch | skóre: 1
    Rozbalit Rozbalit vše Re: Čtení z náhodného místa v souboru
    Příloha:
    Ano měl jsem to v plánu mít naformátovaný soubor s celým kalendářem... Sice se mi nepodařilo se ted z neznameho duvodu pripojit s fedorou k netu ale nastesti jsem pretahl zdrojak na flasku takze to postnu pres okna.

    Tady to je jak jsem sliboval, nezhrozte se upravy a stavby programu zatim to nemam vubec srovnane a je to jen ranná verze, ale budu rád za každý návrh na zjednodušení nebo vylepšení programu.. tak uplouduju samotný program.
    15.1.2010 00:56 Okallasch | skóre: 1
    Rozbalit Rozbalit vše Re: Čtení z náhodného místa v souboru
    Příloha:
    A zde ještě přikládám soubor kalendar.txt
    15.1.2010 02:12 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Čtení z náhodného místa v souboru

    1. Jak už tu padlo, mít předformátovaný kalendář je nesmysl. Kdyby nic jiného, fungovalo by to jen pro jeden konkrétní rok. Pokud se vám nechce počítat den v týdnu, udělá to za vás funkce localtime(), kterou stejně používáte.

    2. Funkce fseek() by měla smysl pouze v případě, že by bylo možné odvodit (bytovou) pozici v souboru z data, tedy např. pokud by jednotlivé záznamy měly pevnou délku. Pro vás bude užitečnější spíš čtení po řádcích pomocí fgets(), ale to záleží na formátu toho pomocného souboru.

    Jinak přeji hodně štěstí u maturity. Vzhledem k úrovni znalostí dvou maturitních předmětů, kterou jste předvedl ve svém dotazu, ho asi budete potřebovat.

    15.1.2010 02:48 Okallasch | skóre: 1
    Rozbalit Rozbalit vše Re: Čtení z náhodného místa v souboru
    děkuji, zřejmě budu... naštestí maturita se skládá pouze ze samotné práce + obhajoba, takže mě nemůže nic překvapit, protože se mě budou ptát jen na věci ohledně práce... No je pravda, že nyní lituju výběrem tématu...
    15.1.2010 03:14 Radovan
    Rozbalit Rozbalit vše Re: Čtení z náhodného místa v souboru
    A nebude jednodušší načíst celé řádky, které mohou mít různou délku? ;-)

    char *fgets(char *s, int size, FILE *stream);

    Podrobnosti viz man char a ukázka tady. Pro fseek() bys potřeboval vědět kde jednotlivé dny začínají, to by znamenalo mít všechny položky doplněné mezerami na stejnou délku a pozici vypočítat, nebo mít tabulku s indexy, třeba na začátku toho souboru se svátky.

    Prostě si udělej pole 12*31*max_délka_řádku a do něj načti všechny svátky ze souboru najednou, budeš mít 372 řádky, těch pár bytů navíc už tě nezabije. Pak si v programu musíš jen ohlídat aby v těch sedmi dnech nezobrazoval třeba 31. února a aby na přelomu roku skočil do ledna a ne do dalšího měsíce, tam bych použil pole s délkami měsíců int delka[12]={31,28,31,30.....31}; - únor se v přestupném roce změní na 29. Jen pozor na to že indexy měsíců i dnů jsou o 1 nižší než hodnota, jinak bys musel mít 13*32*délka! Spočítat den v týdnu už nebude problém, abys ho vypsal k datu.

    Jestli do toho diáře budeš chtít zapisovat poznámky a ukládat je na disk, tak si to program může stejným způsobem uložit do podobného souboru, v nejhorším případě i do toho samého za kalendář.

    Založit nové vláknoNahoru

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

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.