>> [Mūzikas atskaņošanai]
>> ROB BOWDEN: Hi.
Es esmu Rob, un pieņemsim ceram, ka šis risinājums palīdz likt jums
ceļā uz atveseļošanos.
Tātad, pieņemsim sāktu.
>> Mēs redzam, ka tieši mēs esam tikai, lai pārliecinātos, ka mēs esam
izmantojot atgūt pareizi.
Tā lietošana ir vienkārši kaut kas piemēram, dot slash atgūt.
>> Tagad mēs esam gatavojas atvērt gaidāms card dot neapstrādātu failu.
Mēs redzam šeit, ka mēs izmantojam pastāvīga neapstrādāts pasvītrojums faila nosaukumu,
kas šeit mums ir hash definēta kā card dot izejvielas.
OK.
>> Tāpēc mums ir nepieciešams, lai pārliecinātos, ka tas sekmīgi uzsākta, jo, ja tas
nav, tad mums būtu jābrīdina lietotājs.
Bet, pieņemot, ka tas bija, mēs esam tagad gatavojas atzīt buferi izmēra JPEG
faila nosaukuma garums.
Tātad šis būs buferis, ka Mēs ejam, lai sprintf into.
>> Tātad, kas ir JPEG faila nosaukuma garums?
Šeit mēs redzam, ka tas ir hash definēta kā astoņi.
Tātad, kāpēc astoņi?
Nu ņemot vērā, fails tiks nosaukts kaut kā nulle nulle nulle.
JPG, un tad mums ir nepieciešams slīpsvītru nulles.
Tāpēc mums ir nepieciešams buferis, kas var saglabāt astoņas rakstzīmes.
Tagad mēs esam nāksies counter, kas ir gatavojas sekot
numurs JPEG mēs atradām.
>> Un visbeidzot, mēs esam nāksies JPEG failu, kas sākotnēji null
kas būs pašlaik atvērt failu, ka mēs esam rakstiski.
Tagad mēs esam nāksies papildus buferis.
Tas ir tas pats kā mūsu sprintf buferis, ja tas buferis ir viens
ka mēs lasāt datos No karti dot izejvielas.
>> Tāpēc buferis būs par neparakstīts simboli, ko jūs varat
būtībā tikai pret mums baiti, un tas ir būs no izmēra bloka izmērs
kur, kā mēs jums pastāstīt, bloka izmērs ir 512.
Tātad, JPEG jūs varat ārstēt visu kā blokiem 512 baitu.
>> Tagad mēs ejam uz cilpas visā failā.
Mēs ejam, lai f lasīt mūsu bufera vienu baitu bloka izmērs reizes no
card dot neapstrādātu failu.
Tagad Kāda f lasīt atgriezties?
Tā atgriež vienību skaitu ka tā veiksmīgi lasīt.
Tātad, ja tas ir izdevies izlasīt 512 baiti, tad Mēs gribam, lai redzētu, vai tas bija
JPEG vai rakstīt to JPEG failā.
Un, ja tas neatgriezās 512 baiti, Tad nu fails ir beidzies
un tādā gadījumā mēs izkļūt no y cilpa, vai ir daži no kļūdas veida
tādā gadījumā mēs arī izkļūt no y cilpa, bet mēs gribam, lai ziņotu
ka kaut kas nogāja greizi.
>> OK.
Tātad, pieņemot, ka mēs veiksmīgi nolasīt 512 baiti, mēs vēlamies, lai pirmo pārbaudi
lai šie baiti, ka mēs tikai lasīt sākt JPEG.
Tātad, ja ir JPEG header mūsu bufera.
Tagad Kas tas ir JPEG header dara?
Apskatīsim.
>> Šeit mēs redzam, ka šī funkcija ir atgriežoties bullis, un ka bullis -
arī šeit, mēs esam pārbaudi, lai noskaidrotu, vai header nulles vienāds ar šo konstanti un
header viens ir vienāds ar šo konstanti un header divi ir šo konstanti,
header trīs vienāds ar to vai šo nemainīgs, ja visi šie konstantes ir
tikai hash noteikts tieši šeit, un ir tieši tas, ko mēs teicām jums spec
ka JPEG sākas ar.
Un tāpēc šī funkcija ir tikai gatavojas atgriezties true, ja tas buferis ir
sākums jaunai JPEG un viltus citādi.
>> OK.
Tātad, ja tas nav veido jaunu JPEG, tad mēs vispirms vēlamies pārbaudīt, lai redzētu, vai
JPEG fails nav vienāds ar nulli, un tādā gadījumā mēs to aizvērtu.
Un tad kāpēc mums ir nepieciešams, lai pārbaudītu lai redzētu, vai tas nav null?
Nu pats pirmais JPEG, ka mēs atrast mums jau nav
atvērt JPEG failu.
Un tā, ja mēs cenšamies slēgt, ka pēc tam mēs nedarām kaut ko gluži labi.
>> Bet katrs nākamais JPEG ka mēs atveram, mēs vēlamies, lai aizvērtu
Iepriekšējais attēls.
Tāpēc tagad mēs esam gatavojas izmantot sprintf kā mēs teicu, ja mēs izmantojam
bufera JPEG faila nosaukumu.
Un mēs esam gatavojas izmantot JPEG failu nosaukt formātā kā mūsu formātā.
Un kas tas ir?
Šeit mēs redzam, ka tas ir procenti nulle 3D.JPEG kur nulles trīs tikko
saka, ka mēs izmantosim trīs skaitļu par to polsterētām ar nullēm.
Tātad, tas ir, kā mēs iegūtu nulle nulle one.JPEG un nulle 10.JPEG un tā tālāk.
>> Mēs ejam, lai izmantotu sprintf.
Un skaitlis, ko mēs esam ievietojot vērā virkne ir sastindzis JPEG
atgūti, kas sākotnēji nulli.
Tātad pirmais datne būs ir nulle nulle nulle dot JPEG.
Un tad mēs esam palielināšanai tā, lai Nākamais attēls mēs atveram būs nulle nulle
viens dot JPEG un mēs pieauguma to atkal tā tas būs nulle nulle divi dot
JPEG un tā tālāk.
>> Labi.
Tāpēc tagad iekšpusē JPEG failu nosaukums, mēs esam nosaukumu
fails, ko mēs gribam.
Mēs varam f atvērt šo failu rakstīšanai.
OK.
Un atkal, mums ir nepieciešams pārbaudīt, lai padarītu pārliecināts, ka fails veiksmīgi
atvērts, jo, ja tā nav, tad tur bija dažas kļūdas.
>> Tāpēc tagad mēs esam gotten pagātnē tas JPEG daļa.
Un šeit mēs redzam, mēs ejam rakstīt uz JPEG.
Bet mums vispirms ir šo pārbaudi, kas saka ja JPEG failā nav vienāda null.
Kāpēc mums ir nepieciešams, ka?
Nu JPEG failu vienāda null kad mēs pašlaik ir atvērts JPEG.
>> Ko darīt, ja karte dot izejvielas sākas ar ķekars baitu, kas
nerada JPEG?
Tad mēs esam gatavojas vēlaties izlaist pār šo baitu.
Ja mums nav šo pārbaudi, tad mēs esam gatavojas rakstīt neatvērts
failu pirmos 512 baitu karte, kas nav labi.
OK.
>> Tātad pieņemot, ka mums ir atvērt failu, tad mēs esam gatavojas rakstīt šo failu
512 baiti, kas mums ir mūsu buferis.
Un mēs atkal pārbaudes, lai pārliecināts, ka 512 baiti veiksmīgi
bija rakstīts, jo, ja tie nav veiksmīgi rakstīts, tad kaut
nogāja greizi.
Mēs aizvērt mūsu failus, drukāt, ka kaut kas nogāja greizi, un atgriešanās.
Pieņemot, ka viss iet pareizi, tad mēs turpinām looping slēgšanu
vecais fails, atverot jaunu failu, rakstot datus uz jaunu failu, un tā
gada līdz beidzot tas f lasīt atgriež nulli, kas nozīmē
ka fails tiek darīts.
>> Tāpēc tagad, ka karšu lasīšanas ir beidzies, mēs redzēt, ka mēs ejam, lai f slēgt
pēdējā faila, ka mums bija atvērts, bet mēs pārbaudīt, ja JPEG fails
nav vienāds null.
Nu f tuvu jēga, jo, mēs atvērt failus, mēs slēdzot
Iepriekšējais attēls, bet ļoti pēdējā failu, ka mēs atvērām nekad izpaužas slēgts.
Tātad tas, ko tas dara.
>> Bet kāpēc mums ir nepieciešams, lai pārbaudītu null?
Nu ko, ja karte dot jēlas nebija ir viens JPEG iekšpusē no tā?
Tādā gadījumā mums būtu nekad nav atvēris failu.
Un, ja mēs nekad atvērt failu, mums vajadzētu nav mēģināt slēgt šo failu.
Tātad tas, ko šī pārbaude dara.
>> Tagad šeit, kā es teicu iepriekš, mēs varētu ir izcēlies, ka y cilpu nu ja
karte ir beigusies, vai, ja ir dažas kļūdas lasot no kartes.
Tātad šis ir pārbaudīt, lai redzētu, vai tur bija lasīšanas kļūda no kartes, kas
tādā gadījumā, mēs sakām, ka bija kļūda lasījumā.
Mēs nevēlamies, lai lietotājs varētu domāt viss gāja veiksmīgi.
Un mēs atgrieztos viena kļūda.
>> Visbeidzot, mēs f slēgt mūsu neapstrādātu failu, Mūsu card dot izejvielas, lai norādītu, ka
viss gāja labi, un atgriešanās nulle, un tas arī viss.
>> Mans vārds ir Rob, un tas bija atgūt.
>> [Mūzikas atskaņošanai]