1 00:00:00,000 --> 00:00:00,494 2 00:00:00,494 --> 00:00:13,350 >> [Музика свира] 3 00:00:13,350 --> 00:00:14,080 >> РОБ БОВДЕН: Здраво. 4 00:00:14,080 --> 00:00:17,550 Ја сам Роб, и надајмо се да ово решење помаже ставити вас 5 00:00:17,550 --> 00:00:19,600 на путу опоравка. 6 00:00:19,600 --> 00:00:22,700 Дакле, хајде да почнемо. 7 00:00:22,700 --> 00:00:25,660 >> Ми видимо да одмах смо само да се уверите да смо 8 00:00:25,660 --> 00:00:27,170 коришћењем Рецовер исправно. 9 00:00:27,170 --> 00:00:31,490 Дакле, употреба би требало да буде само нешто као тачка коса црта опорави. 10 00:00:31,490 --> 00:00:35,500 >> Сада ћемо отворити очекује картица ДОТ Рав фајл. 11 00:00:35,500 --> 00:00:39,740 Ми овде видимо да смо користећи константа сирово доња име датотеке, 12 00:00:39,740 --> 00:00:44,200 који овде имамо хасх дефинисана као картица дот сирово. 13 00:00:44,200 --> 00:00:45,030 У реду. 14 00:00:45,030 --> 00:00:48,210 >> Дакле, морамо бити сигурни да је успешно отворио јер ако 15 00:00:48,210 --> 00:00:51,150 није, онда би требало да упозори корисника. 16 00:00:51,150 --> 00:00:56,770 Али под претпоставком да јесте, сада смо ће прогласити бафер величине ЈПЕГ 17 00:00:56,770 --> 00:00:58,170 Филе наме дужину. 18 00:00:58,170 --> 00:01:02,060 Дакле, ово ће бити бафер који ћемо спринтф у. 19 00:01:02,060 --> 00:01:04,360 >> Дакле, оно што је ЈПЕГ фајл име дужина? 20 00:01:04,360 --> 00:01:08,490 Овде горе, видимо да је то хасх дефинише као осам. 21 00:01:08,490 --> 00:01:10,670 Па зашто осам? 22 00:01:10,670 --> 00:01:15,150 Па с обзиром фајл ће бити именован нешто као нула нула нула. 23 00:01:15,150 --> 00:01:19,460 ЈПГ и онда нам треба обрнуту косу црту нула. 24 00:01:19,460 --> 00:01:22,720 Зато нам је потребан бафер који могу складиштите осам карактера. 25 00:01:22,720 --> 00:01:25,190 Сада ћемо имати контра која је ће пратити 26 00:01:25,190 --> 00:01:27,780 број ЈПЕГ смо нашли. 27 00:01:27,780 --> 00:01:31,590 >> И на крају, ми ћемо имати ЈПЕГ фајл који је у почетку нулл 28 00:01:31,590 --> 00:01:35,920 који ће бити тренутно отвори фајл који пишемо на. 29 00:01:35,920 --> 00:01:37,540 Сада ћемо имати додатни пуфер. 30 00:01:37,540 --> 00:01:41,350 Ово није исто као наш спринтф бафер где ово пуфер је један 31 00:01:41,350 --> 00:01:45,020 да ми читате у подацима од картица дот сирово. 32 00:01:45,020 --> 00:01:48,900 >> Дакле, бафер ће бити од непотписани знакова, који можете 33 00:01:48,900 --> 00:01:53,560 у основи само нас третирају бајтова, а то је ће бити од величине блока величине 34 00:01:53,560 --> 00:01:57,950 где, као што смо вам рећи, блок величине је 512. 35 00:01:57,950 --> 00:02:03,070 Дакле, ЈПЕГ можете третирати све као блоковима од 512 бајтова. 36 00:02:03,070 --> 00:02:05,890 >> Сада ћемо да петљи преко целог фајл. 37 00:02:05,890 --> 00:02:12,980 Идемо у ф прочитати у нашој бафер А Сингле пута бајт блок величине из 38 00:02:12,980 --> 00:02:14,710 картица ДОТ Рав фајл. 39 00:02:14,710 --> 00:02:16,630 Сада шта ђ чита врати? 40 00:02:16,630 --> 00:02:20,050 То даје број ставки да је успешно прочитао. 41 00:02:20,050 --> 00:02:27,310 Дакле, ако је успео да прочита 512 бајтова, онда желимо да видимо да ли је то било 42 00:02:27,310 --> 00:02:29,700 ЈПЕГ или напиши то на ЈПЕГ фајл. 43 00:02:29,700 --> 00:02:34,450 И ако то није врати 512 бајтова, онда или фајл је завршила у 44 00:02:34,450 --> 00:02:37,870 том случају ћемо се пробије из и петља, или постоје неки грешке 45 00:02:37,870 --> 00:02:40,300 у том случају такође ћемо се пробије из И петља, али ми ћемо желети да пријаве 46 00:02:40,300 --> 00:02:41,990 да нешто није у реду. 47 00:02:41,990 --> 00:02:42,290 >> У реду. 48 00:02:42,290 --> 00:02:47,630 Дакле, под претпоставком да смо успешно читати у 512 бајтова, желимо да прво проверите 49 00:02:47,630 --> 00:02:53,070 да да ови бајтова које смо Управо сам прочитао у ЈПЕГ почне. 50 00:02:53,070 --> 00:02:56,430 Дакле, ако је ЈПЕГ заглавље нашег пуфера. 51 00:02:56,430 --> 00:02:58,460 Шта је сад ЈПЕГ заглавље ради? 52 00:02:58,460 --> 00:03:00,120 Погледајмо. 53 00:03:00,120 --> 00:03:05,270 >> Овде горе, видимо да је ова функција повратак бика, и да бик - 54 00:03:05,270 --> 00:03:08,820 добро овде, ми смо проверава да ли заглавље нула једнако ову константу и 55 00:03:08,820 --> 00:03:11,880 заглавље један једнако ову константу и заглавље два једнака ову константу, 56 00:03:11,880 --> 00:03:15,640 заглавље три једнака ово или ово константна где све ове константе су 57 00:03:15,640 --> 00:03:20,340 само хасх дефинисана овде и да су тачно оно што смо вам рекли у спец 58 00:03:20,340 --> 00:03:22,700 да ЈПЕГ почиње са. 59 00:03:22,700 --> 00:03:27,300 И тако ова функција је само да ретурн труе ако то представља бафер 60 00:03:27,300 --> 00:03:31,750 почетак новог ЈПЕГ и иначе фалсе. 61 00:03:31,750 --> 00:03:32,520 >> У реду. 62 00:03:32,520 --> 00:03:38,490 Дакле, ако то не представља нову ЈПЕГ, онда ми прво желимо да проверите да ли 63 00:03:38,490 --> 00:03:42,030 ЈПЕГ фајл није једнак нулл, у ком случају смо га затворили. 64 00:03:42,030 --> 00:03:44,940 А зашто нам је потребно да проверите да видим да није нула? 65 00:03:44,940 --> 00:03:48,980 Па први ЈПЕГ да можемо наћи нећемо имати већ 66 00:03:48,980 --> 00:03:50,440 отворен ЈПЕГ датотека. 67 00:03:50,440 --> 00:03:55,580 И тако, ако покушамо да затвори то, онда ми не радимо нешто сасвим десно. 68 00:03:55,580 --> 00:03:59,090 >> Али сваки наредни ЈПЕГ да отворимо, желимо да затворите 69 00:03:59,090 --> 00:04:00,710 претходни фајл. 70 00:04:00,710 --> 00:04:04,630 Дакле, сада ћемо користити спринтф као ми рекао пре него где смо помоћу 71 00:04:04,630 --> 00:04:06,280 бафер ЈПЕГ датотека име. 72 00:04:06,280 --> 00:04:09,870 И ми ћемо користити ЈПЕГ датотеку име формат као наш формату. 73 00:04:09,870 --> 00:04:12,030 А шта је то? 74 00:04:12,030 --> 00:04:18,450 Овде горе, видимо да је проценат нула 3Д.ЈПЕГ где нула три само 75 00:04:18,450 --> 00:04:22,089 каже да ћемо користити три цела броја за то обложено са нулама. 76 00:04:22,089 --> 00:04:27,470 Дакле, ово је како ћемо добити нула нула оне.ЈПЕГ и нула 10.јпег и тако даље. 77 00:04:27,470 --> 00:04:29,060 >> Идемо користити спринтф. 78 00:04:29,060 --> 00:04:33,760 И цео број који смо убацивањем у низ је утрнула ЈПЕГ 79 00:04:33,760 --> 00:04:36,380 опоравио, који је првобитно нуле. 80 00:04:36,380 --> 00:04:39,950 Дакле, први фајл отвори се дешава бити нула нула нула тачка ЈПЕГ. 81 00:04:39,950 --> 00:04:43,330 А онда смо га тако увецава следећи фајл отворимо ће бити нула нула 82 00:04:43,330 --> 00:04:46,830 једна тачка ЈПЕГ и ми ћемо га повећате опет тако да ће бити нула нула два точка 83 00:04:46,830 --> 00:04:49,100 ЈПЕГ и тако даље. 84 00:04:49,100 --> 00:04:49,850 >> У реду. 85 00:04:49,850 --> 00:04:53,210 Дакле, сада унутар ЈПЕГ име, имамо име 86 00:04:53,210 --> 00:04:54,990 филе који желимо. 87 00:04:54,990 --> 00:04:58,640 Можемо Ф отворите ту датотеку за писање. 88 00:04:58,640 --> 00:04:59,170 У реду. 89 00:04:59,170 --> 00:05:02,820 И опет, морамо да проверите да да ли је датотека успешно 90 00:05:02,820 --> 00:05:08,460 отворио јер ако није, онда постоји нека грешка. 91 00:05:08,460 --> 00:05:13,100 >> Дакле, сада смо просли је овај део ЈПЕГ. 92 00:05:13,100 --> 00:05:16,390 И овде, видимо идемо да пишу на ЈПЕГ. 93 00:05:16,390 --> 00:05:20,980 Али, прво морамо ово чек који гласи ако ЈПЕГ датотека не једнак нулл. 94 00:05:20,980 --> 00:05:22,490 Зашто нам је потребан да? 95 00:05:22,490 --> 00:05:28,020 Па ЈПЕГ датотека једнако нула, када смо тренутно имају отворену ЈПЕГ. 96 00:05:28,020 --> 00:05:31,870 >> Шта ако картица ДОТ Рав почиње са гомилом бајтова који 97 00:05:31,870 --> 00:05:33,510 не представљају ЈПЕГ? 98 00:05:33,510 --> 00:05:36,240 Онда ћемо желети да прескочите преко тих бајтова. 99 00:05:36,240 --> 00:05:39,600 Ако немамо тај чек, онда смо ће писати да неотворен 100 00:05:39,600 --> 00:05:45,540 филе првих 512 бајтова картица која није добра. 101 00:05:45,540 --> 00:05:46,030 У реду. 102 00:05:46,030 --> 00:05:51,330 >> Дакле, под претпоставком да имамо отворену датотеку, а затим ћемо писати у тој датотеци 103 00:05:51,330 --> 00:05:53,290 512 бајта које имамо у нашој пуферу. 104 00:05:53,290 --> 00:05:57,390 И ми смо једном провере да да ли су 512 бајта успешно 105 00:05:57,390 --> 00:06:01,140 су писани јер ако нису били успешно написано, онда нешто 106 00:06:01,140 --> 00:06:02,080 кренуло наопако. 107 00:06:02,080 --> 00:06:06,540 Ми ћемо затворити датотеке, одштампајте да нешто је пошло наопако, и повратак. 108 00:06:06,540 --> 00:06:10,940 Под претпоставком да све иде добро, онда ми ћемо задржати лоопинг затварања 109 00:06:10,940 --> 00:06:15,060 стари фајл, отворите нови фајл, писање података у нову датотеку, и тако 110 00:06:15,060 --> 00:06:20,990 све док коначно, овај ф прочитајте враћа нулу која средства 111 00:06:20,990 --> 00:06:23,280 да датотека врши. 112 00:06:23,280 --> 00:06:28,490 >> Тако сада да читање картица је готова, ми видим да ћемо затворити ф 113 00:06:28,490 --> 00:06:33,250 последњи фајл који смо имали отворене, али смо проверу да ли ЈПЕГ фајлова 114 00:06:33,250 --> 00:06:34,900 не једнак нулл. 115 00:06:34,900 --> 00:06:39,520 Па Ф близу има смисла, јер као смо отварање фајлова, ми затварамо 116 00:06:39,520 --> 00:06:43,870 претходну слику, али веома последњи фајл који смо отворили никада не затворен. 117 00:06:43,870 --> 00:06:45,580 Дакле, то је оно што овај ради. 118 00:06:45,580 --> 00:06:47,720 >> Али зашто нам је потребно да проверите за нулл? 119 00:06:47,720 --> 00:06:53,130 Па шта ако је картица ДОТ Рав зар не имају једну ЈПЕГ унутар ње? 120 00:06:53,130 --> 00:06:56,640 У том случају, имали бисмо Никада отворио датотеку. 121 00:06:56,640 --> 00:07:00,230 А ако ми не отвориш датотеку, ми треба Не покушавајте да затворите тај фајл. 122 00:07:00,230 --> 00:07:03,000 Дакле, то је оно што се ради ово провера. 123 00:07:03,000 --> 00:07:07,880 >> Сада овде, као што сам раније рекао, ми смо могли изласком на то да и петљу или ако 124 00:07:07,880 --> 00:07:13,520 картица је завршила или ако постоје нека грешка читања са картице. 125 00:07:13,520 --> 00:07:16,680 Дакле, ово је проверава да ли је било грешка читања са картице, у 126 00:07:16,680 --> 00:07:19,400 том случају, ми ћемо тамо рећи је читање грешка. 127 00:07:19,400 --> 00:07:22,130 Ми не желимо да корисник мисли све ишло успешно. 128 00:07:22,130 --> 00:07:24,750 И ми ћемо се вратити један за грешке. 129 00:07:24,750 --> 00:07:29,580 >> Коначно, ми ћемо затворити Ф нашу рав фајл, наша картица дот сирово, што значи да 130 00:07:29,580 --> 00:07:34,070 све је ишло добро и повратак зеро и то је то. 131 00:07:34,070 --> 00:07:36,130 >> Моје име је Роб и то је Рецовер. 132 00:07:36,130 --> 00:07:42,102 >> [Музика свира]