[MUSIC PLAYBACK] ROB BOWDEN: Ahoj. Som Rob, a dúfajme, že Toto riešenie pomáha vás na ceste k uzdraveniu. Tak poďme začať. Vidíme, že okamžite sme len aby sa ubezpečil, že sme používajúce Obnoviť správne. Takže použitie by malo byť len niečo, ako bodka lomítko obnoviť. Teraz budeme otvorení očakáva karta dot raw súboru. Vidíme tu, že sme pomocou konštantný názov raw podčiarkovník súboru, ktoré tu máme hash definovaná ako karta dot raw. OK. Takže sa musíme uistiť, že úspešne otvoriť, pretože v prípade, že nie, potom by sme mali varovať užívateľa. Ale za predpokladu, že to urobili, že sme teraz chystá vyhlásiť vyrovnávaciu pamäť o veľkosti JPEG dĺžke názvu súboru. Takže to bude vyrovnávacia pamäť, ktorá budeme sprintf do. Takže to, čo je JPEG súbor názov dĺžka? Až tu, vidíme, že je to hash definovaná ako osem. Tak prečo osem? No daný súbor bude pomenovaný niečo ako nula nula nula. JPG a potom musíme spätné lomítko nula. Takže potrebujeme vyrovnávacej pamäte, ktorý dokáže uložiť až osem znakov. Teraz budeme mať čítač, ktorý je bude sledovať Číslo JPEG sme našli. A konečne budeme mať Súbor JPEG, ktorý je spočiatku null ktorá sa bude v súčasnosti otvoriť súbor, ktorý sme písomne. Teraz budeme mať ďalšie vyrovnávacej pamäti. To nie je to isté ako naše sprintf vyrovnávacia pamäť, kde tejto vyrovnávacej pamäti, je ten, že čítate v dátach z karty dot surové. Takže vyrovnávacia pamäť bude mať nepodpísané znakov, ktoré môžete v podstate len liečiť nám bytov, a to bude mať veľkosť veľkosť bloku kde, ako sme vám povedať, veľkosť bloku je 512. Takže JPEG môžete liečiť všetko ako bloky 512 bajtov. Teraz ideme do slučky v celom súbore. Budeme f čítať do našej pamäti jediný časy byte veľkosť bloku z karta dot raw súboru. A teraz, čo sa f čítať vrátiť? Vracia počet položiek že úspešne čítať. Takže ak sa jej podarilo čítať 512 bajtov, potom Ak chceme zistiť, či sa jedná o JPEG alebo napísať, že do súboru JPEG. A ak sa nevrátil 512 bajtov, potom buď súbor skončila takom prípade budeme vymaniť sa z y slučky, alebo tam sú nejaké chyby v takom prípade budeme tiež vymaniť z y slučka, ale budeme chcieť nahlásiť že sa niečo pokazilo. OK. Takže za predpokladu, že sa nám podarilo prečítať v 512 bytoch, chceme, aby prvej kontrole aby sa, že tieto byty, ktoré sme len čítať začať JPEG. Takže ak je JPEG záhlaví našej pamäti. Teraz, čo to je hlavička JPEG robí? Poďme sa pozrieť. Až tu, vidíme, že táto funkcia je vracia býka, a že býk - aj tu, budeme kontrolovať, či záhlavie nula rovná túto konštantu a header jedna rovná sa táto konštanta a header dva sa rovná túto konštantu, header tri sa rovná tejto alebo tejto konštanta, kde všetky tieto konštanty sú len hash definovaná tu a sú presne to, čo sme vám v spec že JPEG začína. A tak táto funkcia je len tak vráti true, ak tento vyrovnávacia pamäť predstavuje Začiatok nového formátu JPEG a v opačnom prípade false. OK. Takže ak to robí predstavujú novú JPEG, potom sme sa prvýkrát chcete skontrolovať, či Súbor JPEG nie je rovné null, V takom prípade by sme ho zatvorte. A tak prečo musíme skontrolovať aby zistil, či to nie je null? No prvý JPEG, ktoré sme tu nebudeme už mať otvoriť súbor JPEG. A tak, keď sa budeme snažiť uzavrieť, potom my nerobíme niečo úplne v poriadku. Ale každý následný JPEG, ktoré sme sa otvoriť, chceme uzavrieť Predchádzajúci obrázok. Takže teraz budeme používať sprintf ako my povedal, kde sme pomocou Názov vyrovnávacej JPEG súboru. A budeme používať súbor JPEG meno formáte ako náš formáte. A to je čo? Až tu, vidíme, že to je percent nula 3D.JPEG kde nula tri práve hovorí, že budeme používať tri celé čísla pre tento doplnené nulami. Takže to je to, ako budeme mať nula nula one.JPEG a nulové 10.jpeg a tak ďalej. Budeme používať sprintf. A celé číslo, ktoré sme vkladanie na reťazec Necitlivé JPEG späť, čo je pôvodne nule. Takže prvé otvorenie súboru sa deje byť nula nula nula bodka JPEG. A potom sme to postupne tak, Ďalší obrázok sa otvorí bude nula nula jedna bodka JPEG a budeme zvyšovať ju znovu tak, že to bude nula nula dva bodka JPEG a tak ďalej. Dobrá. Takže teraz vnútri súboru JPEG meno, máme meno súbor, ktorý chceme. Môžeme f otvoriť súbor pre zápis. OK. A opäť, je potrebné skontrolovať, aby sa Uistite sa, že súbor úspešne otvorené, pretože ak sa tak nestalo, potom tam bola nejaká chyba. Takže teraz sme sa dostali okolo je táto časť JPEG. A tu vidíme, ideme zapisovať do JPEG. Ale musíme najprv túto kontrolu, ktorá hovorí, ak súbor JPEG nie je rovné null. Prečo potrebujeme to? No súbor JPEG sa rovná null, keď sme V súčasnej dobe majú otvorenú JPEG. Čo keď surové začína karta dot s partiou bajtov nepredstavujú JPEG? Potom budeme chcieť preskočiť týchto bytov. Ak nemáme túto kontrolu, a potom sme bude písať na neotvorené súbor prvých 512 bajtov karta, ktorá nie je dobrá. OK. Takže za predpokladu, že máme otvorený súbor, potom budeme zapisovať do tohto súboru 512 bajtov, ktoré máme v našej pamäti. A sme opäť kontrolu, aby sa Uistite sa, že je 512 bajtov úspešne bolo napísané, pretože keby neboli úspešne zapísaná, potom sa niečo zvrtlo. Budeme zatvárať súbory, tlačiť, ktoré sa niečo pokazilo, a návrat. Za predpokladu, že ide všetko správne, potom budeme držať opakovanie zatváranie starý súbor, otvorte nový súbor, písanie dát do nového súboru, a tak tak dlho, kým sa konečne, tento f čítanie vráti nulu, ktorá znamená že súbor je hotovo. Takže teraz, že čítanie karty je u konca, my vidieť, že ideme na f zavrieť posledný súbor, ktorý sme mali otvorené, ale budeme kontrolovať, či súbor JPEG nie je rovné null. No f blízkosti dáva zmysel, pretože ako sme otvorení súborov, sme zatvorenie Predchádzajúci obrázok, ale úplne posledný súbor, ktorý sme otvorili nikdy nedostane uzavretý. Takže to je to, čo to robí. Ale prečo musíme skontrolovať null? No čo keď karta bodka surové nie majú jediný JPEG vnútri nej? V takom prípade by sme museli Nikdy otvoril súbor. A keď sme sa nikdy otvoriť súbor, mali by sme nesnaží sa uzavrieť tento súbor. Takže to je to, čo sa táto kontrola robí. A teraz, ako som už povedal skôr, mohli sme boli rozdelené na to, že y slučky, ak sú karta skončila, alebo v prípade, že sú čítanie z karty nejaká chyba. Tak to je kontrola, či bol čítanie z karty, na chyby takom prípade, budeme tu hovoriť Bola chyba čítania. Nechceme, aby užívateľ myslieť všetko prebehlo úspešne. A vrátime jednu pre chybu. Nakoniec, budeme f uzavrieť našu raw súbor, naše karty dot surové, čo znamená, že všetko išlo dobre a návrat nulu a to je všetko. Volám sa Rob a to obnoviť. [MUSIC PLAYBACK]