1 00:00:00,000 --> 00:00:00,494 2 00:00:00,494 --> 00:00:13,350 >> [MUSIC Playing] 3 00:00:13,350 --> 00:00:14,080 >> ROB BOWDEN: Szia. 4 00:00:14,080 --> 00:00:17,550 Én Rob, és reméljük, hogy ez a megoldás segít beveszünk 5 00:00:17,550 --> 00:00:19,600 a gyógyulás útján. 6 00:00:19,600 --> 00:00:22,700 Tehát kezdjük. 7 00:00:22,700 --> 00:00:25,660 >> Látjuk, hogy azonnal vagyunk csak azért, hogy megbizonyosodjon arról, hogy nem vagyunk 8 00:00:25,660 --> 00:00:27,170 használatával helyreállítása helyesen. 9 00:00:27,170 --> 00:00:31,490 Így a használat kéne valami mint a dot perjel vissza. 10 00:00:31,490 --> 00:00:35,500 >> Most megyünk, hogy nyissa meg a várt névjegykártya pont raw fájlt. 11 00:00:35,500 --> 00:00:39,740 Látjuk, hogy mi a állandó raw aláhúzás fájl nevét, 12 00:00:39,740 --> 00:00:44,200 ami itt van hash meghatározása névjegykártya pont nyers. 13 00:00:44,200 --> 00:00:45,030 OK. 14 00:00:45,030 --> 00:00:48,210 >> Tehát meg kell győződnie arról, hogy, hogy sikerült megnyitni, mert ha ez 15 00:00:48,210 --> 00:00:51,150 nem, akkor meg kell figyelmeztetni a felhasználót. 16 00:00:51,150 --> 00:00:56,770 De feltételezve, hogy mégis, mi most fog nyilatkozni a buffer mérete JPEG 17 00:00:56,770 --> 00:00:58,170 fájlnév hosszát. 18 00:00:58,170 --> 00:01:02,060 Tehát ez lesz a puffer, amely megyünk sprintf be. 19 00:01:02,060 --> 00:01:04,360 >> Tehát mi a JPEG fájl neve hossza? 20 00:01:04,360 --> 00:01:08,490 Itt fenn, azt látjuk, hogy ez hash meghatározott nyolc. 21 00:01:08,490 --> 00:01:10,670 Miért nyolc? 22 00:01:10,670 --> 00:01:15,150 Hát egy adott fájl neve olyasmi, mint nulla nulla nulla. 23 00:01:15,150 --> 00:01:19,460 JPG, és akkor szükség van egy backslash nulla. 24 00:01:19,460 --> 00:01:22,720 Tehát szükségünk van egy puffer, amely tárolja nyolc karakter. 25 00:01:22,720 --> 00:01:25,190 Most megyünk, hogy egy számlálót, ami majd nyomon követni a 26 00:01:25,190 --> 00:01:27,780 szám JPEG találtunk. 27 00:01:27,780 --> 00:01:31,590 >> És végül, mi lesz egy JPEG fájl kezdetben null 28 00:01:31,590 --> 00:01:35,920 ami megy, hogy a jelenleg megnyitni a fájlt, hogy mi írásban. 29 00:01:35,920 --> 00:01:37,540 Most megyünk, hogy további pufferrel. 30 00:01:37,540 --> 00:01:41,350 Ez nem ugyanaz, mint a mi sprintf puffer, ahol ez az egyik puffer 31 00:01:41,350 --> 00:01:45,020 hogy olvasod az adatokban a kártyáról pont nyers. 32 00:01:45,020 --> 00:01:48,900 >> Így a puffer lesz a előjel nélküli karakter, amelyek segítségével 33 00:01:48,900 --> 00:01:53,560 alapvetően csak bánnak velünk byte, és ez lesz méretű blokk mérete 34 00:01:53,560 --> 00:01:57,950 ahol, mint azt mondani, blokkméret 512. 35 00:01:57,950 --> 00:02:03,070 Így JPEG tudod kezelni mindent blokként 512 bájt. 36 00:02:03,070 --> 00:02:05,890 >> Most fogunk hurok az egész fájlt. 37 00:02:05,890 --> 00:02:12,980 Fogunk f olvassa be a puffer egy byte blokkméret szer 38 00:02:12,980 --> 00:02:14,710 A kártya pont raw fájlt. 39 00:02:14,710 --> 00:02:16,630 Most mit f olvas vissza? 40 00:02:16,630 --> 00:02:20,050 Ez visszaadja a tételek számát hogy sikeresen olvasni. 41 00:02:20,050 --> 00:02:27,310 Tehát ha ez sikerült olvasni 512 bájt, akkor szeretnénk látni, hogy ez a 42 00:02:27,310 --> 00:02:29,700 JPEG vagy írni, hogy a JPEG fájlt. 43 00:02:29,700 --> 00:02:34,450 És ha ez nem tért vissza 512 bájt, akkor vagy a fájl véget ért 44 00:02:34,450 --> 00:02:37,870 az esetben fogunk kitörni az y loop, vagy van valamilyen hiba 45 00:02:37,870 --> 00:02:40,300 ebben az esetben mi is kitörni Az y hurok, de majd szeretnénk jelenteni 46 00:02:40,300 --> 00:02:41,990 hogy valami rosszul sült el. 47 00:02:41,990 --> 00:02:42,290 >> OK. 48 00:02:42,290 --> 00:02:47,630 Tehát feltételezve, hogy sikeresen olvasni 512 byte, azt akarjuk, hogy az első ellenőrzés 49 00:02:47,630 --> 00:02:53,070 tenni, hogy ezek a bájt, amit csak olvasni kezd a JPEG. 50 00:02:53,070 --> 00:02:56,430 Tehát, ha a JPEG fejlécében a puffer. 51 00:02:56,430 --> 00:02:58,460 Most mi van JPEG fejléc csinálsz? 52 00:02:58,460 --> 00:03:00,120 Nézzük meg. 53 00:03:00,120 --> 00:03:05,270 >> Itt fenn, azt látjuk, hogy ez a funkció visszatért a bika, és a bika - 54 00:03:05,270 --> 00:03:08,820 jól van, most ellenőrzi, hogy ha header nulla egyenlő ez az állandó és 55 00:03:08,820 --> 00:03:11,880 header egy egyenlő ez az állandó és header két egyenlő ez az állandó, 56 00:03:11,880 --> 00:03:15,640 header három egyenlő ezt vagy ezt állandó, ahol ezek az állandók 57 00:03:15,640 --> 00:03:20,340 csak hash definiált itt, és pontosan mit mondtam a spec 58 00:03:20,340 --> 00:03:22,700 hogy a JPEG kezdődik. 59 00:03:22,700 --> 00:03:27,300 És így ez a funkció csak megy, vissza igaz, ha a puffert jelent 60 00:03:27,300 --> 00:03:31,750 a kezdete egy új JPEG és hamis egyébként. 61 00:03:31,750 --> 00:03:32,520 >> OK. 62 00:03:32,520 --> 00:03:38,490 Tehát, ha ez nem jelent új JPEG, akkor először szeretnénk nézni, hogy 63 00:03:38,490 --> 00:03:42,030 JPEG fájl nem egyenlő nulla, amely esetben zárja be. 64 00:03:42,030 --> 00:03:44,940 És miért kell ellenőrizni , hogy ha ez nem nulla? 65 00:03:44,940 --> 00:03:48,980 Nos, az első JPEG hogy meg nem fogjuk már 66 00:03:48,980 --> 00:03:50,440 nyitott JPEG fájlt. 67 00:03:50,440 --> 00:03:55,580 És így, ha megpróbáljuk bezárni ezt, akkor mi nem csinál valami igaza. 68 00:03:55,580 --> 00:03:59,090 >> De minden későbbi JPEG hogy kinyitjuk, szeretnénk zárni 69 00:03:59,090 --> 00:04:00,710 az előző kép. 70 00:04:00,710 --> 00:04:04,630 Most fogjuk használni sprintf ahogy mondtam, ahol mi vagyunk a 71 00:04:04,630 --> 00:04:06,280 buffer JPEG fájl nevét. 72 00:04:06,280 --> 00:04:09,870 És mi lesz a JPEG fájl név formátum, mint a mi formátumban. 73 00:04:09,870 --> 00:04:12,030 És mi lenne az? 74 00:04:12,030 --> 00:04:18,450 Itt fenn, azt látjuk, hogy a százalék nulla 3D.JPEG ahol a nulla a három csak 75 00:04:18,450 --> 00:04:22,089 azt mondja, hogy fel fogjuk használni a három egész szám Ennek nullákkal töltődik. 76 00:04:22,089 --> 00:04:27,470 Szóval így mi lesz nulla nulla one.JPEG és nulla 10.JPEG és így tovább. 77 00:04:27,470 --> 00:04:29,060 >> Fogjuk használni sprintf. 78 00:04:29,060 --> 00:04:33,760 És az egész, hogy mi behelyezése a karakterlánc zsibbadt JPEG 79 00:04:33,760 --> 00:04:36,380 visszanyert, ami eredetileg nulla. 80 00:04:36,380 --> 00:04:39,950 Tehát az első megnyitott fájlt fog hogy nulla nulla nulla pont JPEG. 81 00:04:39,950 --> 00:04:43,330 És akkor mi megnő úgy a következő kép nyitunk nulla nulla 82 00:04:43,330 --> 00:04:46,830 Egy pont JPEG és mi megnöveljük ismét így lesz nulla nulla két pont 83 00:04:46,830 --> 00:04:49,100 JPEG és így tovább. 84 00:04:49,100 --> 00:04:49,850 >> Rendben van. 85 00:04:49,850 --> 00:04:53,210 Tehát most a belső JPEG fájl név, mi a neve a 86 00:04:53,210 --> 00:04:54,990 fájl, amit akarunk. 87 00:04:54,990 --> 00:04:58,640 Tudjuk f nyissa meg a file-t írásra. 88 00:04:58,640 --> 00:04:59,170 OK. 89 00:04:59,170 --> 00:05:02,820 És még egyszer, meg kell, hogy ellenőrizze, hogy a Ellenőrizze, hogy a fájl sikeresen 90 00:05:02,820 --> 00:05:08,460 nyílt, mivel ha nem, akkor volt egy kis hiba. 91 00:05:08,460 --> 00:05:13,100 >> Tehát most már ütött már az ez egy JPEG részt. 92 00:05:13,100 --> 00:05:16,390 És itt azt látjuk, megyünk írni a JPEG. 93 00:05:16,390 --> 00:05:20,980 De először is ezt a csekket, amely azt mondja ha a JPEG fájl nem egyenlő null. 94 00:05:20,980 --> 00:05:22,490 Miért van szükség, hogy az? 95 00:05:22,490 --> 00:05:28,020 Nos JPEG fájl egyenlő null, amikor Jelenleg van egy nyitott JPEG. 96 00:05:28,020 --> 00:05:31,870 >> Mi van, ha névjegykártya dot nyers kezdődik egy csomó byte 97 00:05:31,870 --> 00:05:33,510 nem jelentenek JPEG? 98 00:05:33,510 --> 00:05:36,240 Majd megyünk akar átugorják azokat a bájt. 99 00:05:36,240 --> 00:05:39,600 Ha nincs ez a csekket, akkor vagyunk fog írni egy bontatlan 100 00:05:39,600 --> 00:05:45,540 fájl első 512 byte A kártya nem jó. 101 00:05:45,540 --> 00:05:46,030 OK. 102 00:05:46,030 --> 00:05:51,330 >> Tehát feltételezve van egy nyitott fájlt, majd fogunk írni ezt a fájlt a 103 00:05:51,330 --> 00:05:53,290 512 bájt, hogy van a mi puffer. 104 00:05:53,290 --> 00:05:57,390 És mi még egyszer ellenőrzi, hogy a arról, hogy a 512 byte sikeresen 105 00:05:57,390 --> 00:06:01,140 íródtak, mert ha nem megírtad, akkor valami 106 00:06:01,140 --> 00:06:02,080 baj. 107 00:06:02,080 --> 00:06:06,540 Majd zárja be a fájlt, kinyomtatni, hogy valami rosszul sült el, és vissza. 108 00:06:06,540 --> 00:06:10,940 Feltéve, hogy minden megy jól, akkor fogjuk tartani a ciklusok lezárása 109 00:06:10,940 --> 00:06:15,060 régi fájl megnyitása az új fájlt, írás adatokat az új fájlt, és így 110 00:06:15,060 --> 00:06:20,990 , amíg végül ez a f olvassa tér vissza nulla ami azt jelenti 111 00:06:20,990 --> 00:06:23,280 , hogy a fájl történik. 112 00:06:23,280 --> 00:06:28,490 >> Tehát most, hogy a kártya olvasás vége, látni, hogy megyünk f lezárja a 113 00:06:28,490 --> 00:06:33,250 utolsó fájlt, hogy mi volt nyitva, de mi ellenőrzésére, ha JPEG fájl 114 00:06:33,250 --> 00:06:34,900 nem egyenlő null. 115 00:06:34,900 --> 00:06:39,520 Nos, a f közel van értelme, mert az mi a fájlok megnyitása, zárva vagyunk 116 00:06:39,520 --> 00:06:43,870 Az előző kép, de az utolsó fájlt nyitottunk soha nem lesz zárva. 117 00:06:43,870 --> 00:06:45,580 Szóval, ez az, amit ez csinál. 118 00:06:45,580 --> 00:06:47,720 >> De miért van szükség, hogy ellenőrizze a null? 119 00:06:47,720 --> 00:06:53,130 Nos, mi van, ha pont névjegykártya nyersanyag nem egyetlen JPEG belsejébe? 120 00:06:53,130 --> 00:06:56,640 Ebben az esetben, mi volna soha nem nyitotta meg a fájlt. 121 00:06:56,640 --> 00:07:00,230 És ha nem megnyitni egy fájlt, meg kell nem próbálja bezárni a fájlt. 122 00:07:00,230 --> 00:07:03,000 Szóval, ez az, amit ez az ellenőrzés során. 123 00:07:03,000 --> 00:07:07,880 >> Most itt, mint már mondtam, tudtuk törtek ki, hogy y hurok vagy ha 124 00:07:07,880 --> 00:07:13,520 a kártya véget ért, vagy ha vannak Néhány olvasási hiba a kártyáról. 125 00:07:13,520 --> 00:07:16,680 Tehát ez ellenőrzi, hogy ha nem volt olvasási hiba a kártyáról, a 126 00:07:16,680 --> 00:07:19,400 esetben, akkor azt mondják, Hiba történt olvasás. 127 00:07:19,400 --> 00:07:22,130 Nem akarjuk, hogy a felhasználó gondolni minden ment sikeresen. 128 00:07:22,130 --> 00:07:24,750 És majd vissza egy-egy hiba. 129 00:07:24,750 --> 00:07:29,580 >> Végül, akkor f zárja a raw fájl, Kártyás pont nyers, jelezve, hogy 130 00:07:29,580 --> 00:07:34,070 minden jól ment és vissza nulla, és ennyi. 131 00:07:34,070 --> 00:07:36,130 >> A nevem Rob és ez volt vissza. 132 00:07:36,130 --> 00:07:42,102 >> [MUSIC Playing]