[Muzikavimo] ROB BOWDEN: Sveiki. Aš Robas, ir tikėkimės, kad šis sprendimas padeda padėti jums kelyje į atsigavimą. Taigi, galime pradėti. Mes matome, kad iš karto mes tiesiog įsitikinkite, kad mes naudojant atkurti teisingai. Taigi, naudojimas turėtų būti tik kažkas kaip taškas velniop atsigauti. Dabar mes ketiname atidaryti tikimasi skyriaus dot žaliavinio failą. Čia mes matome, kad mes naudojame pastovus žaliavos pabraukimo failo pavadinimas, kuris čia mes turime maišos apibrėžiamas kaip skyriaus dot žaliavos. Gerai. Taigi, mes turime įsitikinti, kad sėkmingai atidaryta, nes jei jis ne, tada turėtume įspėti vartotoją. Tačiau darant prielaidą, kad ji, mes dabar ketina paskelbti dydžio JPEG buferį Failo vardas ilgį. Taigi tai bus buferis, kad mes ketiname sprintf į. Taigi, kas yra JPEG failų pavadinimo ilgis? Čia matome, kad tai maišos apibrėžiamas kaip aštuonių. Tad kodėl aštuonių? Na pateikta byla bus pavadintas kažkas panašaus nulis nulis nulis. JPG ir tada mes turime Atgal nerijos velniop nulio. Taigi mums reikia buferio, kuris gali laikyti aštuonių simbolių. Dabar mes ketiname turėti skaitiklį, kad yra ketina sekti numeris JPEG mes radome. Ir pagaliau, mes ketiname turėti JPEG failas, kuris iš pradžių yra niekinis kurie bus šiuo metu atidaryti failo, kad mes raštu. Dabar mes ketiname turėti papildomas buferis. Tai ne tas pats, kaip mūsų sprintf buferio kur buferis yra vienas kad mes skaityti duomenų iš skyriaus dot žaliavos. Taigi buferis bus iš nepasirašytos simbolių, kuriuos galite iš esmės tik gydyti mums baitų, ir tai bus iš dydžio bloko dydis kur, kaip mes tau, bloko dydis yra 512. Taigi JPEG galite viską gydyti kaip blokų 512 baitų. Dabar mes ketiname kilpa per visą failą. Mes ketiname f skaityti į mūsų buferis vieną baitą bloko dydis kartus iš skyriaus dot žaliavinio failą. Dabar ką f skaityti grįžti? Ji grąžina prekių kiekį kad sėkmingai skaityti. Taigi, jei jis sugebėjo skaityti 512 baitų, tada mes norime išsiaiškinti, ar tai buvo JPEG arba rašyti jį į JPEG failą. Ir jei ji negrįžo 512 baitų, tada arba byla baigėsi tokiu atveju mes išeiti iš Y kilpa, arba yra keletas klaidų rūšiuoti tokiu atveju mes taip pat išeiti iš Y kilpa, bet mes norime pranešti kad kažkas negerai. Gerai. Taigi, darant prielaidą, kad mes sėkmingai skaityti į 512 baitų, norime pirmiausia patikrinkite padaryti, kad šie baitai, kad mes tik skaityti pradėti JPEG. Taigi, jei yra JPEG antraštė mūsų buferis. Dabar kas tai yra JPEG antraštės darai? Pažvelkime. Čia matome, kad ši funkcija yra grąžinant jautį, o jautis - gerai čia, mes patikrinti, pamatyti, jei antraštė nulis lygu tai konstanta ir antraštė vienas lygu tai konstanta ir antraštė du lygu tai konstanta, antraštė trys lygu tai ar tai pastovus, kai visi šie konstantos tik maišos apibrėžta čia ir yra ką mes jums papasakojo spec kad JPEG prasideda. Ir todėl ši funkcija yra tik ketina grąžina true, jei šis buferis yra naujos JPEG pradžia ir false kitaip. Gerai. Taigi, jei tai iš tiesų išreiškia naują JPEG, tada mes pirmą kartą noriu patikrinti, pamatyti, jei JPEG failas nėra lygus nulis, Tokiu atveju mes jį uždaryti. Ir tai kodėl mes turime patikrinti pamatyti, jei ji nėra nulis? Na pirmųjų JPEG kad mes rasti mes dar neturite atvira JPEG failą. Ir taip, jei mes stengiamės uždaryti, kad paskui mes ne daro kažką gana teisingai. Bet kiekvienas vėlesnis JPEG kad mes atviri, mes norime uždaryti Ankstesnis failas. Taigi dabar mes ketiname naudoti sprintf kaip mes sakiau, kai mes naudojame buferis JPEG failo pavadinimas. Ir mes ketiname naudoti JPEG failą Pavadinimas Formatas kaip mūsų formatu. Ir kas tai yra? Čia matome, kad ji yra lygi nuliui procentų 3D.JPEG kur nulis trys tik sako, kad mes naudojame tris sveikuosius skaičius tai kamšalu nuliais. Taigi tai, kaip mes gauti nulis nulis one.JPEG ir nulinės 10.JPEG ir pan. Mes ketiname naudoti sprintf. Ir sveikasis skaičius, kad mes įterpiant į eilutė yra nutirpęs JPEG atsigavo, o tai iš pradžių nulio. Taigi pirmoji byla, užvesta vyksta būti nulis nulis nulis taškų JPEG. Ir tada mes incrementing taip, kitą bylą mes atidaryti bus nulis nulis vienas taškas JPEG ir mes prieaugio jį vėl, todėl bus nulis nulis du taškas JPEG ir pan. Gerai. Taigi dabar JPEG failo viduje pavadinimas, mes turime vardą failą, kad mes norime. Mes galime f atidaryti tą failą raštu. Gerai. Ir vėl, mes turime patikrinti, kad įsitikinkite, kad failas sėkmingai atidaryti nes jei ne, tada ten buvo keletas klaidų. Taigi dabar mes Dotarłeś praeityje tai JPEG dalis. Ir čia mes matome, mes ketiname rašyti į JPEG. Bet pirmiausiai mes turime šį patikrinimą, kuriame sakoma, jei JPEG failas neatsidaro vienodą null. Kodėl mums reikia, kad? Na JPEG failas Lygu null, kai mes Šiuo metu atvirą JPEG. Ką daryti, jei kortelės dot žaliavos prasideda su baitais krūva, kad nekelia JPEG? Tada mes ketiname norite praleisti per tuos baitus. Jei mes neturime šį patikrinimą, tada mes ketina rašyti neatidarytas pateikti pirmuosius 512 baitų kortelė, kuri nėra gera. Gerai. Taigi, darant prielaidą, kad mes turime atvirą failą, tada mes ketiname rašyti šį failą 512 baitų, kad mes turime mūsų buferis. Ir mes vėl tikrinti, kad įsitikinkite, kad 512 baitų sėkmingai buvo parašyta, nes jei jie nebuvo sėkmingai parašyta, tada kažkas nutiko. Mes užmerkti failus, spausdinti, kad kažkas negerai, ir grąža. Darant prielaidą, kad viskas teisingai, tada mes nuolat vyrių uždarymo senas failas, atidarant naują failą, rašymas duomenis į naują failą, ir todėl , kol, pagaliau, tai f skaityti grąžina nulį, kuris reiškia kad failas yra padaryta. Taigi dabar, kad kortelės skaitymas yra daugiau, mes matyti, kad mes ketiname f uždaryti paskutinį failą, kad mes turėjome atidaryti, bet mes tikrinti, ar JPEG failą nėra vienodas null. Na f arti prasminga, nes, kaip mes atidaryti failus, mes uždarymo Ankstesnis failas, bet pats paskutinis failą, kad mes atidarėme niekada pasireiškia uždarytas. Štai kas tai daro. Bet kodėl mes turime patikrinti null? Na ką, jei kortelės dot žaliava nebuvo turėti vieną JPEG viduje jo? Tokiu atveju, mes turėtume niekada atidaryti failą. Ir jei mes niekada atidaryti failą, turėtume ne bandyti uždaryti tą failą. Štai ką šis tikrinimas daro. Dabar čia, kaip minėjau anksčiau, mes galime lūžo dėmesį, kad y kilpa arba jei kortelė pasibaigė ar yra kai klaida skaitant iš kortelės. Taigi, tai yra patikrinti, pamatyti, jei ten buvo skaityti iš kortelės, iš klaidų Tokiu atveju, mes ten sako buvo nuskaitymo klaida. Mes nenorime, kad vartotojas galėtų galvoti viskas sėkmingai nuėjo. Ir mes vėl viena ir klaidos. Galiausiai, mes f uždaryti mūsų žaliavinio failą, mūsų skyriaus dot žalias, siekiant nurodyti, kad viskas buvo gerai ir grąžinimas nulis ir viskas. Mano vardas yra Rob ir tai buvo susigrąžinti. [Muzikavimo]