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 03:44 | Komunita

    Společnost Meta (Facebook) předává React, React Native a související projekty jako JSX nadaci React Foundation patřící pod Linux Foundation. Zakládajícími členy React Foundation jsou Amazon, Callstack, Expo, Huawei, Meta, Microsoft, Software Mansion a Vercel.

    Ladislav Hagara | Komentářů: 2
    dnes 01:22 | IT novinky

    Samsung na akci Galaxy Unpacked February 2026 (YouTube) představil své nové telefony Galaxy S26, S26+ a S26 Ultra a sluchátka Galaxy Buds4 a Buds4 Pro. Telefon Galaxy S26 Ultra má nový typ displeje (Privacy Display) chránící obsah na obrazovce před zvědavými pohledy (YouTube).

    Ladislav Hagara | Komentářů: 2
    dnes 00:22 | Nová verze

    Byla vydána grafická knihovna Mesa 26.0.1 s podporou API OpenGL 4.6 a Vulkan 1.4. Je to první stabilní verze po 26.0.0, kde se novinky týkají mj. výkonu ray tracingu na GPU AMD a HoneyKrisp, implementace API Vulkan pro macOS.

    |🇵🇸 | Komentářů: 0
    včera 20:22 | Nová verze

    Byla vydána nová verze 4.6 multiplatformního integrovaného vývojového prostředí (IDE) pro rychlý vývoj aplikaci (RAD) ve Free Pascalu Lazarus (Wikipedie). Využíván je Free Pascal Compiler (FPC) 3.2.2.

    Ladislav Hagara | Komentářů: 0
    včera 18:00 | Nová verze

    Byla vydána nová verze 3.23.0 FreeRDP, tj. svobodné implementace protokolu RDP (Remote Desktop Protocol). Opravuje 11 bezpečnostních chyb.

    Ladislav Hagara | Komentářů: 0
    včera 17:44 | Zajímavý článek

    Španělský softwarový inženýr oznámil, že se mu podařilo na dálku ovládat sedm tisíc robotických vysavačů po celém světě. Upozornil tak na slabé kybernetické zabezpečení těchto technologií a jejich možné a snadné zneužití. Nesnažil se hacknout všechny robotické vysavače po světě, ale pouze propojil svůj nový DJI Romo vysavač se zařízením Playstation. Aplikace podle něj ihned začala komunikovat se všemi sedmi tisíci spotřebiči a on je

    … více »
    Ladislav Hagara | Komentářů: 7
    včera 03:33 | Humor

    Momo je fenka cavapoo, která svými náhodnými stisky kláves bezdrátové klávesnice vytváří jednoduché počítačové hry. Technicky to funguje tak, že Raspberry Pi s připojenou bluetooth klávesnicí posílá text do Claude Code, který pak v Godotu píše hry a sám je i testuje pomocí screenshotů a jednoduchých simulovaných vstupů. Za stisky kláves je Momo automaticky odměňována pamlsky. Klíčový je pro projekt prompt, který instruuje AI, aby i

    … více »
    NUKE GAZA! 🎆 | Komentářů: 24
    včera 02:22 | Nová verze

    GNU awk (gawk), implementace specializovaného programovacího jazyka pro zpracování textu, byl vydán ve verzi 5.4.0. Jedná se o větší vydání po více než dvou letech. Mezi četnými změnami figuruje např. MinRX nově jako výchozí implementace pro regulární výrazy.

    |🇵🇸 | Komentářů: 0
    24.2. 16:22 | IT novinky

    Internetový prohlížeč Ladybird ohlásil tranzici z programovacího jazyka C++ do Rustu. Přechod bude probíhat postupně a nové komponenty budou dočasně koexistovat se stávajícím C++ kódem. Pro urychlení práce bude použita umělá inteligence, při portování první komponenty prohlížeče, JavaScriptového enginu LibJS, bylo během dvou týdnů pomocí nástrojů Claude Code a Codex vygenerováno kolem 25 000 řádků kódu. Nejedná se o čistě autonomní vývoj pomocí agentů.

    NUKE GAZA! 🎆 | Komentářů: 9
    24.2. 15:55 | Nová verze

    Byl vydán Mozilla Firefox 148.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Nově lze snadno povolit nebo zakázat jednotlivé AI funkce. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 148 bude brzy k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 2
    Které desktopové prostředí na Linuxu používáte?
     (18%)
     (6%)
     (0%)
     (11%)
     (27%)
     (2%)
     (5%)
     (2%)
     (12%)
     (26%)
    Celkem 959 hlasů
     Komentářů: 25, poslední 3.2. 19:50
    Rozcestník

    Dotaz: C++ praca so stringami a polami char v binarnom subore

    21.3.2020 17:23 kapi
    C++ praca so stringami a polami char v binarnom subore
    Přečteno: 748×
    Zapisujem data binarneho suboru. Binarny subor ma hlavicku.

    Na zaciatku hlavicky je ID co je sada znakov urcena na rozpoznanie prislusneho formatu suboru.

    Prvy problem nastava uz pri definicii konstanty, prekladac C++ mi neumoznuje definovat konstantu s presnou velkostou. NiecoXY ma 7 znakov, ale prekladac mi dovoli pole inicializovat iba na 8 znakov. Chce tam totiz pridat ukoncovaci znak '\0'. Lenze ja viem ze pole nakov v tomto formate suboru bude mat presne 7 znakov a ukoncovaci znak \0 je tam uplne zbytocny.
    const char XYFileID[7] = "NiecoXY"; // toto mi prekladac nedovoli
    const char XYFileID[8] = "NiecoXY"; // musim definovat toto
    Dalej chcem nadefinovat hlavicku binarneho suboru takto:
    struct XYFileHeader {
    	const char Id[7] = XYFileID; // rovnaky problem ako v prvom pripade
    	float Width;
    	float Height;
    	float DpiX;
    	float DpiY;
    	char Codec[10];
    };
    Ale opat je tam problem s ukoncovacim znakom. Prekladac C++ mi ho tam chce za kazdu cenu vnutit. Takze musim to riesit takto:

    const char XYFileID[8] = "NiecoXY";

    struct XYFileHeader { char Id[7]; float Width; float Height; float DpiX; float DpiY; char Codec[10]; XYFileHeader() { strcpy(Id, XYFileID); } };

    co prinasa 2 problemy: Id vramci struktury neni const takze sa da prepisat. Musim tie znaky kopirovat az v konstruktore cez strcpy co samozrejme neni tak samovysvetlujuce. Poznate nejaky lepsi sposob? Ale prosim prehladny. Toto za prehladne nepovazujem:
    const char XYImageID[7] = { 'N', 'i', 'e', 'c', 'o','X', 'Y' };

    Odpovědi

    21.3.2020 20:12 rastos | skóre: 63 | blog: rastos
    Rozbalit Rozbalit vše Re: C++ praca so stringami a polami char v binarnom subore
    Literál "NiecoXY" je reprezentovaný 8 znakmi - zahŕňa ukončovací znak '\0'. Pokiaľ tam ten znak nechceš, tak taký zápis nemôžeš použiť. Rovnako strcpy() funguje tak, že skončí kopírovanie, keď narazí na znak '\0'. Ak ho tam nemáš, tak nemôžeš použiť strcpy(). Môžeš použiť strncpy(), alebo memcpy().

    V čom je ten posledný zápis neprehľadný, to mi nie je jasné. Nanajvýš by som tam použil hexa zápis.
    21.3.2020 21:48 Martin Tůma | skóre: 39 | blog: RTFM | Praha
    Rozbalit Rozbalit vše Re: C++ praca so stringami a polami char v binarnom subore

    Ta struktura je jako hlavička formátu prakticky nepoužitelná* - to Id tam bude mít stejně 1B padding. A rozhodně bych nedoporučoval se to snažit "opravit" pomocí pragma pack nebo podobných rozšíření. Většina formátů ten magic definuje jako nějaký integer, i když ta hodnota je "textová".

    * pro usecase "připlácnout strukturu na paměť". Korektně číst po bajtech lze samozřejmě libovolnou hlavičku, ale veškeré příčetné hlavičky jsou navrhovány jako zarovnané.

    Každý má právo na můj názor!
    NUKE GAZA! 🎆 avatar 22.3.2020 11:32 NUKE GAZA! 🎆 | skóre: 37 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
    Rozbalit Rozbalit vše Re: C++ praca so stringami a polami char v binarnom subore

    lepší způsob?? nóóóó použít objekt a všecko v něm poschovávat protože c++ :O ;D

    22.3.2020 13:37 debian+
    Rozbalit Rozbalit vše Re: C++ praca so stringami a polami char v binarnom subore
    Ak Ti ide o citatelnost, tak to definuj cez predprocesor:
    #define HEADER_FILE_ID ({'N', 'i', 'e', 'c', 'o','X', 'Y'})
    a v kode budes mat:
    const char Id[7] = HEADER_FILE_ID;
    Ak Ti ide o funkcnost, tak si daj vygenerov hpp subor s definicou tejto strukturou s normalnej nam ludmi definovanom variante (cez make, Makefile a pod.).

    Napr.:
    #!/bin/bash
    
    ID="NiecoXY"
    
    ID_STRUCT=`for a in 0 1 2 3 4 5 6; do echo -n "'${ID:a:1}',"; done;`
    ID_STRUCT=${ID_STRUCT:0:-1}
    
    echo $ID_STRUCT
    
    3.4.2020 08:42 StenF
    Rozbalit Rozbalit vše Re: C++ praca so stringami a polami char v binarnom subore
    Bud to zapisuj jako cele struktury: Pokud jsi jen na jedne platforme, ze neprenasis ten bin soubor, tak bys nemel mit problem.
    FILE *fp = fopen ("necoNeco", "wb");
    if (fp != nullptr) {
        fwrite (tvojeStruktura, sizeof (tvojeStruktura), 1, fp);
        fclose( fp);
    }
    

    A nebo musis jednotlive polozky naformatovat jak uznas za vhodne:
    fwrite (tvojeStruktura.polozka1, sizeof (tvojeStruktura.polozka1), 1, fp);
    nebo:
    fwrite (tvojeStruktura.polozka1, 7, 1, fp);
    
    fwrite (tvojeStruktura.polozka2, sizeof (tvojeStruktura.polozka2), 1, fp);
    fwrite (tvojeStruktura.polozka3, sizeof (tvojeStruktura.polozka3), 1, fp);
    

    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.