[MUZIKO Ludanta] ROB Bowden: Hi. Mi Rob, kaj ni esperas, ke tiu solvo helpas meti vin sur la vojo al resaniĝo. Do ni komencu. Ni vidas, ke tuj ni estas nur por certigi ke ni estas uzante Rekuperi korekte. Do la uzado devas esti nur io kiel skalara oblikvo resanigxos. Nun ni iras malfermi la atendata karto dot kruda dosiero. Oni vidas ĉi tie ke ni uzas la konstanta krudan substreko dosiernomo, kiuj ĝis ĉi tie ni havas hash difinita kiel karto dot krudan. OK. Tial oni devas certigi, ke tiu sukcese malfermis ĉar se ĝi ne, tiam ni devus averti la uzanton. Sed supozante, ke ĝi faris, ke ni estas nun tuj deklari buffer de grandeco JPEG dosiernomo longa. Do tiu tuj estos la buffer ke Ni tuj sprintf en. Do kio estas JPEG dosiero nomo longo? Ĝis ĉi tie, oni vidas ke ĝi estas hash difinita kiel ok. Do kial ok? Nu donita dosiero estos nomata iu kiel nulo nulo nulo. JPG kaj tiam ni bezonas backslash nulo. Do ni bezonas buffer kiuj neniom stoki ok literojn. Nun ni tuj havos nombrilo tio tuj sekvigi la numeron JPEG-oj ni trovis. Kaj fine, ni tuj havos JPEG-dosiero kiu estas komence nula kiu iras al la aktuale malfermita dosiero kiun ni skribas al. Nun ni tuj havos plia bufro. Ĉi tio ne estas la sama kiel nia sprintf buffer kie ĉi bufro estas kiuj ni legas en la datumoj el la karto dot krudan. Do la bufro iras esti de sensigna signoj, kiujn vi povas esence nur traktos ni bajtoj, kaj ĝi estas tuj estos de grandeco bloko grandeco kie, kiel ni diras al vi, bloko grandeco estas 512. Do JPEG-oj vi povas trakti ĉiun kiel blokoj de 512 bajtoj. Nun ni iras al buklo super la tuta dosiero. Ni iras al f legis en nian buffer sola bajto bloko grandeco tempoj de la karto dot kruda dosiero. Nun kion signifas f legu reveni? Ĝi redonas la nombron da eroj ke ŝi sukcese legi. Do, se ĝi sukcesis legi 512 bitokoj, tiam ni volas vidi, ĉu ĉi tio estis JPEG aŭ skribi ĝin al JPEG-dosiero. Kaj se tio ne revenos 512 bitokoj, do ĉu la dosiero finiĝis en tiaokaze ni rompos el la y buklo, aŭ tie estas ia eraro tiaokaze ni ankaŭ rompi la y buklo, sed ni deziras raporti ke io misfunkciis. OK. Do alprenanta ke ni sukcese legi en 512 bitokoj, ni volas unue ĉeko fari ke tiuj bitokoj, ke ni ĵus legis en komenci JPEG. Do se estas JPEG kaplinio de nia bufro. Nun kio estas JPEG kaplinio faras? Ni rigardu. Ĝis ĉi tie, oni vidas ke tiu funkcio estas reveninte taŭro, kaj tiu taŭro - bone ĉi tie, ni kontrolas, se kaplinio nulo egalas tiu konstanta kaj kaplinio unu egalas tiu konstanta kaj kaplinio du egalas ĉi konstanto, kaplinio tri egalas tiun aŭ ĉi konstanto kie ĉiuj ĉi tiuj konstantoj estas nur hash difinita ĝuste ĉi tie kaj estas ekzakte kion ni rakontis al vi en la spec ke JPEG komencas kun. Kaj do ĉi tiu funkcio estas nur tuj return true, se ĉi buffer reprezentas la komencon de nova JPEG kaj falsaj alie. OK. Do se tiu faras reprezenti novajn JPEG, do ni unue volas kontroli por vidi se JPEG-dosiero ne estas egala al nula, tiaokaze ni fermas ĝin. Kaj do kial ni devas kontroli por vidi, ĉu ĝi ne estas nula? Nu la unua JPEG, ke ni trovi ni ne jam havas malfermita JPEG-dosiero. Kaj do, se ni provos fermi ke, tiam ni ne faras ion tute pravas. Sed ĉiu posta JPEG ke ni malfermos, ni volas fermi la antaŭan dosieron. Do nun ni tuj uzi sprintf kiel ni antauxe diris, kie ni uzas la buffer JPEG dosiero nomon. Kaj ni tuj uzi JPEG dosieron nomumi formato kiel nia formato. Kaj kio estas tio? Ĝis ĉi tie, oni vidas ke ĝi estas procento nulo 3D.JPEG kie la nulo tri ĝuste diras, ke ni uzos tri entjeroj por ĉi vatitaj per nuloj. Do jen kiel ni akiros nulo nulo one.JPEG kaj nulo 10.JPEG kaj tiel plu. Ni tuj uzi sprintf. Kaj la entjeraj kiuj ni enmeto en la cxeno estas Numb JPEG-oj reakiris, kiuj estas origine nulo. Do la unua dosiero malfermiĝis tuj esti nulo nulo nulo dot JPEG. Kaj tiam ni pliigante tiel la sekvanta dosieron ni malfermu estos nulo nulo unu punkto JPEG kaj ni pliigo ĝi denove tiel ĝi estos nulo nulo du punktoj JPEG kaj tiel plu. Ĉiuj pravas. Do nun interne de JPEG dosieron nomo, ni havas la nomon de la dosieron kiun ni deziras. Ni povas f malfermu tiun dosieron por skribi. OK. Kaj denove, ni bezonas kontroli por fari certas, ke la dosiero sukcese malfermis ekde se gxi ne faris tion, tiam tie estis iu eraro. Do nun ni jam alvenintaj preter la Ĉu tio estas JPEG parto. Kaj tie, ni vidas ni iras skribi al la JPEG. Sed ni unue havas tiun ĉekon kion diras se JPEG-dosiero ne egalas nula. Kial ni bezonas tion? Nu JPEG-dosiero egalas nula kiam ni aktuale havas malferman JPEG. Kio se karto dot krudan komenciĝas kun fasko da bajtoj, ke ne reprezentas JPEG? Tiam ni tuj volas salti super tiuj bitokoj. Se ni ne havas tiun ĉekon, tiam ni estas tuj skribos al sen malfermi fajli la unuaj 512 bitokoj de la karto, kio ne estas bona. OK. Do supozante ni havas malfermitan dosieron, tiam Ni tuj skribos al tiu dosiero la 512 bitokoj kiuj ni havi en niaj bufro. Kaj ni refoje kontrolanta fari certas, ke la 512 bitokoj sukcese estis skribita ĉar se ili ne estis sukcese skribite poste ion iris malbone. Ni devos fermi niajn dosierojn, presi, ke io iris malbone, kaj reveno. Supozante ĉio iras korekte, tiam Ni devos teni looping fermante la malnovan dosieron, malfermi la novan dosieron, skribado datumojn al la nova dosiero, kaj tiel plu ĝis fine, ĉi f legi Revenas nulo kion signifas ke la dosiero estas farita. Do nun, ke la karto legado estas finita, ni vidas, ke ni iras al f fermi la lastan dosieron, ke ni havis malferman, sed ni kontrolanta se JPEG dosieron ne egala nula. Nu la f proksima havas sencon ĉar kiel ni malfermi dosierojn, ni fermante la antaŭan dosieron, sed la lasta dosiero ni malfermis neniam gets closed. Do, tio estas kion tiu faras. Sed kial ni bezonas por kontroli nula? Nu kion se karto dot krudan ne havi solan JPEG interne de gxi? En tiu kazo, ni havus neniam malfermis dosieron. Kaj se ni neniam malfermi dosieron, ni devus Ne provu fermi tiun dosieron. Do jen, kio estas tiu ĉeko estas faranta. Nun ĉi tie, kiel mi diris antaŭe, ni povis jam ekfloris ke y buklo ĉu se la karto finiĝis aŭ se ekzistas iu eraro legado de la karto. Do tiu estas kontrolanta vidi ĉu estis eraro legado de la karto, en tiaokaze, ni diros, ke tie Estis eraro legado. Ni ne volas ke la uzanto pensi ĉiu iris sukcese. Kaj ni revenos unu por eraro. Fine, ni f fermi niajn dosiero kruda, nia karto dot krudaj, por indiki ke ĉio iris bone kaj reveno nulo kaj tio estas ĝi. Mia nomo estas Rob kaj tio estis sanigita. [MUZIKO Ludanta]