[Predvaja glasba] ROB Bowden: Hi. Jaz sem Rob, in upajmo, da Ta rešitev, ki vam dajo na poti do okrevanja. Torej, začnimo. Vidimo, da takoj smo samo da bi bili prepričani, da smo pomočjo zopet pravilno. Torej bi uporaba le nekaj, kot pika slash opomore. Zdaj bomo odprli pričakovati card dot surovo datoteko. Vidimo tukaj, da bomo s pomočjo stalna surovo podčrtaj ime datoteke, ki tu imamo hašiš definiran kot kartica dot surovo. OK. Zato moramo zagotoviti, da se da uspešno odprta, ker če je ni, potem moramo opozoriti uporabnika. Vendar ob predpostavki, da je to storila, mi smo zdaj bo razglasila varovalnega pasu velikosti JPEG datoteko dolžino imena. Torej to se bo pufer, ki bomo sprintf v. Torej, kaj je JPEG datoteka ime dolžina? Tu gor, vidimo, da je hash opredeljena kot osem. Torej, zakaj osem? No saj slika bo poimenovana nekaj podobnega nič nič nič. JPG in potem moramo uporabiti poševnico nični. Zato moramo varovalo, da lahko shranjevanje osem znakov. Zdaj bomo imeli števec, ki je gre za sledenje število JPEG smo našli. In končno, gremo, da imajo JPEG datoteka, ki je sprva null ki se bo sedaj odprte datoteke, da smo pisno. Zdaj bomo imeli Dodatna pufer. To ni isto kot naši sprintf pufer, kjer je ta varovalni ena da smo berete v podatkih s kartico pika surovo. Torej je pufer bo od nepodpisani znakov, ki jih lahko v bistvu samo zdravljenje nam bajte, in to je bo v velikosti velikosti bloka kjer je, kot smo vam povem, Velikost bloka je 512. Torej, JPEG si lahko privoščite vse kot bloki 512 bajtov. Zdaj gremo v zanko čez celotno datoteko. Bomo f preberete v našem buffer a single krat bajt velikosti bloka iz card dot surovo datoteko. Zdaj kaj f prebral vrne? Vrne število elementov da je uspešno prebral. Torej, če ji je uspelo prebrati 512 bajtov, potem želimo, da bi videli, ali je bila ta JPEG ali pa pisati v datoteko JPEG. In če to ni vrnil 512 bajtov, potem je bodisi datoteka končala v tem primeru bomo iztrgajo iz y zanka, ali obstaja neke vrste napake V tem primeru bomo prekinil tudi izven y zanke, vendar bomo želeli prijaviti da je šlo nekaj narobe. OK. Torej, ob predpostavki, da bomo uspešno prebrali v 512 bajtov, želimo, da prvo preverjanje da bi, da ti zlogi, da smo pravkar prebral na začetek JPEG. Torej, če je glava JPEG naše buffer. Zdaj, kaj je v glavi JPEG delaš? Oglejmo si. Tu gor, vidimo, da je ta funkcija vrnitvijo bika, in da je bik - tudi tukaj, smo preverjali, če Glava je enaka nič, to konstanto in Glava ena enaka ta konstanta in Glava dva enaka ta konstanta, Glava tri enaka tem, ali je ta konstantna kjer so vse te konstante samo hash opredeljeno tukaj, in so točno to, kar smo vam povedali v spec da JPEG začne s. In zato je ta funkcija je le, da bo vrne true, če je to buffer predstavlja Začetek nove JPEG in false sicer. OK. Torej, če to ne predstavlja novega JPEG, Nato smo najprej želeli preveriti, da vidim, če JPEG ni enaka null, V tem primeru smo ga zaprete. In zakaj torej moramo preveriti da vidim, če je ni nič? No, da je zelo prvi JPEG smo Ugotovijo, da ne bomo že odprte datoteke JPEG. In tako, če bomo poskušali zapreti, potem ne bomo nečesa povsem napačno. Toda vsak poznejši JPEG, ki smo odprli, želimo zapreti Predhodna slika. Torej, zdaj bomo uporabili sprintf kot mi rečeno, kjer smo s pomočjo buffer JPEG ime datoteke. In bomo uporabili JPEG Naziv Oblika, kot je naš formatu. In kaj je to? Tu gor, vidimo, da je nič odstotkov 3D.JPEG kjer zero tri pravkar Pravi, da bomo uporabili tri cela števila Za to oblazinjeni z ničle. Torej, to je, kako bomo dobili nič nič one.JPEG in nič 10.JPEG in tako naprej. Bomo uporabili sprintf. In celo, da smo vstavljanje v niz je otrple JPEG izterjati, ki je prvotno nič. Torej prva datoteka odpre se dogaja biti nič nič nič dot JPEG. In potem smo jo tako, da povečate Naslednja slika nam odpre bo nič nič ena pika JPEG in jo bomo prirastek še enkrat, tako bo pa nič nič dva pika JPEG in tako naprej. Vse je v redu. Torej, zdaj znotraj datoteke JPEG ime, imamo ime datoteko, da si želimo. Mi lahko f odpreti to datoteko za pisanje. OK. In še enkrat, moramo preveriti, da se Preverite, ali datoteka uspešno odprt, saj, če ni, potem je bilo nekaj napake. Torej sedaj smo gotten mimo je to JPEG del. In tukaj vidimo, da gremo pisati v JPEG. Vendar moramo najprej ta pregled, ki pravi, če JPEG ni enaka null. Zakaj potrebujemo to? No, JPEG enaka null, ko smo Trenutno imamo odprto JPEG. Kaj pa, če card dot surove začne s kupom bajtov, ki ne predstavljajo JPEG? Potem bomo želeli preskočite tiste bajte. Če ne bomo imeli ta pregled, nato pa smo Napisala bom, da neodprte vložijo prvih 512 bajtov kartico, ki ni dobro. OK. Torej, ob predpostavki, da imamo odprto datoteko, nato bomo pisati v datoteko 512 bajtov, ki jih imamo v našem pufru. In smo še enkrat preverimo, prepričani, da so 512 bajtov uspešno so bile napisane zato, ker če ne bi bili Uspešno napisal, potem je nekaj je šlo narobe. Bomo zatiskati datotek, tiskanje, ki kaj je šlo narobe, in povratek. Vse ob predpostavki, da gre pravilno, potem bomo še naprej zanka zapiranje stara datoteka, odpiranje nove datoteke, pisanje podatkov v novo datoteko, in tako dokler na koncu, to beri vrne nič, ki pomeni da je datoteka storiti. Torej sedaj, da je branje kartice več, smo glej, da bomo f zapreti zadnja slika, ki smo imeli odprte, vendar smo preverjanje, ali datoteka JPEG ni enaka null. No f blizu smiselna, saj, kot je smo spisov, da zapiramo Predhodna slika, ampak zelo zadnja datoteko, ki smo odprli dobi nikoli zaprta. Tako da je tisto, kar to počne. Ampak zakaj moramo preveriti null? Pa kaj, če kartica pika surov ni ima eno samo JPEG znotraj njega? V tem primeru bi imeli nikoli odprl datoteko. In če ne bomo nikoli odpreti datoteko, bi morali Ne poskušajte zapreti tisto datoteko. Torej, to je tisto, kar ta pregled počne. Zdaj tu, kot sem že dejal, smo lahko so izbruhnili, da y zanke bodisi če Kartica je končala ali če obstajajo nekatere napake pri branju iz kartice. Torej se to preverjanje, da vidim, če je bilo napaka pri branju iz kartice, tem primeru, bomo pa rekli, je bila napaka pri branju. Nočemo, da bi uporabniku, da razmišljajo vse, kar je uspešno šel. In bomo vrnili enega za napake. Končno bomo f zapreti naše surovo datoteko naša kartica dot surovo, kar pomeni, da Vse je šlo dobro in povratek nič in to je to. Moje ime je Rob in to je bilo zopet. [Predvaja glasba]