[Daqq tal-mużika] ROB BOWDEN: Hi. Jien Rob, u ejja tama li din is-soluzzjoni jgħin tpoġġi lilek fit-triq għall-irkupru. Mela ejja tibda. Naraw li immedjatament aħna qed biss biex tiżgura li aħna qed jużaw Tirkupra korrett. Allura l-użu għandu jkun biss xi ħaġa bħal dot slash jirkupraw. Issa aħna qed tmur biex tiftaħ il-mistennija karta dot fajl prima. Naraw hawnhekk li aħna qed tuża l- isem ta 'fajl kostanti underscore prima, li up hawnhekk għandna hash definit bħala karta dot prima. OK. Allura aħna bżonn tagħmel ċert li din miftuħa b'suċċess għaliex jekk ma, allura għandna twissi lill-utent. Iżda jekk wieħed jassumi li hija għamlet, aħna qed issa ser tiddikjara buffer mid-daqs JPEG fajl tul isem. Allura dan se jkun l-buffer li aħna qed tmur biex sprintf fis. Allura x'inhi JPEG fajl tul isem? Up hawn, naraw li huwa hash definit bħala tmienja. Allura għaliex tmien? Well fajl mogħti se jkun jisimha xi ħaġa bħal zero zero zero. JPG u mbagħad għandna bżonn backslash żero. Allura għandna bżonn buffer li jistgħu jaħżnu tmien karattri. Issa aħna qed tmur biex jkollhom counter li l- se jżommu rekord ta ' JPEGs numru sibna. U fl-aħħarnett, aħna qed tmur biex ikollhom Fajl JPEG li hija inizjalment null li se tkun l-preżent fajl miftuħ li aħna qed miktub lill. Issa aħna qed tmur biex ikollhom buffer addizzjonali. Din mhix l-istess bħal sprintf tagħna buffer fejn dan buffer hija dik li aħna qed qari fid-dejta mill-card dot prima. Allura l-buffer se tkun ta ' Chars mhux iffirmat, li tista ' bażikament biss jittrattaw lilna bytes, u huwa ser ikunu ta 'daqs daqs blokk fejn, kif aħna jgħidlek, daqs blokk huwa 512. Allura JPEGs inti jista 'jikkura kollox bħala blokki ta '512 bytes. Issa aħna qed tmur biex loop fuq il-fajl kollu. Aħna ser f jaqraw fis buffer tagħna il-darba daqs blokk byte wieħed minn il-karta dot fajl prima. Issa dak ma f jaqraw ritorn? Dan jirritorna l-għadd ta 'oġġetti li jinqara b'suċċess. Mela jekk huwa rnexxielu jaqra 512 bytes, allura irridu naraw jekk dan kien JPEG jew tikteb lil fajl JPEG. U jekk ma reġgħux lura 512 bytes, imbagħad jew l-fajl ikun intemm f'liema każ aħna ser toħroġ 'il barra y loop, jew hemm xi tip ta 'żball f'liema każ aħna ser break wkoll minn il-linja y, imma aħna inneħħu jridu jirrappurtaw li xi ħaġa marret ħażin. OK. Allura jekk wieħed jassumi li aħna b'suċċess taqra fil 512 bytes, irridu l-ewwel verifika biex jagħmlu li dawn bytes li aħna aqra biss fi tibda JPEG. Mela jekk huwa header JPEG ta 'buffer tagħna. Issa għalxiex header JPEG tagħmel? Ejja nħarsu. Up hawn, naraw li din il-funzjoni huwa jirritornaw barri, u li bull - sew hawnhekk, aħna qed verifika biex tara jekk header żero ugwali din kostanti u header wieħed ugwali din kostanti u header tnejn ugwali din kostanti, header tliet ugwali dan jew din kostanti fejn dawn kostanti kollha huma biss hash definit dritt hawn u huma eżattament dak li aħna qallek fil-spec li JPEG jibda bil. U għalhekk din il-funzjoni huwa biss se ritorn minnu jekk dan buffer jirrappreżenta il-bidu ta 'JPEG ġdida u falza mod ieħor. OK. Hekk jekk dan ma jirrappreżenta JPEG ġdid, allura aħna l-ewwel trid tikkontrolla biex tara jekk Fajl JPEG mhuwiex ugwali għal null, f'liema każ aħna jingħalaq. U hekk għaliex għandna bżonn li jiċċekkja biex tara jekk mhuwiex null? Ukoll l-ewwel JPEG li aħna ssib aħna mhux se diġà għandhom fajl JPEG miftuħ. U għalhekk, jekk nippruvaw li tagħlaq dan, allura aħna mhux qed tagħmel xi ħaġa tajba ħafna. Iżda kull JPEG sussegwenti li aħna miftuħa, irridu li tagħlaq il-fajl preċedenti. Allura issa aħna qed tmur għall-użu sprintf kif aħna intqal qabel fejn aħna qed tuża l- isem ta 'fajl buffer JPEG. U aħna qed tmur għall-użu fajl JPEG isem format bħala format tagħna. U dak huwa li? Up hawn, naraw li huwa żero fil-mija 3D.JPEG fejn il-kontrolli żero biss jgħid li aħna ser tuża t-tliet numri interi għal dan padded żerijiet. Allura dan huwa kif aħna ser tikseb zero zero one.JPEG u żero 10.JPEG u l-bqija. Aħna ser jużaw sprintf. U n-numru sħiħ li aħna qed ddaħħal fis-sekwenza huwa JPEGs numb rkuprati, li hija oriġinarjament żero. Allura l-ewwel fajl miftuħ va li huma żero zero zero dot JPEG. U allura aħna qed inkrementazzjoni hekk il- fajl li jmiss aħna miftuħa se jkun żero żero wieħed dot JPEG u aħna ser inkrement huwa -ġdid sabiex dan ser ikun żero zero tnejn dot JPEG u l-bqija. Kull dritt. Allura issa l-ġewwa tal-fajl JPEG isem, aħna għandna l-isem tal- fajl li rridu. Nistgħu f 'tiftaħ dan il-fajl għall-kitba. OK. U għal darb'oħra, għandna bżonn li jivverifika sabiex ikun żgur li l-fajl b'suċċess miftuħa peress li jekk dan ma kienx, allura kien hemm xi żball. Allura issa aħna ve gotten passat il- dan huwa parti JPEG. U hawn, naraw aħna qed tmur biex jikteb lill-JPEG. Iżda aħna l-ewwel ikollhom dan il-kontroll li jgħid jekk fajl JPEG ma null ugwali. Għaliex għandna bżonn dan? Well fajl JPEG ugwali null meta aħna bħalissa għandhom JPEG miftuħa. X'jiġri jekk jibda prima card dot bil-mazz ta 'bytes li ma jirrappreżentawx JPEG? Imbagħad aħna qed tmur jridu skip fuq dawk bytes. Jekk aħna ma jkollhomx dan il-kontroll, allura aħna qed ser jikteb għal mhux miftuħ fajl l-ewwel 512 bytes ta ' il-karta li mhix tajba. OK. Allura jekk wieħed jassumi għandna fajl miftuħ, imbagħad aħna qed tmur biex jiktbu lill dan il-fajl tal- 512 bytes li għandna fil-buffer tagħna. U aħna qed darb'oħra verifika biex tagħmel żgurat li l-512 bytes b'suċċess kienu miktuba għaliex jekk dawn ma kinux b'suċċess bil-miktub, allura xi ħaġa marret ħażin. Aħna ser jagħlqu fajls tagħna, jistampa li xi ħaġa li marret ħażin, u r-ritorn. Jekk wieħed jassumi li kollox imur sew, allura aħna ser iżommu looping għeluq tal- fajl qodma, jiftaħ il-fajl ġdid, bil-miktub data lill-fajl ġdid, u għalhekk fuq sakemm finalment, dan f jaqraw prospetti żero li mezzi li l-fajl isir. Allura issa li l-qari card huwa fuq, aħna tara li aħna qed tmur biex f tagħlaq il- aħħar file li kellna miftuħa, iżda aħna qed iċċekkjar jekk fajl JPEG ma null mhux ugwali. Ukoll l-f qrib jagħmel sens għaliex kif aħna qed jiftħu l-fajls, aħna qed jagħlqu il-fajl preċedenti, iżda l-aħħar ħafna fajl li aħna miftuħa qatt gets magħluqa. Allura dak hu li din qed tagħmel. Iżda għaliex għandna bżonn li jiċċekkja għal null? Ukoll jekk dak card dot prima ma jkollhom JPEG wieħed ġewwa ta 'dan? F'dak il-każ, rridu naraw qatt fetaħ fajl. U jekk aħna qatt jiftaħ fajl, għandna ma tippruvax li tagħlaq dan il-fajl. Allura dak hu li dan il-kontroll qed tagħmel. Issa hawnhekk, kif għidt qabel, nistgħu jkunu maqsuma li loop y jew jekk il-karta tkun intemmet jew jekk ikun hemm xi żball qari mill-biljett. Allura dan huwa verifika biex tara jekk kien hemm żball qari mill-karta, fl f'liema każ, aħna ser jgħidu li hemm kien qari żball. Aħna ma rridux-utent biex jaħsbu kollox mexa b'suċċess. U aħna ser terġa 'lura waħda għal żball. Fl-aħħarnett, aħna ser f qrib fajl prima tagħna, karta tagħna dot prima, li jindika li kollox marru tajjeb u r-ritorn żero u thats it. Jisimni Rob u dan kien Jirkupra. [Daqq tal-mużika]