1 00:00:00,000 --> 00:00:00,494 2 00:00:00,494 --> 00:00:13,350 >> [Musiikki soi] 3 00:00:13,350 --> 00:00:14,080 >> ROB BOWDEN: Hei. 4 00:00:14,080 --> 00:00:17,550 Olen Rob, ja toivotaan, että tämä ratkaisu auttaa sinut 5 00:00:17,550 --> 00:00:19,600 toipumaan päin. 6 00:00:19,600 --> 00:00:22,700 Joten pääset alkuun. 7 00:00:22,700 --> 00:00:25,660 >> Näemme, että välittömästi olemme vain varmistaa, että olemme 8 00:00:25,660 --> 00:00:27,170 käyttämällä Recover oikein. 9 00:00:27,170 --> 00:00:31,490 Joten käyttö olisi vain olla jotain kuten piste slash toipua. 10 00:00:31,490 --> 00:00:35,500 >> Nyt aiomme avata odotettavissa kortti piste raaka-tiedoston. 11 00:00:35,500 --> 00:00:39,740 Näemme tässä, että käytämme jatkuva raaka alaviiva tiedoston nimi, 12 00:00:39,740 --> 00:00:44,200 joka täällä meillä on hash määritellään kortin piste raaka. 13 00:00:44,200 --> 00:00:45,030 OK. 14 00:00:45,030 --> 00:00:48,210 >> Joten meidän täytyy varmistaa, että onnistuneesti avattu, koska jos se 15 00:00:48,210 --> 00:00:51,150 ei, meidän pitäisi varoittaa käyttäjää. 16 00:00:51,150 --> 00:00:56,770 Mutta olettaen, että se teki, olemme nyt menossa julistaa puskurin kokoa JPEG 17 00:00:56,770 --> 00:00:58,170 tiedostonimen pituus. 18 00:00:58,170 --> 00:01:02,060 Joten tämä tulee olemaan puskuri, joka aiomme sprintf osaksi. 19 00:01:02,060 --> 00:01:04,360 >> Joten mikä on JPEG-tiedoston nimen pituus? 20 00:01:04,360 --> 00:01:08,490 Tänne, näemme, että se on hash määritelty kahdeksan. 21 00:01:08,490 --> 00:01:10,670 Joten miksi kahdeksan? 22 00:01:10,670 --> 00:01:15,150 No tietty tiedosto nimetään jotain nolla nolla nolla. 23 00:01:15,150 --> 00:01:19,460 JPG ja sitten me tarvitsemme kenoviiva nolla. 24 00:01:19,460 --> 00:01:22,720 Joten tarvitsemme puskuri, joka voi tallentaa kahdeksan merkkiä. 25 00:01:22,720 --> 00:01:25,190 Nyt menossa on laskuri, joka on menossa seurata 26 00:01:25,190 --> 00:01:27,780 numero JPEG löysimme. 27 00:01:27,780 --> 00:01:31,590 >> Ja lopuksi, me aiomme olla JPEG-tiedosto, joka on alun perin null 28 00:01:31,590 --> 00:01:35,920 joka tulee olemaan tällä hetkellä open file että olemme kirjallisesti. 29 00:01:35,920 --> 00:01:37,540 Nyt aiomme olla lisäksi puskuria. 30 00:01:37,540 --> 00:01:41,350 Tämä ei ole sama kuin meidän sprintf puskuri jos tämä puskuri on yksi 31 00:01:41,350 --> 00:01:45,020 että olemme lukemisen tiedot kortin piste raaka. 32 00:01:45,020 --> 00:01:48,900 >> Joten puskuri on menossa olevan allekirjoittamaton merkkiä, jolla voit 33 00:01:48,900 --> 00:01:53,560 pohjimmiltaan vain kohtelevat meitä tavua, ja se on tulee olla koko lohkon koko 34 00:01:53,560 --> 00:01:57,950 jossa, kuten kerromme teille, lohkon koko on 512. 35 00:01:57,950 --> 00:02:03,070 Joten JPEG voit hoitaa kaiken lohkoina 512 tavua. 36 00:02:03,070 --> 00:02:05,890 >> Nyt aiomme silmukka koko tiedoston. 37 00:02:05,890 --> 00:02:12,980 Aiomme f lukea meidän puskuriin yhden tavun lohkon koko kertaa 38 00:02:12,980 --> 00:02:14,710 kortti piste raaka-tiedoston. 39 00:02:14,710 --> 00:02:16,630 Nyt mitä f lukenut palaa? 40 00:02:16,630 --> 00:02:20,050 Se palauttaa kappalemäärä että se onnistuttiin lukemaan. 41 00:02:20,050 --> 00:02:27,310 Joten jos se onnistui lukea 512 tavua, niin haluamme nähdä, onko tämä 42 00:02:27,310 --> 00:02:29,700 JPEG tai kirjoittaa se JPEG-tiedosto. 43 00:02:29,700 --> 00:02:34,450 Ja jos se ei palaa 512 tavua, sitten joko tiedosto on päättynyt 44 00:02:34,450 --> 00:02:37,870 jolloin me murtautua ulos y silmukka, tai on olemassa jonkinlainen virhe 45 00:02:37,870 --> 00:02:40,300 jolloin me myös murtautua ulos y silmukka, mutta me haluamme raportoida 46 00:02:40,300 --> 00:02:41,990 että jotain meni pieleen. 47 00:02:41,990 --> 00:02:42,290 >> OK. 48 00:02:42,290 --> 00:02:47,630 Joten olettaen että me onnistuttiin lukemaan 512 tavua, haluamme ensin tarkistaa 49 00:02:47,630 --> 00:02:53,070 tehdä, että nämä tavut, että me juuri lukenut aloittaa JPEG. 50 00:02:53,070 --> 00:02:56,430 Joten jos on JPEG header meidän puskurin. 51 00:02:56,430 --> 00:02:58,460 Nyt mitä se on JPEG otsikko tekee? 52 00:02:58,460 --> 00:03:00,120 Katsotaanpa. 53 00:03:00,120 --> 00:03:05,270 >> Täällä, me näemme, että tämä toiminto on palaamassa härkä, ja että sonni - 54 00:03:05,270 --> 00:03:08,820 hyvin täällä, me tarkastamme, onko header nolla vastaa tätä jatkuvaa ja 55 00:03:08,820 --> 00:03:11,880 header yksi on tämä jatkuva ja header kaksi on tämä vakio, 56 00:03:11,880 --> 00:03:15,640 header kolme vastaa sitä tai tätä vakiona jos kaikki nämä vakiot ovat 57 00:03:15,640 --> 00:03:20,340 vain hash määritelty täällä ja ovat mitä kerroimme spec 58 00:03:20,340 --> 00:03:22,700 että JPEG alkaa. 59 00:03:22,700 --> 00:03:27,300 Ja niin tämä toiminto on juuri menossa return true jos tämä puskuri edustaa 60 00:03:27,300 --> 00:03:31,750 aloitettiin uusi JPEG ja vääriä toisin. 61 00:03:31,750 --> 00:03:32,520 >> OK. 62 00:03:32,520 --> 00:03:38,490 Joten jos tämä ei edusta uutta JPEG, Sitten haluamme ensin tarkistaa, onko 63 00:03:38,490 --> 00:03:42,030 JPEG-tiedosto ei ole yhtä kuin nolla, jolloin suljemme sen. 64 00:03:42,030 --> 00:03:44,940 Ja niin miksi pitää vielä tarkistaa nähdä, jos se ei ole nolla? 65 00:03:44,940 --> 00:03:48,980 No ensimmäinen JPEG että me löytää meillä ei vielä ole 66 00:03:48,980 --> 00:03:50,440 avoin JPEG-tiedosto. 67 00:03:50,440 --> 00:03:55,580 Ja niin, jos yritämme sulkea, niin sitten Emme tee jotain aivan oikeassa. 68 00:03:55,580 --> 00:03:59,090 >> Mutta jokainen myöhempi JPEG että avaamme haluamme sulkea 69 00:03:59,090 --> 00:04:00,710 edellinen kuva. 70 00:04:00,710 --> 00:04:04,630 Joten nyt aiomme käyttää sprintf kuin me sanoi ennen, jos käytämme 71 00:04:04,630 --> 00:04:06,280 puskuri JPEG tiedoston nimi. 72 00:04:06,280 --> 00:04:09,870 Ja aiomme käyttää JPEG-tiedosto nimi muodossa kuin meidän muodossa. 73 00:04:09,870 --> 00:04:12,030 Ja mikä se on? 74 00:04:12,030 --> 00:04:18,450 Tänne, näemme, että se on prosentin nolla 3D.JPEG jossa nolla kolme juuri 75 00:04:18,450 --> 00:04:22,089 sanoo, että käytämme kolme kokonaislukua Tämän nollilla. 76 00:04:22,089 --> 00:04:27,470 Joten tämä on, miten saamme nolla nolla one.JPEG ja nolla 10.JPEG ja niin edelleen. 77 00:04:27,470 --> 00:04:29,060 >> Aiomme käyttää sprintf. 78 00:04:29,060 --> 00:04:33,760 Ja kokonaisluku, että olemme asetat osaksi merkkijono on tunnoton JPEG 79 00:04:33,760 --> 00:04:36,380 talteen, joka on alunperin nolla. 80 00:04:36,380 --> 00:04:39,950 Joten ensimmäinen tiedosto avataan on menossa olevan nolla nolla nolla piste JPEG. 81 00:04:39,950 --> 00:04:43,330 Ja sitten me monesko niin seuraava tiedosto avaamme on nolla nolla 82 00:04:43,330 --> 00:04:46,830 yksi piste JPEG ja me kasvattaa sitä uudelleen niin se tulee olla nolla nolla kaksi piste 83 00:04:46,830 --> 00:04:49,100 JPEG-ja niin edelleen. 84 00:04:49,100 --> 00:04:49,850 >> Selvä. 85 00:04:49,850 --> 00:04:53,210 Joten nyt sisällä JPEG-tiedoston name, meillä on nimi 86 00:04:53,210 --> 00:04:54,990 aineistosta ilmenee, että haluamme. 87 00:04:54,990 --> 00:04:58,640 Voimme f avata kyseisen tiedoston kirjoittamista varten. 88 00:04:58,640 --> 00:04:59,170 OK. 89 00:04:59,170 --> 00:05:02,820 Ja jälleen kerran, meidän täytyy tarkistaa tehdä Varmista että tiedoston onnistuneesti 90 00:05:02,820 --> 00:05:08,460 avattu, jos se ei ole, niin siellä oli jokin virhe. 91 00:05:08,460 --> 00:05:13,100 >> Joten nyt olemme saaneet ohi on tämä JPEG osa. 92 00:05:13,100 --> 00:05:16,390 Ja tässä näemme aiomme kirjoittaa JPEG. 93 00:05:16,390 --> 00:05:20,980 Mutta meidän on ensin tämä tarkastus, jossa sanotaan, jos JPEG-tiedosto ei yhtä null. 94 00:05:20,980 --> 00:05:22,490 Miksi me tarvitsemme? 95 00:05:22,490 --> 00:05:28,020 No JPEG vastaa null kun me on tällä hetkellä avoin JPEG. 96 00:05:28,020 --> 00:05:31,870 >> Mitä jos kortti dot raaka alkaa nippu tavujen 97 00:05:31,870 --> 00:05:33,510 eivät edusta JPEG? 98 00:05:33,510 --> 00:05:36,240 Sitten olemme menossa haluavat jätä niitä tavua. 99 00:05:36,240 --> 00:05:39,600 Jos meillä ei ole tämän valintaruudun, niin olemme menossa kirjoittaa avaamaton 100 00:05:39,600 --> 00:05:45,540 tiedosto ensimmäiset 512 tavua kortti, joka ei ole hyvä. 101 00:05:45,540 --> 00:05:46,030 OK. 102 00:05:46,030 --> 00:05:51,330 >> Joten olettaen meillä on avoin tiedosto, sitten aiomme kirjoittaa, että tiedosto 103 00:05:51,330 --> 00:05:53,290 512 tavua, että meillä on puskuria. 104 00:05:53,290 --> 00:05:57,390 Ja me taas Varmistamme Varmista, että 512 tavua onnistuneesti 105 00:05:57,390 --> 00:06:01,140 oli kirjoitettu, koska jos ne eivät onnistuneesti kirjoitettu, niin jotain 106 00:06:01,140 --> 00:06:02,080 meni pieleen. 107 00:06:02,080 --> 00:06:06,540 Me suljemme tiedostoja, tulostaa, että jokin meni pieleen, ja palata. 108 00:06:06,540 --> 00:06:10,940 Olettaen kaikki menee oikein, niin ryhdymme pitämään silmukoiden sulkeminen 109 00:06:10,940 --> 00:06:15,060 vanhan tiedoston, avaa uusi tiedosto, kirjoittaminen tiedot uuteen tiedostoon, ja niin 110 00:06:15,060 --> 00:06:20,990 kunnes lopulta, tämä f lukea palauttaa nolla jotka välineet 111 00:06:20,990 --> 00:06:23,280 että tiedosto on tehty. 112 00:06:23,280 --> 00:06:28,490 >> Joten nyt, että kortin käsittelyssä on ohi, me nähdä, että aiomme f Sulje 113 00:06:28,490 --> 00:06:33,250 viimeinen tiedosto, että meillä oli auki, mutta me tarkastamme, jos JPEG-tiedosto 114 00:06:33,250 --> 00:06:34,900 ei ole yhtä kuin nolla. 115 00:06:34,900 --> 00:06:39,520 No f lähellä on järkevää, koska sillä Avaamme tiedostoja, suljemme 116 00:06:39,520 --> 00:06:43,870 edellinen kuva, mutta aivan viime tiedosto, avasimme koskaan saa kiinni. 117 00:06:43,870 --> 00:06:45,580 Niin, että mitä tämä tekee. 118 00:06:45,580 --> 00:06:47,720 >> Mutta miksi meidän täytyy tarkistaa null? 119 00:06:47,720 --> 00:06:53,130 No entä jos kortti dot raaka päässyt on yhtenä JPEG sen sisällä? 120 00:06:53,130 --> 00:06:56,640 Siinä tapauksessa meillä olisi koskaan avannut tiedoston. 121 00:06:56,640 --> 00:07:00,230 Ja jos emme koskaan avata tiedoston, meidän pitäisi yritä sulkea tiedoston. 122 00:07:00,230 --> 00:07:03,000 Niin, että mitä tämä tarkastus tekee. 123 00:07:03,000 --> 00:07:07,880 >> Nyt täällä, kuten aiemmin sanoin, voisimme puhjennut että y silmukan jos joko 124 00:07:07,880 --> 00:07:13,520 kortti on päättynyt tai jos on jokin virhe luettaessa kortin. 125 00:07:13,520 --> 00:07:16,680 Joten tämä on tarkistaa, oliko Virhe luettaessa kortiksi, 126 00:07:16,680 --> 00:07:19,400 joka tapauksessa, me sanoa siellä oli virhe käsittelyssä. 127 00:07:19,400 --> 00:07:22,130 Emme halua käyttäjän ajatella kaikki meni onnistuneesti. 128 00:07:22,130 --> 00:07:24,750 Ja palaamme yksi virhe. 129 00:07:24,750 --> 00:07:29,580 >> Lopuksi, me f suljemme raw-tiedoston, meidän kortti piste raaka, joka osoittaa, että 130 00:07:29,580 --> 00:07:34,070 kaikki meni hyvin ja paluu nolla ja se on siinä. 131 00:07:34,070 --> 00:07:36,130 >> Nimeni on Rob ja tämä oli Recover. 132 00:07:36,130 --> 00:07:42,102 >> [Musiikki soi]