Čtení znaků z "jiných" souborů – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Čtení znaků z "jiných" souborů – C / C++ – Fórum – Programujte.comČtení znaků z "jiných" souborů – C / C++ – Fórum – Programujte.com

 

LJ10240
Stálý člen
17. 7. 2010   #1
-
0
-

Zdravím vás,
setkal jsem se s problémem, že nevím, jak načíst obsah souborů s koncovkami typu *.exe, *.bmp a dalších podobných "netextových".

Zkoušel jsem snad všechny možné způsoby pomocí ofstream a WIN API fci CreateFile... Pak jsem brouzdal na netu a zjistil jsem, že pokud chci například načíst bitmapu, musím ji ukládat do nějaké specifické struktury.. Došel jsem k závěru, že v podstatě na jakýkoliv souborový typ (exe, png, mp3, ...) budu potřebovat odlišnou strukturu, do které budu načítat obsah, ale to mi přijde opravdu nepraktické a předpokládám, že existuje nějaká univerzální cesta...

Shrnutí: jak načíst a uložit obsah jakéhokoliv i "netextového" souboru?
Pokud o tom někdo něco víte, napište prosím...

(PS při načítání bitmapy se mi povedly načíst první tři znaky...)

Nahlásit jako SPAM
IP: 217.30.64.–
liborb
~ Redaktor
+18
Guru
17. 7. 2010   #2
-
0
-

Binární soubory musíš načítat jako binární a jejich načtení je u všech stejné, prostě načteš balík dat. Další zpracování nebo ukládání to už je jiná.
Co mají všechny binární typy souborů společného? Jenom to, že je to prostě balík dat, jinak nemají společného zhola nic. Některý má hlavičku a data, jiný má 2 hlavičky, další nemá žádnou. Dokonce i jeden typ souboru může vypadat různě, třeba i ta bitmapa nebo ikona. Tam pak už záleží právě na té hlavičce. Takže si sice můžeš udělat polymorfní strukturu tříd, ale každá bude mít svoje načítání do svojí struktury a samozřejmě bude mít i jiné ukládání. Nic univerzálního, ve smyslu jeden kód pro všechny typy souborů, není. Pouze a jenom strohé načtení do bajtového pole, ale následné překopírování do struktur dané typem už pro každý typ souboru extra.

Nahlásit jako SPAM
IP: 80.232.117.–
LJ10240
Stálý člen
17. 7. 2010   #3
-
0
-

díky... škoda...

Nahlásit jako SPAM
IP: 217.30.64.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 71 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý