1 00:00:00,000 --> 00:00:00,494 2 00:00:00,494 --> 00:00:13,350 >> [MUSIC PLAYING] 3 00:00:13,350 --> 00:00:14,080 >> Rob Bowden: Hi. 4 00:00:14,080 --> 00:00:17,550 Mən Rob deyiləm, və ümid edək ki, Bu həll sizi kömək edir 5 00:00:17,550 --> 00:00:19,600 Bərpa olunması üçün yolda. 6 00:00:19,600 --> 00:00:22,700 Belə ki, in başlamaq bildirin. 7 00:00:22,700 --> 00:00:25,660 >> Biz dərhal biz istəyirik ki, yalnız biz istəyirik ki, əmin etmək 8 00:00:25,660 --> 00:00:27,170 düzgün Recover istifadə. 9 00:00:27,170 --> 00:00:31,490 Belə ki, istifadə yalnız bir şey olmalıdır dot çizgi bərpa kimi. 10 00:00:31,490 --> 00:00:35,500 >> İndi biz gözlənilən açmaq olacaq kart xam fayl nöqtə. 11 00:00:35,500 --> 00:00:39,740 Biz istifadə etdiyiniz burada bax daimi xam çizgi fayl adı, 12 00:00:39,740 --> 00:00:44,200 biz hash var qədər burada olan kart xam nöqtə kimi müəyyən edilmişdir. 13 00:00:44,200 --> 00:00:45,030 OK. 14 00:00:45,030 --> 00:00:48,210 >> Beləliklə, biz əmin etmək lazımdır ki, uğurla açdı əgər 15 00:00:48,210 --> 00:00:51,150 , sonra biz istifadəçi xəbərdar olmalıdır etməyib. 16 00:00:51,150 --> 00:00:56,770 Amma bunu fərz etsək, biz indi istəyirik ölçüsü JPEG bufer bəyan olacaq 17 00:00:56,770 --> 00:00:58,170 adı uzunluğu fayl. 18 00:00:58,170 --> 00:01:02,060 Belə ki, bu bufer olacaq ki, biz daxil sprintf olacaq. 19 00:01:02,060 --> 00:01:04,360 >> Belə ki, JPEG fayl adı uzunluğu nədir? 20 00:01:04,360 --> 00:01:08,490 Burada, biz ki, bax səkkiz kimi müəyyən hash. 21 00:01:08,490 --> 00:01:10,670 Belə ki, niyə səkkiz? 22 00:01:10,670 --> 00:01:15,150 Yaxşı bir fayl adı olacaq sıfır sıfır sıfır kimi bir şey. 23 00:01:15,150 --> 00:01:19,460 JPG və sonra bir backslash sıfır lazımdır. 24 00:01:19,460 --> 00:01:22,720 Belə ki, bilər bufer lazımdır səkkiz simvol saxlamayın. 25 00:01:22,720 --> 00:01:25,190 İndi ki, bir counter var olacaq Bu takip gedir 26 00:01:25,190 --> 00:01:27,780 sayı JPEGs gördük. 27 00:01:27,780 --> 00:01:31,590 >> Və nəhayət, biz getdiyimiz Ilkin null olan JPEG fayl 28 00:01:31,590 --> 00:01:35,920 Hal-hazırda olacaq olan biz yazılı olduğunuz açıq file. 29 00:01:35,920 --> 00:01:37,540 İndi biz olacaq əlavə bufer. 30 00:01:37,540 --> 00:01:41,350 Bu, bizim sprintf kimi eyni deyil Bu bufer bir olduğu bufer 31 00:01:41,350 --> 00:01:45,020 Biz data oxuyursunuz ki, kart xam dot olan. 32 00:01:45,020 --> 00:01:48,900 >> Belə ki, bufer olacaq imzasız chars, Siz hansı 33 00:01:48,900 --> 00:01:53,560 əsasən yalnız bizə bayt müalicə, və bu ölçüsü blok ölçüsü olacaq 34 00:01:53,560 --> 00:01:57,950 harada, biz sizə demək kimi, blok ölçüsü 512 edir. 35 00:01:57,950 --> 00:02:03,070 Belə ki, JPEGs hər şeyi müalicə edə bilər 512 bytes blokları kimi. 36 00:02:03,070 --> 00:02:05,890 >> İndi biz loop olacaq bütün fayl üzərində. 37 00:02:05,890 --> 00:02:12,980 Biz f bizim bufer daxil oxumaq olacaq bir byte blok ölçüsü dəfə olan 38 00:02:12,980 --> 00:02:14,710 kart xam fayl nöqtə. 39 00:02:14,710 --> 00:02:16,630 İndi f qayıtmaq nə oxumaq deyil? 40 00:02:16,630 --> 00:02:20,050 Bu maddələr sayı qaytarır uğurla oxumaq. 41 00:02:20,050 --> 00:02:27,310 Sonra, 512 bayt oxumaq üçün idarə əgər biz bu olub görmək istəyirəm 42 00:02:27,310 --> 00:02:29,700 JPEG və ya bir JPEG fayl yazın. 43 00:02:29,700 --> 00:02:34,450 Və 512 bayt geri olmasaydı, sonra fayl ya başa çatıb 44 00:02:34,450 --> 00:02:37,870 biz y çıxmaq lazımdır, bu halda loop, və ya səhv bir növ var 45 00:02:37,870 --> 00:02:40,300 biz də çıxmaq lazımdır halda y loop, lakin biz hesabat lazımdır 46 00:02:40,300 --> 00:02:41,990 ki, bir şey yanlış getdi. 47 00:02:41,990 --> 00:02:42,290 >> OK. 48 00:02:42,290 --> 00:02:47,630 Beləliklə, biz uğurla oxumaq fərz 512 bayt, biz ilk çek istəyirəm 49 00:02:47,630 --> 00:02:53,070 etmək üçün ki, bu bytes ki, biz yalnız oxumaq JPEG başlayır. 50 00:02:53,070 --> 00:02:56,430 Belə ki, əgər bizim bufer JPEG header edir. 51 00:02:56,430 --> 00:02:58,460 İndi JPEG header onu nə edir? 52 00:02:58,460 --> 00:03:00,120 Nin baxaq. 53 00:03:00,120 --> 00:03:05,270 >> Burada, biz bu funksiya olduğunu görürük bir öküz qaytarılması ki, öküz - 54 00:03:05,270 --> 00:03:08,820 burada, biz görmək yoxlanılması edirsinizsə header sıfır Bu daimi bərabərdir və 55 00:03:08,820 --> 00:03:11,880 header bu daimi bərabərdir və header iki, bu daimi bərabərdir 56 00:03:11,880 --> 00:03:15,640 header üç bu və ya bu bərabərdir Bütün bu sabitləri olduğu sabit 57 00:03:15,640 --> 00:03:20,340 yalnız burada müəyyən hash və biz spec sizə izah dəqiq nə 58 00:03:20,340 --> 00:03:22,700 bir JPEG ilə başlayır ki,. 59 00:03:22,700 --> 00:03:27,300 Və bu funksiya yalnız gedir Bu bufer təmsil Doğrudur qayıtmaq 60 00:03:27,300 --> 00:03:31,750 yeni bir JPEG start və saxta başqa. 61 00:03:31,750 --> 00:03:32,520 >> OK. 62 00:03:32,520 --> 00:03:38,490 Bu yeni bir JPEG təmsil etmir əgər, sonra biz ilk görmək yoxlamaq istəyirsinizsə 63 00:03:38,490 --> 00:03:42,030 JPEG fayl, null bərabər deyil bu halda biz bağlayın. 64 00:03:42,030 --> 00:03:44,940 Və nə biz yoxlamaq lazımdır Bu null deyil görmek? üçün 65 00:03:44,940 --> 00:03:48,980 Yaxşı ilk JPEG ki, biz biz artıq olmayacaq tapmaq 66 00:03:48,980 --> 00:03:50,440 açıq JPEG fayl. 67 00:03:50,440 --> 00:03:55,580 Və belə ki, biz sonra ki, yaxın cəhd əgər biz olduqca doğru bir şey bunu deyilik. 68 00:03:55,580 --> 00:03:59,090 >> Amma hər sonrakı JPEG ki, biz açıq, biz bağlamaq istəyir 69 00:03:59,090 --> 00:04:00,710 Əvvəlki faylın. 70 00:04:00,710 --> 00:04:04,630 Belə ki, indi biz kimi sprintf istifadə etmək olacaq biz istifadə etdiyiniz Ü əvvəl bildirib 71 00:04:04,630 --> 00:04:06,280 bufer JPEG fayl adı. 72 00:04:06,280 --> 00:04:09,870 Və biz JPEG faylı istifadə etmək olacaq bizim format kimi format adı. 73 00:04:09,870 --> 00:04:12,030 Və nədir? 74 00:04:12,030 --> 00:04:18,450 Burada, biz faiz sıfır olduğunu görmək 3D.JPEG olduğu sıfır üç yalnız 75 00:04:18,450 --> 00:04:22,089 biz üç integers istifadə lazımdır ki, deyir bu adet sıfır ilə padded. 76 00:04:22,089 --> 00:04:27,470 Belə ki, bu biz sıfır sıfır almaq lazımdır necə belə one.JPEG və sıfır 10.JPEG və. 77 00:04:27,470 --> 00:04:29,060 >> Biz sprintf istifadə etmək olacaq. 78 00:04:29,060 --> 00:04:33,760 Və biz daxil olduğunuz tam simli key JPEGs edir daxil 79 00:04:33,760 --> 00:04:36,380 ilk sıfır olan, bərpa. 80 00:04:36,380 --> 00:04:39,950 Belə ki, ilk fayl gedir açıldı sıfır sıfır sıfır dot JPEG olmalıdır. 81 00:04:39,950 --> 00:04:43,330 Və sonra biz belə incrementing etdiyiniz biz açmaq növbəti fayl sıfır sıfır olacaq 82 00:04:43,330 --> 00:04:46,830 bir dot JPEG və biz bunu arttırmayı lazımdır yenə belə ki, sıfır sıfır iki dot olacaq 83 00:04:46,830 --> 00:04:49,100 Belə JPEG və. 84 00:04:49,100 --> 00:04:49,850 >> Bütün hüquqlar. 85 00:04:49,850 --> 00:04:53,210 Belə ki, indi JPEG fayl daxilində ad, biz adı var 86 00:04:53,210 --> 00:04:54,990 biz istəyirik ki, fayl. 87 00:04:54,990 --> 00:04:58,640 Biz f yazı üçün faylı aça bilərsiniz. 88 00:04:58,640 --> 00:04:59,170 OK. 89 00:04:59,170 --> 00:05:02,820 Və bir daha, biz etmək üçün yoxlamaq lazımdır əmin uğurla fayl 90 00:05:02,820 --> 00:05:08,460 Bu, sonra əgər ci ildən başlayıb bəzi səhv var idi. 91 00:05:08,460 --> 00:05:13,100 >> Belə ki, indi biz keçmiş kazanılmış bu bir JPEG hissəsidir. 92 00:05:13,100 --> 00:05:16,390 Və burada, biz gedirik bax Bu JPEG yazmaq üçün. 93 00:05:16,390 --> 00:05:20,980 Amma biz ilk deyir ki, bu çek JPEG fayl bərabər null deyil, əgər. 94 00:05:20,980 --> 00:05:22,490 Niyə biz lazımdır? 95 00:05:22,490 --> 00:05:28,020 Yaxşı JPEG fayl null bərabərdir zaman biz Hal-hazırda açıq JPEG var. 96 00:05:28,020 --> 00:05:31,870 >> Nə kart dot xam başlayır əgər bayt bir dəstə ilə 97 00:05:31,870 --> 00:05:33,510 JPEG təmsil etmir? 98 00:05:33,510 --> 00:05:36,240 Sonra biz istəyirəm olacaq o bayt skip. 99 00:05:36,240 --> 00:05:39,600 Biz bu çek yoxdur, onda biz istəyirik bir açılmadan yazmaq üçün gedir 100 00:05:39,600 --> 00:05:45,540 ilk 512 bayt fayl yaxşı deyil olan kart. 101 00:05:45,540 --> 00:05:46,030 OK. 102 00:05:46,030 --> 00:05:51,330 >> Beləliklə, biz bir açıq fayl fərz biz ki, fayl yazmaq olacaq 103 00:05:51,330 --> 00:05:53,290 Biz bufer var ki, 512 bytes. 104 00:05:53,290 --> 00:05:57,390 Və biz bir daha etmək üçün kontrol edirik əmin uğurla 512 bytes 105 00:05:57,390 --> 00:06:01,140 onlar deyil, çünki yazılmışdır uğurla yazılı, sonra bir şey 106 00:06:01,140 --> 00:06:02,080 yanlış getdi. 107 00:06:02,080 --> 00:06:06,540 Biz ki, çap, bizim faylları yaxın olacaq bir şey yanlış getdi və geri. 108 00:06:06,540 --> 00:06:10,940 Etsək, hər şey, düzgün gedir Biz yekun loop davam edəcəyik 109 00:06:10,940 --> 00:06:15,060 köhnə fayl, yeni fayl açılması, yazı belə yeni fayl data, və 110 00:06:15,060 --> 00:06:20,990 nəhayət, bu f oxumaq qədər sıfır qaytarır vasitələri 111 00:06:20,990 --> 00:06:23,280 fayl edilir. 112 00:06:23,280 --> 00:06:28,490 >> Belə ki, indi kart oxu üzərində ki, biz biz f yaxın olacaq ki, görmək 113 00:06:28,490 --> 00:06:33,250 biz açıq idi, lakin son fayl biz yoxlanılması əgər JPEG fayl 114 00:06:33,250 --> 00:06:34,900 bərabər null yoxdur. 115 00:06:34,900 --> 00:06:39,520 Yaxşı f yaxın çünki kimi əhəmiyyət kəsb edir biz bağlanması edirik, faylları açılış edirsinizsə 116 00:06:39,520 --> 00:06:43,870 Əvvəlki fayl, lakin son biz açılan fayl bağlıdır olur heç. 117 00:06:43,870 --> 00:06:45,580 Belə ki, bu nə var. 118 00:06:45,580 --> 00:06:47,720 >> Amma niyə biz null yoxlamaq lazımdır? 119 00:06:47,720 --> 00:06:53,130 Yaxşı nə varsa kart dot xam etmədi Bunun içərisində bir JPEG var? 120 00:06:53,130 --> 00:06:56,640 Bu halda, biz olardı bir fayl açılan heç vaxt. 121 00:06:56,640 --> 00:07:00,230 Bir fayl açmaq heç əgər, biz olmalıdır ki, fayl bağlamaq üçün cəhd deyil. 122 00:07:00,230 --> 00:07:03,000 Belə ki, bu check nə var. 123 00:07:03,000 --> 00:07:07,880 >> Mən əvvəl qeyd etdiyim kimi, indi burada, biz bilər ki, y loop ya əgər sınıq 124 00:07:07,880 --> 00:07:13,520 kart olduqda sona çatdı, və ya kart oxu bəzi səhv. 125 00:07:13,520 --> 00:07:16,680 Belə ki, bu var idi görmek üçün yoxlanılması olunur da, kart oxu bir səhv 126 00:07:16,680 --> 00:07:19,400 Bu halda, biz orada demək lazımdır bir səhv oxu idi. 127 00:07:19,400 --> 00:07:22,130 Biz istifadəçi düşünmək istəmirəm hər şey uğurla keçdi. 128 00:07:22,130 --> 00:07:24,750 Və biz səhv üçün bir qayıtmaq lazımdır. 129 00:07:24,750 --> 00:07:29,580 >> Nəhayət, biz f bizim xammal faylı bağlamaq lazımdır, bizim kart göstərir ki, xammal dot 130 00:07:29,580 --> 00:07:34,070 hər şey yaxşı və qaytarılması getdi sıfır və bu. 131 00:07:34,070 --> 00:07:36,130 >> My name Rob və bu Recover idi. 132 00:07:36,130 --> 00:07:42,102 >> [MUSIC PLAYING]