[MUSIC nagpe-play] Rob BOWDEN: Hi. Ako Rob, at ni Umaasa hayaan na solusyon na ito ay tumutulong sa ilagay mo sa kalsada sa pagbawi. Kaya sabihin makapagsimula. Nakita namin na agad kami upang tiyakin lamang na kami ay Ibalik muli ang gumagamit ng tama. Kaya dapat na lamang ang paggamit ng isang bagay tulad ng tuldok slash mabawi. Ngayon kami ay pagpunta upang buksan ang inaasahan dot raw file card. Nakakakita kami dito na ginagamit namin ang pare-pareho ang file name raw salungguhit, saan dito ang mayroon kami ng hash tinukoy bilang card dot raw. OK. Kaya kailangan namin upang matiyak na na Matagumpay na binuksan dahil kung ito ay hindi, pagkatapos ay dapat naming bigyan ng babala ang user. Ngunit sa pag-aakala na ito ginawa, hindi namin ngayon pagpunta na idedeklara isang buffer ng laki JPEG maghain haba pangalan. Kaya ito ay magiging ang buffer na kami ay pagpunta sa sprintf sa. Kaya kung ano ay JPEG file haba pangalan? Hanggang dito, makikita natin na ito ay hash tinukoy bilang walo. Kaya bakit walo? Well isang naibigay na file ay pinangalanang isang bagay tulad ng zero zero zero. JPG at pagkatapos ay kailangan namin ng isang backslash zero. Kaya kailangan namin ng isang buffer na maaari mag-imbak ng walong mga character. Ngayon kami ay pagpunta sa magkaroon ng isang counter na pagpunta upang masubaybayan ang bilang JPEG na natagpuan namin. At sa wakas, kami ay pagpunta sa may JPEG file na kung saan ay sa simula null na kung saan ay pagpunta sa maging ang kasalukuyang mabuksan ang file na kami ay sumusulat upang. Ngayon kami ay pagpunta sa may dagdag na buffer. Ito ay hindi katulad ng aming sprintf buffer kung saan ito buffer ay ang isa na aming pagbabasa sa data mula sa card dot raw. Kaya ang buffer ay magiging ng unsigned char, kung saan maaari kang talaga ituturing lamang sa amin bytes, at ito ay pagpunta sa maging ng laki laki bloke kung saan, bilang sabihin namin sa iyo, bloke laki ay 512. Kaya ang mga JPEG na maaari mong ituring ang lahat ng bagay bilang mga bloke ng 512 bytes. Ngayon kami ay pagpunta sa loop sa ibabaw ng buong file. Kami ay pagpunta sa f basahin sa aming buffer isang solong beses ang laki ng bloke byte mula sa dot raw file sa card. Ngayon ano ang f basahin bumalik? Ibinabalik nito ang bilang ng mga item na matagumpay itong basahin. Kaya kung pinamamahalaang ito na basahin ang 512 bytes, pagkatapos ay nais naming makita kung ito ay isang JPEG o isulat ito sa isang JPEG file. At kung hindi ito bumalik 512 bytes, pagkatapos alinman ang file ay natapos sa kung saan ipapakita namin masira out sa y loop, o mayroong ilang mga uri ng mga error kung saan gagamitin din namin masira out sa y loop, ngunit gagamitin namin nais na mag-ulat na may nangyaring mali. OK. Kaya sa pag-aakala na matagumpay naming basahin sa 512 bytes, nais naming unang tseke upang gawin na ang mga bytes na namin basahin lamang sa magsimula ng isang JPEG. Kaya kung ang JPEG header ng aming buffer. Ngayon ano ito ay JPEG header ginagawa? Tingnan natin Hayaang. Hanggang dito, nakita namin na ito function ay bumabalik isang toro, at na toro - na rin dito, kami ng pagsuri upang makita kung header zero ay katumbas ito pare-pareho at header isa ay katumbas ito pare-pareho at Header ng dalawang katumbas ito pare-pareho, Header ng tatlong katumbas na ito o ito pare-pareho kung saan ang lahat ng mga constants ay hash lamang tinukoy dito mismo at ang mga eksakto kung ano ang sinabi namin sa iyo sa spec na isang JPEG ay nagsisimula sa. At kaya ito function ay pagpunta lamang sa nagbabalik ng tunay na kung ito ay kumakatawan sa buffer sa simula ng isang bagong JPEG at hindi totoo kung hindi man. OK. Kaya kung ito ang kumakatawan sa isang bagong JPEG, pagkatapos namin gusto munang suriin upang makita kung JPEG file ay hindi kapantay sa null, sa kasong ito isara namin ito. At kaya bakit kailangan naming suriin upang makita kung ito ay hindi null? Well ang pinakaunang JPEG na namin makahanap ng hindi namin na magkakaroon ng isang open JPEG file. At kaya, kung sinusubukan naming isara na, pagkatapos ay Hindi namin paggawa ng isang bagay masyadong tama. Subalit ang bawat kasunod na JPEG na buksan namin, gusto naming isara ang nakaraang file. Kaya ngayon kami ay pagpunta sa gamitin sprintf bilang namin Sinabi bago kung saan ginagamit namin ang buffer JPEG file name. At kami ay pagpunta sa gamitin JPEG file pangalanan format bilang aming mga format. At kung ano ay na? Hanggang dito, makikita natin na ito ay porsyento zero 3D.JPEG kung saan ang zero tatlo lamang sabi na gagamitin namin tatlong integer para sa may palaman na may mga zero. Kaya ito ay kung paano aasikasuhin namin zero zero one.JPEG at zero 10.JPEG at iba pa. Kami ay pagpunta sa gumamit ng sprintf. At ang integer na aming pagpasok sa string ay manhid ang mga JPEG na nakuhang muli, na kung saan ay orihinal na zero. Kaya binuksan ang unang file ay pagpunta upang maging zero zero JPEG zero na tuldok. At pagkatapos kami ay incrementing ito nang sa gayon ang susunod na file buksan namin zero zero isa na tuldok na JPEG at kami dinagdagan ito muli sa gayon ito ay zero zero dalawang tuldok JPEG at iba pa. Ayos lang. Kaya ngayon ang loob ng JPEG file pangalanan, mayroon kaming ang pangalan ng mag-file na gusto namin. Maaari f namin buksan na file para sa pagsusulat. OK. At sa sandaling muli, kailangan naming suriin upang Tiyakin na matagumpay ang file binuksan dahil kung ginawa ito hindi, pagkatapos ay nagkaroon ng ilang mga error. Kaya ngayon na nakuha namin ang nakaraan ay ito ng isang bahagi ng JPEG. At dito, makikita natin kami ay pagpunta na magsulat sa JPEG. Ngunit muna naming magkaroon check ito na sabi kung JPEG file ay hindi katumbas null. Bakit kailangan namin na? Well JPEG file ay katumbas null kailan namin Kasalukuyang mayroon ng isang bukas na JPEG. Paano kung card tuldok raw mga pagsisimula may isang bungkos ng mga byte na huwag kumakatawan sa isang JPEG? Pagkatapos kami ay pagpunta sa nais na laktawan sa paglipas ng mga bytes. Kung wala kaming ang pagsusuring ito, pagkatapos kami ay pagpunta sa magsulat sa isang di pa nabubuksang maghain ng unang 512 bytes ng ang card na kung saan ay hindi mabuti. OK. Kaya kung ipagpalagay na mayroon kami ng isang bukas na file, pagkatapos ay kami ay pagpunta sa sumulat sa file na iyon ang 512 bytes na mayroon kami sa aming buffer. At kami ay isang beses muli pagsuri upang gawing Tiyakin na ang 512 bytes matagumpay ay nakasulat dahil kung hindi Matagumpay na nakasulat, pagkatapos ng isang bagay nangyaring mali. Susubukan naming isara ang aming mga file, i-print na may nangyaring mali, at pagbalik. Mangyaring hindi tama ang pag-aako ng lahat ng bagay, at pagkatapos ay magtatago kami ng looping isinasara ang lumang file, pagbubukas ng bagong file, pagsulat data sa bagong file, at sa gayon sa hanggang sa wakas, ito f basahin Ibinabalik ng zero na paraan na ang file ay tapos na. Kaya ngayon na ang card pagbabasa ay higit sa, namin makita na kami ay pagpunta sa f isara ang huling file na namin ay may bukas, ngunit kami Sinusuri kung JPEG file hindi pantay null. Well ang f malapit saysay dahil bilang naka pagbukas namin ng mga file, kami ay pagsasara ang nakaraang file, ngunit ang napaka-huling file na namin nabuksan hindi kailanman ay makakakuha ng sarado. Kaya na kung ano ito ay ginagawa. Ngunit kung bakit kailangan namin upang suriin para sa null? Well paano kung card tuldok raw ginawang hindi magkaroon ng iisang JPEG sa loob nito? Sa kasong iyon, gusto naming magkaroon Hindi kailanman binuksan ang isang file. At kung hindi namin mabuksan ang isang file, dapat namin hindi subukan upang isara ang file na iyon. Kaya na kung ano ang ginagawa ang check. Ngayon dito, tulad ng sinabi ko dati, magagawa namin Nabalian out na y loop alinman sa kung Nagwakas na ang card o kung may mga ang ilang mga error sa pagbabasa mula sa card. Kaya ito ay pag-check upang makita kung nagkaroon isang error sa pagbabasa mula sa card, sa Kung saan, magpapadala kami nating mayroong isang error sa pagbabasa. Hindi namin gusto ang user mag-isip Matagumpay na nagpunta ang lahat. At magbabalik kami ng isa para sa error. Sa wakas, makikita namin f isara ang aming mga raw file, ang aming card dot raw, upang isaad na nagpunta na rin at balik lahat ng bagay ZERO at iyon ito. Ang pangalan ko ay Rob at ito ay Ibalik muli. [MUSIC nagpe-play]