[MUSIC PŘEHRÁVÁNÍ] ROB BOWDEN: Ahoj. Jsem Rob, a doufejme, že Toto řešení pomáhá vás na cestě k uzdravení. Tak pojďme začít. Vidíme, že okamžitě jsme jen aby se ujistil, že jsme používající Obnovit správně. Takže použití by mělo být jen něco, jako tečka lomítko obnovit. Nyní budeme otevření očekává karta dot raw souboru. Vidíme zde, že jsme pomocí konstantní název raw podtržítko souboru, které tady máme hash definována jako karta dot raw. OK. Takže se musíme ujistit, že úspěšně otevřít, protože v případě, že ne, pak bychom měli varovat uživatele. Ale za předpokladu, že to udělali, že jsme teď chystá vyhlásit vyrovnávací paměť o velikosti JPEG délce názvu souboru. Takže to bude vyrovnávací paměť, která budeme sprintf do. Takže to, co je JPEG soubor název délka? Až tady, vidíme, že je to hash definována jako osm. Tak proč osm? No daný soubor bude pojmenován něco jako nula nula nula. JPG a pak musíme zpětné lomítko nula. Takže potřebujeme vyrovnávací paměti, který dokáže uložit až osm znaků. Teď budeme mít čítač, který je bude sledovat Číslo JPEG jsme našli. A konečně budeme mít Soubor JPEG, který je zpočátku null která se bude v současné době otevřít soubor, který jsme písemně. Teď budeme mít další vyrovnávací paměti. To není totéž jako naše sprintf vyrovnávací paměť, kde této vyrovnávací paměti, je ten, že čtete v datech z karty dot syrové. Takže vyrovnávací paměť bude mít nepodepsané znaků, které můžete v podstatě jen léčit nám bytů, a to bude mít velikost velikost bloku kde, jak jsme vám říct, velikost bloku je 512. Takže JPEG můžete léčit vše jako bloky 512 bajtů. Teď jedeme do smyčky v celém souboru. Budeme f číst do naší paměti jediný časy byte velikost bloku z karta dot raw souboru. A teď, co se f číst vrátit? Vrací počet položek že úspěšně číst. Takže pokud se jí podařilo číst 512 bajtů, pak Chceme-li zjistit, zda se jedná o JPEG nebo napsat, že do souboru JPEG. A pokud se nevrátil 512 bajtů, pak buď soubor skončila takovém případě budeme vymanit se z y smyčky, nebo tam jsou nějaké chyby v takovém případě budeme také vymanit z y smyčka, ale budeme chtít nahlásit že se něco pokazilo. OK. Takže za předpokladu, že se nám podařilo přečíst v 512 bytech, chceme, aby první kontrole aby se, že tyto byty, které jsme jen číst začít JPEG. Takže pokud je JPEG záhlaví naší paměti. Teď, co to je hlavička JPEG dělá? Pojďme se podívat. Až tady, vidíme, že tato funkce je vrací býka, a že býk - i tady, budeme kontrolovat, zda záhlaví nula rovná tuto konstantu a header jedna rovná se tato konstanta a header dva se rovná tuto konstantu, header tři se rovná této nebo této konstanta, kde všechny tyto konstanty jsou jen hash definována tady a jsou přesně to, co jsme vám v spec že JPEG začíná. A tak tato funkce je jen tak vrátí true, pokud tento vyrovnávací paměť představuje Začátek nového formátu JPEG a v opačném případě false. OK. Takže pokud to dělá představují novou JPEG, pak jsme se poprvé chcete zkontrolovat, zda Soubor JPEG není rovno null, V takovém případě bychom jej zavřete. A tak proč musíme zkontrolovat aby zjistil, jestli to není null? No první JPEG, které jsme zde nebudeme už mít otevřít soubor JPEG. A tak, když se budeme snažit uzavřít, pak my neděláme něco úplně v pořádku. Ale každý následný JPEG, které jsme se otevřít, chceme uzavřít Předchozí obrázek. Takže teď budeme používat sprintf jako my řekl, kde jsme pomocí Název vyrovnávací JPEG souboru. A budeme používat soubor JPEG jméno formátu jako náš formátu. A to je co? Až tady, vidíme, že to je procent nula 3D.JPEG kde nula tři právě říká, že budeme používat tři celá čísla pro tento doplněno nulami. Takže to je to, jak budeme mít nula nula one.JPEG a nulové 10.JPEG a tak dále. Budeme používat sprintf. A celé číslo, které jsme vkládání na řetězec Necitlivé JPEG zpět, což je původně nule. Takže první otevření souboru se děje být nula nula nula tečka JPEG. A pak jsme to postupně tak, Další obrázek se otevře bude nula nula jedna tečka JPEG a budeme zvyšovat ji znovu tak, že to bude nula nula dva tečka JPEG a tak dále. Dobrá. Takže teď uvnitř souboru JPEG jméno, máme jméno soubor, který chceme. Můžeme f otevřít soubor pro zápis. OK. A opět, je třeba zkontrolovat, aby se Ujistěte se, že soubor úspěšně otevřeno, protože pokud se tak nestalo, pak tam byla nějaká chyba. Takže teď jsme se dostali kolem je tato část JPEG. A tady vidíme, jdeme zapisovat do JPEG. Ale musíme nejprve tuto kontrolu, která říká, pokud soubor JPEG není rovno null. Proč potřebujeme to? No soubor JPEG se rovná null, když jsme V současné době mají otevřenou JPEG. Co když syrové začíná karta dot s partou bajtů nepředstavují JPEG? Pak budeme chtít přeskočit těchto bytů. Pokud nemáme tuto kontrolu, a pak jsme bude psát na neotevřené soubor prvních 512 bajtů karta, která není dobrá. OK. Takže za předpokladu, že máme otevřený soubor, pak budeme zapisovat do tohoto souboru 512 bajtů, které máme v naší paměti. A jsme opět kontrolu, aby se Ujistěte se, že je 512 bajtů úspěšně bylo napsáno, protože kdyby nebyly úspěšně zapsána, pak se něco zvrtlo. Budeme zavírat soubory, tisknout, které se něco pokazilo, a návrat. Za předpokladu, že jde všechno správně, pak budeme držet opakování zavírání starý soubor, otevřete nový soubor, psaní dat do nového souboru, a tak tak dlouho, dokud se konečně, tento f čtení vrátí nulu, která znamená že soubor je hotovo. Takže teď, že čtení karty je u konce, my vidět, že jdeme na f zavřít poslední soubor, který jsme měli otevřené, ale budeme kontrolovat, zda soubor JPEG není rovno null. No f blízkosti dává smysl, protože jako jsme otevření souborů, jsme zavření Předchozí obrázek, ale úplně poslední soubor, který jsme otevřeli nikdy nedostane uzavřen. Takže to je to, co to dělá. Ale proč musíme zkontrolovat null? No co když karta tečka syrové ne mají jediný JPEG uvnitř ní? V takovém případě bychom museli Nikdy otevřel soubor. A když jsme se nikdy otevřít soubor, měli bychom nesnaží se uzavřít tento soubor. Takže to je to, co se tato kontrola dělá. A teď, jak jsem již řekl dříve, mohli jsme byly rozděleny na to, že y smyčky, pokud jsou karta skončila, nebo v případě, že jsou čtení z karty nějaká chyba. Tak to je kontrola, zda byl čtení z karty, na chyby takovém případě, budeme zde říkat Byla chyba čtení. Nechceme, aby uživatel myslet vše proběhlo úspěšně. A vrátíme jednu pro chybu. Nakonec, budeme f uzavřít naši raw soubor, naše karty dot syrové, což znamená, že všechno šlo dobře a návrat nulu a to je vše. Jmenuji se Rob a to obnovit. [MUSIC PŘEHRÁVÁNÍ]