[MUSIC Playing] ROB BOWDEN: Szia. Én Rob, és reméljük, hogy ez a megoldás segít beveszünk a gyógyulás útján. Tehát kezdjük. Látjuk, hogy azonnal vagyunk csak azért, hogy megbizonyosodjon arról, hogy nem vagyunk használatával helyreállítása helyesen. Így a használat kéne valami mint a dot perjel vissza. Most megyünk, hogy nyissa meg a várt névjegykártya pont raw fájlt. Látjuk, hogy mi a állandó raw aláhúzás fájl nevét, ami itt van hash meghatározása névjegykártya pont nyers. OK. Tehát meg kell győződnie arról, hogy, hogy sikerült megnyitni, mert ha ez nem, akkor meg kell figyelmeztetni a felhasználót. De feltételezve, hogy mégis, mi most fog nyilatkozni a buffer mérete JPEG fájlnév hosszát. Tehát ez lesz a puffer, amely megyünk sprintf be. Tehát mi a JPEG fájl neve hossza? Itt fenn, azt látjuk, hogy ez hash meghatározott nyolc. Miért nyolc? Hát egy adott fájl neve olyasmi, mint nulla nulla nulla. JPG, és akkor szükség van egy backslash nulla. Tehát szükségünk van egy puffer, amely tárolja nyolc karakter. Most megyünk, hogy egy számlálót, ami majd nyomon követni a szám JPEG találtunk. És végül, mi lesz egy JPEG fájl kezdetben null ami megy, hogy a jelenleg megnyitni a fájlt, hogy mi írásban. Most megyünk, hogy további pufferrel. Ez nem ugyanaz, mint a mi sprintf puffer, ahol ez az egyik puffer hogy olvasod az adatokban a kártyáról pont nyers. Így a puffer lesz a előjel nélküli karakter, amelyek segítségével alapvetően csak bánnak velünk byte, és ez lesz méretű blokk mérete ahol, mint azt mondani, blokkméret 512. Így JPEG tudod kezelni mindent blokként 512 bájt. Most fogunk hurok az egész fájlt. Fogunk f olvassa be a puffer egy byte blokkméret szer A kártya pont raw fájlt. Most mit f olvas vissza? Ez visszaadja a tételek számát hogy sikeresen olvasni. Tehát ha ez sikerült olvasni 512 bájt, akkor szeretnénk látni, hogy ez a JPEG vagy írni, hogy a JPEG fájlt. És ha ez nem tért vissza 512 bájt, akkor vagy a fájl véget ért az esetben fogunk kitörni az y loop, vagy van valamilyen hiba ebben az esetben mi is kitörni Az y hurok, de majd szeretnénk jelenteni hogy valami rosszul sült el. OK. Tehát feltételezve, hogy sikeresen olvasni 512 byte, azt akarjuk, hogy az első ellenőrzés tenni, hogy ezek a bájt, amit csak olvasni kezd a JPEG. Tehát, ha a JPEG fejlécében a puffer. Most mi van JPEG fejléc csinálsz? Nézzük meg. Itt fenn, azt látjuk, hogy ez a funkció visszatért a bika, és a bika - jól van, most ellenőrzi, hogy ha header nulla egyenlő ez az állandó és header egy egyenlő ez az állandó és header két egyenlő ez az állandó, header három egyenlő ezt vagy ezt állandó, ahol ezek az állandók csak hash definiált itt, és pontosan mit mondtam a spec hogy a JPEG kezdődik. És így ez a funkció csak megy, vissza igaz, ha a puffert jelent a kezdete egy új JPEG és hamis egyébként. OK. Tehát, ha ez nem jelent új JPEG, akkor először szeretnénk nézni, hogy JPEG fájl nem egyenlő nulla, amely esetben zárja be. És miért kell ellenőrizni , hogy ha ez nem nulla? Nos, az első JPEG hogy meg nem fogjuk már nyitott JPEG fájlt. És így, ha megpróbáljuk bezárni ezt, akkor mi nem csinál valami igaza. De minden későbbi JPEG hogy kinyitjuk, szeretnénk zárni az előző kép. Most fogjuk használni sprintf ahogy mondtam, ahol mi vagyunk a buffer JPEG fájl nevét. És mi lesz a JPEG fájl név formátum, mint a mi formátumban. És mi lenne az? Itt fenn, azt látjuk, hogy a százalék nulla 3D.JPEG ahol a nulla a három csak azt mondja, hogy fel fogjuk használni a három egész szám Ennek nullákkal töltődik. Szóval így mi lesz nulla nulla one.JPEG és nulla 10.JPEG és így tovább. Fogjuk használni sprintf. És az egész, hogy mi behelyezése a karakterlánc zsibbadt JPEG visszanyert, ami eredetileg nulla. Tehát az első megnyitott fájlt fog hogy nulla nulla nulla pont JPEG. És akkor mi megnő úgy a következő kép nyitunk nulla nulla Egy pont JPEG és mi megnöveljük ismét így lesz nulla nulla két pont JPEG és így tovább. Rendben van. Tehát most a belső JPEG fájl név, mi a neve a fájl, amit akarunk. Tudjuk f nyissa meg a file-t írásra. OK. És még egyszer, meg kell, hogy ellenőrizze, hogy a Ellenőrizze, hogy a fájl sikeresen nyílt, mivel ha nem, akkor volt egy kis hiba. Tehát most már ütött már az ez egy JPEG részt. És itt azt látjuk, megyünk írni a JPEG. De először is ezt a csekket, amely azt mondja ha a JPEG fájl nem egyenlő null. Miért van szükség, hogy az? Nos JPEG fájl egyenlő null, amikor Jelenleg van egy nyitott JPEG. Mi van, ha névjegykártya dot nyers kezdődik egy csomó byte nem jelentenek JPEG? Majd megyünk akar átugorják azokat a bájt. Ha nincs ez a csekket, akkor vagyunk fog írni egy bontatlan fájl első 512 byte A kártya nem jó. OK. Tehát feltételezve van egy nyitott fájlt, majd fogunk írni ezt a fájlt a 512 bájt, hogy van a mi puffer. És mi még egyszer ellenőrzi, hogy a arról, hogy a 512 byte sikeresen íródtak, mert ha nem megírtad, akkor valami baj. Majd zárja be a fájlt, kinyomtatni, hogy valami rosszul sült el, és vissza. Feltéve, hogy minden megy jól, akkor fogjuk tartani a ciklusok lezárása régi fájl megnyitása az új fájlt, írás adatokat az új fájlt, és így , amíg végül ez a f olvassa tér vissza nulla ami azt jelenti , hogy a fájl történik. Tehát most, hogy a kártya olvasás vége, látni, hogy megyünk f lezárja a utolsó fájlt, hogy mi volt nyitva, de mi ellenőrzésére, ha JPEG fájl nem egyenlő null. Nos, a f közel van értelme, mert az mi a fájlok megnyitása, zárva vagyunk Az előző kép, de az utolsó fájlt nyitottunk soha nem lesz zárva. Szóval, ez az, amit ez csinál. De miért van szükség, hogy ellenőrizze a null? Nos, mi van, ha pont névjegykártya nyersanyag nem egyetlen JPEG belsejébe? Ebben az esetben, mi volna soha nem nyitotta meg a fájlt. És ha nem megnyitni egy fájlt, meg kell nem próbálja bezárni a fájlt. Szóval, ez az, amit ez az ellenőrzés során. Most itt, mint már mondtam, tudtuk törtek ki, hogy y hurok vagy ha a kártya véget ért, vagy ha vannak Néhány olvasási hiba a kártyáról. Tehát ez ellenőrzi, hogy ha nem volt olvasási hiba a kártyáról, a esetben, akkor azt mondják, Hiba történt olvasás. Nem akarjuk, hogy a felhasználó gondolni minden ment sikeresen. És majd vissza egy-egy hiba. Végül, akkor f zárja a raw fájl, Kártyás pont nyers, jelezve, hogy minden jól ment és vissza nulla, és ennyi. A nevem Rob és ez volt vissza. [MUSIC Playing]