[Glazba svira] ROB Bowden: Bok. Ja sam Rob, a nadajmo se da je ovo rješenje pomaže staviti vas na putu prema oporavku. Pa počnimo. Vidimo da se odmah smo samo da bi bili sigurni da smo pravilno koristite oporaviti. Dakle uporabe treba samo biti nešto Poput točke slash oporaviti. Sada ćemo otvoriti Očekuje Kartica dot RAW datoteke. Ovdje vidimo da smo pomoću konstantna sirovo donja ime datoteke, koji ovdje imamo mljeveno meso definira kao kartice dot sirovo. OK. Zato nam je potrebno kako bi bili sigurni da je ta Uspješno otvoriti jer ako nije, onda bismo trebali upozoriti korisnika. No, pod pretpostavkom da je to učinio, da smo sada će proglasiti tampon od veličine JPEG podnijeti dužinu ime. Dakle, ovo će biti tampon da idemo sprintf u. Dakle, ono što je JPEG datoteka duljinom ime? Ovdje gore, vidimo da je hash definira kao osam. Pa zašto osam? Pa s obzirom datoteka će biti imenovan nešto kao nula nula nula. JPG i onda trebamo kosu crtu nula. Dakle, trebamo tampon koji može pohraniti osam znakova. Sada ćemo imati brojač koji je će pratiti broj JPEG smo pronašli. I na kraju, da ćemo imati JPEG datoteku koja je u početku null koji će biti trenutno otvoriti datoteku da pišemo na. Sada ćemo imati dodatni tampon. To nije isto kao naše sprintf gdje je taj pufer je pufer jedan da smo čitajući u podacima od kartica dot sirovo. Dakle tampon će biti od nepotpisani znakova, koji se može samo osnovi samo nas tretiraju bajtova, i to je će biti veličinu bloka gdje je, kao što smo vam reći, blok veličine je 512. Dakle JPEG možete liječiti sve kao blokove 512 bajtova. Sada idemo u petlji preko cijele datoteke. Idemo u f pročitati u našoj tampon jednostruki puta bajta veličina bloka iz kartica dot RAW datoteke. Sada što se f pročitao vratiti? Ona vraća broj predmeta da je uspješno čitanje. Dakle, ako je uspio pročitati 512 bajtova, a zatim želimo vidjeti je li to bio JPEG ili pisati u JPEG datoteku. A ako se ne vrati 512 bajtova, onda ni sliku je završila u kojem slučaju ćemo izaći iz y petlje, ili postoji nekakva pogreška u kojem slučaju ćemo također izaći iz y petlje, ali mi ćemo želite prijaviti da je nešto pošlo po zlu. OK. Dakle, pod pretpostavkom da smo uspješno pročitati u 512 bajtova, želimo prvo provjeri da bi se to ove bajtova koje smo samo čitati u početak JPEG. Dakle, ako je JPEG zaglavlje našeg tampon. Sada što ga je JPEG header radi? Pogledajmo. Ovdje gore, vidimo da je ova funkcija povratka bika, a to bull - dobro ovdje, mi smo provjeru je li header nula jednako ovu konstantu i header jedan jednako ovu konstantu i header dva jednaka vektora, header tri jednaka ovo ili ovo konstantna, gdje su sve te konstante su Samo hash definirana ovdje i upravo ono što smo vam rekli u spec. da JPEG počinje. I tako je ova funkcija samo ide na return true ako je to tampon predstavlja početak novog JPEG i lažno inače. OK. Dakle, ako se to ne predstavljaju novu JPEG, onda smo prvo želi provjeriti je li JPEG datoteka nije jednak nuli, U tom slučaju smo ga zatvoriti. I tako zašto trebamo provjeriti vidjeti ako to nije null? Pa prvi JPEG da smo pronaći nećemo već JPEG datoteka otvorena. I tako, ako ćemo pokušati zatvoriti, onda Ne radimo nešto sasvim u pravu. No, svaka sljedeća JPEG da možemo otvoriti, želimo zatvoriti prethodnu sliku. Pa sad idemo koristiti sprintf kao i mi rekao prije, gdje smo pomoću tampon JPEG naziv datoteke. I mi ćemo koristiti JPEG datoteku oblik imena kao naš formatu. A što je to? Ovdje gore, vidimo da je nula posto 3D.JPEG gdje nula tri samo kaže da ćemo koristiti tri prirodna broja za to podstavljene s nulama. Pa to je, kako ćemo dobiti nula nula one.JPEG i nula 10.JPEG i tako dalje. Mi ćemo koristiti sprintf. I cijeli taj smo umetanja u niz je zanijemio JPEG oporavio, što je izvorno nule. Tako je prvi file otvoren je idući biti nula nula nula dot JPEG. I onda smo ga povećavati, tako slijedeću sliku otvorimo će biti nula nula jedna točka JPEG i mi ćemo to povećavati opet, tako da će biti nula nula dvije točke JPEG i tako dalje. U redu. Tako sada unutar JPEG datoteke ime, imamo ime podnijeti da želimo. Možemo f otvoriti tu datoteku za pisanje. OK. I još jednom, moramo provjeriti kako bi sigurni da je datoteka uspješno otvorila jer ako to nije, onda postojala je neka pogreška. Dakle, sada smo stečen prošlosti je ovo JPEG dio. A evo, vidimo idemo pisati na JPEG. No, prvo moramo ovaj ček na kojem piše ako je JPEG datoteka ne jednak null. Zašto nam je potrebna da? Pa JPEG datoteka jednaka null kada smo Trenutno imamo otvorenu JPEG. Što ako kartica dot sirovo počinje s gomilom bajtova koji ne predstavljaju JPEG? Onda idemo u žele preskočiti tih bajtova. Ako nemamo taj ček, a zatim smo će pisati neotvoreni podnijeti prvih 512 bajtova kartica što nije dobro. OK. Dakle, pod pretpostavkom da imamo otvorenu datoteku, a zatim ćemo pisati na tu datoteku 512 bajtova koje imamo u našoj tampon. I mi smo još jednom provjere da sigurni da su 512 uspješno bajtova su pisani jer ako oni nisu bili Uspješno napisano, onda se nešto je pošlo po zlu. Mi ćemo zatvoriti datoteke, ispisati da nešto je pošlo po zlu, a povratak. Pod pretpostavkom da sve ide točno, onda ćemo zadržati petlje zatvaranja stara file, otvara novu datoteku, pisanje podatke u novu datoteku, i tako sve dok konačno, to f pročitati vraća nula što znači da je datoteka. Tako da sada čitanje kartice je više, mi vidim da idemo u f zatvoriti zadnja datoteka koje smo imali otvorene, ali Provjeravamo ako JPEG datoteka nije jednak null. Pa f blizu smisla, jer, kao mi smo otvaranje datoteke, mi smo zatvaranja prethodnu sliku, ali posljednja datoteke koju smo otvorili nikad ne zatvori. Dakle, to je ono što ovaj radi. Ali zašto moramo provjeriti nulu? Pa što ako kartica dot sirovo nije imati jednu JPEG unutar nje? U tom slučaju, imali bismo Nikada otvorio datoteku. A ako mi nikada otvoriti datoteku, trebali bismo Ne pokušati zatvoriti tu datoteku. Dakle, to je ono što ova provjera radi. Sada je ovdje, kao što sam rekao prije, što smo mogli Slomio se da je y petlje ni kad Kartica je završila ili ako postoje neka pogreška čitanja od kartice. Dakle, ovo je provjera da li postoji Pogreška čitanja sa kartice, u tom slučaju, mi ćemo reći da bio čitanje pogrešaka. Ne želimo korisnik razmišljati sve uspješno otišao. A mi ćemo se vratiti jedan za pogreške. Konačno, mi ćemo f zatvoriti našu RAW datoteke, naša kartica dot sirovo, da ukazuju na to da sve je dobro prošlo i povratak nulu i to je to. Moje ime je Rob, a to je oporavak. [Glazba svira]