1 00:00:00,000 --> 00:00:00,494 2 00:00:00,494 --> 00:00:13,350 >> [Daqq tal-mużika] 3 00:00:13,350 --> 00:00:14,080 >> ROB BOWDEN: Hi. 4 00:00:14,080 --> 00:00:17,550 Jien Rob, u ejja tama li din is-soluzzjoni jgħin tpoġġi lilek 5 00:00:17,550 --> 00:00:19,600 fit-triq għall-irkupru. 6 00:00:19,600 --> 00:00:22,700 Mela ejja tibda. 7 00:00:22,700 --> 00:00:25,660 >> Naraw li immedjatament aħna qed biss biex tiżgura li aħna qed 8 00:00:25,660 --> 00:00:27,170 jużaw Tirkupra korrett. 9 00:00:27,170 --> 00:00:31,490 Allura l-użu għandu jkun biss xi ħaġa bħal dot slash jirkupraw. 10 00:00:31,490 --> 00:00:35,500 >> Issa aħna qed tmur biex tiftaħ il-mistennija karta dot fajl prima. 11 00:00:35,500 --> 00:00:39,740 Naraw hawnhekk li aħna qed tuża l- isem ta 'fajl kostanti underscore prima, 12 00:00:39,740 --> 00:00:44,200 li up hawnhekk għandna hash definit bħala karta dot prima. 13 00:00:44,200 --> 00:00:45,030 OK. 14 00:00:45,030 --> 00:00:48,210 >> Allura aħna bżonn tagħmel ċert li din miftuħa b'suċċess għaliex jekk 15 00:00:48,210 --> 00:00:51,150 ma, allura għandna twissi lill-utent. 16 00:00:51,150 --> 00:00:56,770 Iżda jekk wieħed jassumi li hija għamlet, aħna qed issa ser tiddikjara buffer mid-daqs JPEG 17 00:00:56,770 --> 00:00:58,170 fajl tul isem. 18 00:00:58,170 --> 00:01:02,060 Allura dan se jkun l-buffer li aħna qed tmur biex sprintf fis. 19 00:01:02,060 --> 00:01:04,360 >> Allura x'inhi JPEG fajl tul isem? 20 00:01:04,360 --> 00:01:08,490 Up hawn, naraw li huwa hash definit bħala tmienja. 21 00:01:08,490 --> 00:01:10,670 Allura għaliex tmien? 22 00:01:10,670 --> 00:01:15,150 Well fajl mogħti se jkun jisimha xi ħaġa bħal zero zero zero. 23 00:01:15,150 --> 00:01:19,460 JPG u mbagħad għandna bżonn backslash żero. 24 00:01:19,460 --> 00:01:22,720 Allura għandna bżonn buffer li jistgħu jaħżnu tmien karattri. 25 00:01:22,720 --> 00:01:25,190 Issa aħna qed tmur biex jkollhom counter li l- se jżommu rekord ta ' 26 00:01:25,190 --> 00:01:27,780 JPEGs numru sibna. 27 00:01:27,780 --> 00:01:31,590 >> U fl-aħħarnett, aħna qed tmur biex ikollhom Fajl JPEG li hija inizjalment null 28 00:01:31,590 --> 00:01:35,920 li se tkun l-preżent fajl miftuħ li aħna qed miktub lill. 29 00:01:35,920 --> 00:01:37,540 Issa aħna qed tmur biex ikollhom buffer addizzjonali. 30 00:01:37,540 --> 00:01:41,350 Din mhix l-istess bħal sprintf tagħna buffer fejn dan buffer hija dik 31 00:01:41,350 --> 00:01:45,020 li aħna qed qari fid-dejta mill-card dot prima. 32 00:01:45,020 --> 00:01:48,900 >> Allura l-buffer se tkun ta ' Chars mhux iffirmat, li tista ' 33 00:01:48,900 --> 00:01:53,560 bażikament biss jittrattaw lilna bytes, u huwa ser ikunu ta 'daqs daqs blokk 34 00:01:53,560 --> 00:01:57,950 fejn, kif aħna jgħidlek, daqs blokk huwa 512. 35 00:01:57,950 --> 00:02:03,070 Allura JPEGs inti jista 'jikkura kollox bħala blokki ta '512 bytes. 36 00:02:03,070 --> 00:02:05,890 >> Issa aħna qed tmur biex loop fuq il-fajl kollu. 37 00:02:05,890 --> 00:02:12,980 Aħna ser f jaqraw fis buffer tagħna il-darba daqs blokk byte wieħed minn 38 00:02:12,980 --> 00:02:14,710 il-karta dot fajl prima. 39 00:02:14,710 --> 00:02:16,630 Issa dak ma f jaqraw ritorn? 40 00:02:16,630 --> 00:02:20,050 Dan jirritorna l-għadd ta 'oġġetti li jinqara b'suċċess. 41 00:02:20,050 --> 00:02:27,310 Mela jekk huwa rnexxielu jaqra 512 bytes, allura irridu naraw jekk dan kien 42 00:02:27,310 --> 00:02:29,700 JPEG jew tikteb lil fajl JPEG. 43 00:02:29,700 --> 00:02:34,450 U jekk ma reġgħux lura 512 bytes, imbagħad jew l-fajl ikun intemm 44 00:02:34,450 --> 00:02:37,870 f'liema każ aħna ser toħroġ 'il barra y loop, jew hemm xi tip ta 'żball 45 00:02:37,870 --> 00:02:40,300 f'liema każ aħna ser break wkoll minn il-linja y, imma aħna inneħħu jridu jirrappurtaw 46 00:02:40,300 --> 00:02:41,990 li xi ħaġa marret ħażin. 47 00:02:41,990 --> 00:02:42,290 >> OK. 48 00:02:42,290 --> 00:02:47,630 Allura jekk wieħed jassumi li aħna b'suċċess taqra fil 512 bytes, irridu l-ewwel verifika 49 00:02:47,630 --> 00:02:53,070 biex jagħmlu li dawn bytes li aħna aqra biss fi tibda JPEG. 50 00:02:53,070 --> 00:02:56,430 Mela jekk huwa header JPEG ta 'buffer tagħna. 51 00:02:56,430 --> 00:02:58,460 Issa għalxiex header JPEG tagħmel? 52 00:02:58,460 --> 00:03:00,120 Ejja nħarsu. 53 00:03:00,120 --> 00:03:05,270 >> Up hawn, naraw li din il-funzjoni huwa jirritornaw barri, u li bull - 54 00:03:05,270 --> 00:03:08,820 sew hawnhekk, aħna qed verifika biex tara jekk header żero ugwali din kostanti u 55 00:03:08,820 --> 00:03:11,880 header wieħed ugwali din kostanti u header tnejn ugwali din kostanti, 56 00:03:11,880 --> 00:03:15,640 header tliet ugwali dan jew din kostanti fejn dawn kostanti kollha huma 57 00:03:15,640 --> 00:03:20,340 biss hash definit dritt hawn u huma eżattament dak li aħna qallek fil-spec 58 00:03:20,340 --> 00:03:22,700 li JPEG jibda bil. 59 00:03:22,700 --> 00:03:27,300 U għalhekk din il-funzjoni huwa biss se ritorn minnu jekk dan buffer jirrappreżenta 60 00:03:27,300 --> 00:03:31,750 il-bidu ta 'JPEG ġdida u falza mod ieħor. 61 00:03:31,750 --> 00:03:32,520 >> OK. 62 00:03:32,520 --> 00:03:38,490 Hekk jekk dan ma jirrappreżenta JPEG ġdid, allura aħna l-ewwel trid tikkontrolla biex tara jekk 63 00:03:38,490 --> 00:03:42,030 Fajl JPEG mhuwiex ugwali għal null, f'liema każ aħna jingħalaq. 64 00:03:42,030 --> 00:03:44,940 U hekk għaliex għandna bżonn li jiċċekkja biex tara jekk mhuwiex null? 65 00:03:44,940 --> 00:03:48,980 Ukoll l-ewwel JPEG li aħna ssib aħna mhux se diġà għandhom 66 00:03:48,980 --> 00:03:50,440 fajl JPEG miftuħ. 67 00:03:50,440 --> 00:03:55,580 U għalhekk, jekk nippruvaw li tagħlaq dan, allura aħna mhux qed tagħmel xi ħaġa tajba ħafna. 68 00:03:55,580 --> 00:03:59,090 >> Iżda kull JPEG sussegwenti li aħna miftuħa, irridu li tagħlaq 69 00:03:59,090 --> 00:04:00,710 il-fajl preċedenti. 70 00:04:00,710 --> 00:04:04,630 Allura issa aħna qed tmur għall-użu sprintf kif aħna intqal qabel fejn aħna qed tuża l- 71 00:04:04,630 --> 00:04:06,280 isem ta 'fajl buffer JPEG. 72 00:04:06,280 --> 00:04:09,870 U aħna qed tmur għall-użu fajl JPEG isem format bħala format tagħna. 73 00:04:09,870 --> 00:04:12,030 U dak huwa li? 74 00:04:12,030 --> 00:04:18,450 Up hawn, naraw li huwa żero fil-mija 3D.JPEG fejn il-kontrolli żero biss 75 00:04:18,450 --> 00:04:22,089 jgħid li aħna ser tuża t-tliet numri interi għal dan padded żerijiet. 76 00:04:22,089 --> 00:04:27,470 Allura dan huwa kif aħna ser tikseb zero zero one.JPEG u żero 10.JPEG u l-bqija. 77 00:04:27,470 --> 00:04:29,060 >> Aħna ser jużaw sprintf. 78 00:04:29,060 --> 00:04:33,760 U n-numru sħiħ li aħna qed ddaħħal fis-sekwenza huwa JPEGs numb 79 00:04:33,760 --> 00:04:36,380 rkuprati, li hija oriġinarjament żero. 80 00:04:36,380 --> 00:04:39,950 Allura l-ewwel fajl miftuħ va li huma żero zero zero dot JPEG. 81 00:04:39,950 --> 00:04:43,330 U allura aħna qed inkrementazzjoni hekk il- fajl li jmiss aħna miftuħa se jkun żero żero 82 00:04:43,330 --> 00:04:46,830 wieħed dot JPEG u aħna ser inkrement huwa -ġdid sabiex dan ser ikun żero zero tnejn dot 83 00:04:46,830 --> 00:04:49,100 JPEG u l-bqija. 84 00:04:49,100 --> 00:04:49,850 >> Kull dritt. 85 00:04:49,850 --> 00:04:53,210 Allura issa l-ġewwa tal-fajl JPEG isem, aħna għandna l-isem tal- 86 00:04:53,210 --> 00:04:54,990 fajl li rridu. 87 00:04:54,990 --> 00:04:58,640 Nistgħu f 'tiftaħ dan il-fajl għall-kitba. 88 00:04:58,640 --> 00:04:59,170 OK. 89 00:04:59,170 --> 00:05:02,820 U għal darb'oħra, għandna bżonn li jivverifika sabiex ikun żgur li l-fajl b'suċċess 90 00:05:02,820 --> 00:05:08,460 miftuħa peress li jekk dan ma kienx, allura kien hemm xi żball. 91 00:05:08,460 --> 00:05:13,100 >> Allura issa aħna ve gotten passat il- dan huwa parti JPEG. 92 00:05:13,100 --> 00:05:16,390 U hawn, naraw aħna qed tmur biex jikteb lill-JPEG. 93 00:05:16,390 --> 00:05:20,980 Iżda aħna l-ewwel ikollhom dan il-kontroll li jgħid jekk fajl JPEG ma null ugwali. 94 00:05:20,980 --> 00:05:22,490 Għaliex għandna bżonn dan? 95 00:05:22,490 --> 00:05:28,020 Well fajl JPEG ugwali null meta aħna bħalissa għandhom JPEG miftuħa. 96 00:05:28,020 --> 00:05:31,870 >> X'jiġri jekk jibda prima card dot bil-mazz ta 'bytes li 97 00:05:31,870 --> 00:05:33,510 ma jirrappreżentawx JPEG? 98 00:05:33,510 --> 00:05:36,240 Imbagħad aħna qed tmur jridu skip fuq dawk bytes. 99 00:05:36,240 --> 00:05:39,600 Jekk aħna ma jkollhomx dan il-kontroll, allura aħna qed ser jikteb għal mhux miftuħ 100 00:05:39,600 --> 00:05:45,540 fajl l-ewwel 512 bytes ta ' il-karta li mhix tajba. 101 00:05:45,540 --> 00:05:46,030 OK. 102 00:05:46,030 --> 00:05:51,330 >> Allura jekk wieħed jassumi għandna fajl miftuħ, imbagħad aħna qed tmur biex jiktbu lill dan il-fajl tal- 103 00:05:51,330 --> 00:05:53,290 512 bytes li għandna fil-buffer tagħna. 104 00:05:53,290 --> 00:05:57,390 U aħna qed darb'oħra verifika biex tagħmel żgurat li l-512 bytes b'suċċess 105 00:05:57,390 --> 00:06:01,140 kienu miktuba għaliex jekk dawn ma kinux b'suċċess bil-miktub, allura xi ħaġa 106 00:06:01,140 --> 00:06:02,080 marret ħażin. 107 00:06:02,080 --> 00:06:06,540 Aħna ser jagħlqu fajls tagħna, jistampa li xi ħaġa li marret ħażin, u r-ritorn. 108 00:06:06,540 --> 00:06:10,940 Jekk wieħed jassumi li kollox imur sew, allura aħna ser iżommu looping għeluq tal- 109 00:06:10,940 --> 00:06:15,060 fajl qodma, jiftaħ il-fajl ġdid, bil-miktub data lill-fajl ġdid, u għalhekk 110 00:06:15,060 --> 00:06:20,990 fuq sakemm finalment, dan f jaqraw prospetti żero li mezzi 111 00:06:20,990 --> 00:06:23,280 li l-fajl isir. 112 00:06:23,280 --> 00:06:28,490 >> Allura issa li l-qari card huwa fuq, aħna tara li aħna qed tmur biex f tagħlaq il- 113 00:06:28,490 --> 00:06:33,250 aħħar file li kellna miftuħa, iżda aħna qed iċċekkjar jekk fajl JPEG 114 00:06:33,250 --> 00:06:34,900 ma null mhux ugwali. 115 00:06:34,900 --> 00:06:39,520 Ukoll l-f qrib jagħmel sens għaliex kif aħna qed jiftħu l-fajls, aħna qed jagħlqu 116 00:06:39,520 --> 00:06:43,870 il-fajl preċedenti, iżda l-aħħar ħafna fajl li aħna miftuħa qatt gets magħluqa. 117 00:06:43,870 --> 00:06:45,580 Allura dak hu li din qed tagħmel. 118 00:06:45,580 --> 00:06:47,720 >> Iżda għaliex għandna bżonn li jiċċekkja għal null? 119 00:06:47,720 --> 00:06:53,130 Ukoll jekk dak card dot prima ma jkollhom JPEG wieħed ġewwa ta 'dan? 120 00:06:53,130 --> 00:06:56,640 F'dak il-każ, rridu naraw qatt fetaħ fajl. 121 00:06:56,640 --> 00:07:00,230 U jekk aħna qatt jiftaħ fajl, għandna ma tippruvax li tagħlaq dan il-fajl. 122 00:07:00,230 --> 00:07:03,000 Allura dak hu li dan il-kontroll qed tagħmel. 123 00:07:03,000 --> 00:07:07,880 >> Issa hawnhekk, kif għidt qabel, nistgħu jkunu maqsuma li loop y jew jekk 124 00:07:07,880 --> 00:07:13,520 il-karta tkun intemmet jew jekk ikun hemm xi żball qari mill-biljett. 125 00:07:13,520 --> 00:07:16,680 Allura dan huwa verifika biex tara jekk kien hemm żball qari mill-karta, fl 126 00:07:16,680 --> 00:07:19,400 f'liema każ, aħna ser jgħidu li hemm kien qari żball. 127 00:07:19,400 --> 00:07:22,130 Aħna ma rridux-utent biex jaħsbu kollox mexa b'suċċess. 128 00:07:22,130 --> 00:07:24,750 U aħna ser terġa 'lura waħda għal żball. 129 00:07:24,750 --> 00:07:29,580 >> Fl-aħħarnett, aħna ser f qrib fajl prima tagħna, karta tagħna dot prima, li jindika li 130 00:07:29,580 --> 00:07:34,070 kollox marru tajjeb u r-ritorn żero u thats it. 131 00:07:34,070 --> 00:07:36,130 >> Jisimni Rob u dan kien Jirkupra. 132 00:07:36,130 --> 00:07:42,102 >> [Daqq tal-mużika]