[Musiikki soi] ROB BOWDEN: Hei. Olen Rob, ja toivotaan, että tämä ratkaisu auttaa sinut toipumaan päin. Joten pääset alkuun. Näemme, että välittömästi olemme vain varmistaa, että olemme käyttämällä Recover oikein. Joten käyttö olisi vain olla jotain kuten piste slash toipua. Nyt aiomme avata odotettavissa kortti piste raaka-tiedoston. Näemme tässä, että käytämme jatkuva raaka alaviiva tiedoston nimi, joka täällä meillä on hash määritellään kortin piste raaka. OK. Joten meidän täytyy varmistaa, että onnistuneesti avattu, koska jos se ei, meidän pitäisi varoittaa käyttäjää. Mutta olettaen, että se teki, olemme nyt menossa julistaa puskurin kokoa JPEG tiedostonimen pituus. Joten tämä tulee olemaan puskuri, joka aiomme sprintf osaksi. Joten mikä on JPEG-tiedoston nimen pituus? Tänne, näemme, että se on hash määritelty kahdeksan. Joten miksi kahdeksan? No tietty tiedosto nimetään jotain nolla nolla nolla. JPG ja sitten me tarvitsemme kenoviiva nolla. Joten tarvitsemme puskuri, joka voi tallentaa kahdeksan merkkiä. Nyt menossa on laskuri, joka on menossa seurata numero JPEG löysimme. Ja lopuksi, me aiomme olla JPEG-tiedosto, joka on alun perin null joka tulee olemaan tällä hetkellä open file että olemme kirjallisesti. Nyt aiomme olla lisäksi puskuria. Tämä ei ole sama kuin meidän sprintf puskuri jos tämä puskuri on yksi että olemme lukemisen tiedot kortin piste raaka. Joten puskuri on menossa olevan allekirjoittamaton merkkiä, jolla voit pohjimmiltaan vain kohtelevat meitä tavua, ja se on tulee olla koko lohkon koko jossa, kuten kerromme teille, lohkon koko on 512. Joten JPEG voit hoitaa kaiken lohkoina 512 tavua. Nyt aiomme silmukka koko tiedoston. Aiomme f lukea meidän puskuriin yhden tavun lohkon koko kertaa kortti piste raaka-tiedoston. Nyt mitä f lukenut palaa? Se palauttaa kappalemäärä että se onnistuttiin lukemaan. Joten jos se onnistui lukea 512 tavua, niin haluamme nähdä, onko tämä JPEG tai kirjoittaa se JPEG-tiedosto. Ja jos se ei palaa 512 tavua, sitten joko tiedosto on päättynyt jolloin me murtautua ulos y silmukka, tai on olemassa jonkinlainen virhe jolloin me myös murtautua ulos y silmukka, mutta me haluamme raportoida että jotain meni pieleen. OK. Joten olettaen että me onnistuttiin lukemaan 512 tavua, haluamme ensin tarkistaa tehdä, että nämä tavut, että me juuri lukenut aloittaa JPEG. Joten jos on JPEG header meidän puskurin. Nyt mitä se on JPEG otsikko tekee? Katsotaanpa. Täällä, me näemme, että tämä toiminto on palaamassa härkä, ja että sonni - hyvin täällä, me tarkastamme, onko header nolla vastaa tätä jatkuvaa ja header yksi on tämä jatkuva ja header kaksi on tämä vakio, header kolme vastaa sitä tai tätä vakiona jos kaikki nämä vakiot ovat vain hash määritelty täällä ja ovat mitä kerroimme spec että JPEG alkaa. Ja niin tämä toiminto on juuri menossa return true jos tämä puskuri edustaa aloitettiin uusi JPEG ja vääriä toisin. OK. Joten jos tämä ei edusta uutta JPEG, Sitten haluamme ensin tarkistaa, onko JPEG-tiedosto ei ole yhtä kuin nolla, jolloin suljemme sen. Ja niin miksi pitää vielä tarkistaa nähdä, jos se ei ole nolla? No ensimmäinen JPEG että me löytää meillä ei vielä ole avoin JPEG-tiedosto. Ja niin, jos yritämme sulkea, niin sitten Emme tee jotain aivan oikeassa. Mutta jokainen myöhempi JPEG että avaamme haluamme sulkea edellinen kuva. Joten nyt aiomme käyttää sprintf kuin me sanoi ennen, jos käytämme puskuri JPEG tiedoston nimi. Ja aiomme käyttää JPEG-tiedosto nimi muodossa kuin meidän muodossa. Ja mikä se on? Tänne, näemme, että se on prosentin nolla 3D.JPEG jossa nolla kolme juuri sanoo, että käytämme kolme kokonaislukua Tämän nollilla. Joten tämä on, miten saamme nolla nolla one.JPEG ja nolla 10.JPEG ja niin edelleen. Aiomme käyttää sprintf. Ja kokonaisluku, että olemme asetat osaksi merkkijono on tunnoton JPEG talteen, joka on alunperin nolla. Joten ensimmäinen tiedosto avataan on menossa olevan nolla nolla nolla piste JPEG. Ja sitten me monesko niin seuraava tiedosto avaamme on nolla nolla yksi piste JPEG ja me kasvattaa sitä uudelleen niin se tulee olla nolla nolla kaksi piste JPEG-ja niin edelleen. Selvä. Joten nyt sisällä JPEG-tiedoston name, meillä on nimi aineistosta ilmenee, että haluamme. Voimme f avata kyseisen tiedoston kirjoittamista varten. OK. Ja jälleen kerran, meidän täytyy tarkistaa tehdä Varmista että tiedoston onnistuneesti avattu, jos se ei ole, niin siellä oli jokin virhe. Joten nyt olemme saaneet ohi on tämä JPEG osa. Ja tässä näemme aiomme kirjoittaa JPEG. Mutta meidän on ensin tämä tarkastus, jossa sanotaan, jos JPEG-tiedosto ei yhtä null. Miksi me tarvitsemme? No JPEG vastaa null kun me on tällä hetkellä avoin JPEG. Mitä jos kortti dot raaka alkaa nippu tavujen eivät edusta JPEG? Sitten olemme menossa haluavat jätä niitä tavua. Jos meillä ei ole tämän valintaruudun, niin olemme menossa kirjoittaa avaamaton tiedosto ensimmäiset 512 tavua kortti, joka ei ole hyvä. OK. Joten olettaen meillä on avoin tiedosto, sitten aiomme kirjoittaa, että tiedosto 512 tavua, että meillä on puskuria. Ja me taas Varmistamme Varmista, että 512 tavua onnistuneesti oli kirjoitettu, koska jos ne eivät onnistuneesti kirjoitettu, niin jotain meni pieleen. Me suljemme tiedostoja, tulostaa, että jokin meni pieleen, ja palata. Olettaen kaikki menee oikein, niin ryhdymme pitämään silmukoiden sulkeminen vanhan tiedoston, avaa uusi tiedosto, kirjoittaminen tiedot uuteen tiedostoon, ja niin kunnes lopulta, tämä f lukea palauttaa nolla jotka välineet että tiedosto on tehty. Joten nyt, että kortin käsittelyssä on ohi, me nähdä, että aiomme f Sulje viimeinen tiedosto, että meillä oli auki, mutta me tarkastamme, jos JPEG-tiedosto ei ole yhtä kuin nolla. No f lähellä on järkevää, koska sillä Avaamme tiedostoja, suljemme edellinen kuva, mutta aivan viime tiedosto, avasimme koskaan saa kiinni. Niin, että mitä tämä tekee. Mutta miksi meidän täytyy tarkistaa null? No entä jos kortti dot raaka päässyt on yhtenä JPEG sen sisällä? Siinä tapauksessa meillä olisi koskaan avannut tiedoston. Ja jos emme koskaan avata tiedoston, meidän pitäisi yritä sulkea tiedoston. Niin, että mitä tämä tarkastus tekee. Nyt täällä, kuten aiemmin sanoin, voisimme puhjennut että y silmukan jos joko kortti on päättynyt tai jos on jokin virhe luettaessa kortin. Joten tämä on tarkistaa, oliko Virhe luettaessa kortiksi, joka tapauksessa, me sanoa siellä oli virhe käsittelyssä. Emme halua käyttäjän ajatella kaikki meni onnistuneesti. Ja palaamme yksi virhe. Lopuksi, me f suljemme raw-tiedoston, meidän kortti piste raaka, joka osoittaa, että kaikki meni hyvin ja paluu nolla ja se on siinä. Nimeni on Rob ja tämä oli Recover. [Musiikki soi]