>> [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]