[MUSIC PLAYING] Rob Bowden: Hi. Mən Rob deyiləm, və ümid edək ki, Bu həll sizi kömək edir Bərpa olunması üçün yolda. Belə ki, in başlamaq bildirin. Biz dərhal biz istəyirik ki, yalnız biz istəyirik ki, əmin etmək düzgün Recover istifadə. Belə ki, istifadə yalnız bir şey olmalıdır dot çizgi bərpa kimi. İndi biz gözlənilən açmaq olacaq kart xam fayl nöqtə. Biz istifadə etdiyiniz burada bax daimi xam çizgi fayl adı, biz hash var qədər burada olan kart xam nöqtə kimi müəyyən edilmişdir. OK. Beləliklə, biz əmin etmək lazımdır ki, uğurla açdı əgər , sonra biz istifadəçi xəbərdar olmalıdır etməyib. Amma bunu fərz etsək, biz indi istəyirik ölçüsü JPEG bufer bəyan olacaq adı uzunluğu fayl. Belə ki, bu bufer olacaq ki, biz daxil sprintf olacaq. Belə ki, JPEG fayl adı uzunluğu nədir? Burada, biz ki, bax səkkiz kimi müəyyən hash. Belə ki, niyə səkkiz? Yaxşı bir fayl adı olacaq sıfır sıfır sıfır kimi bir şey. JPG və sonra bir backslash sıfır lazımdır. Belə ki, bilər bufer lazımdır səkkiz simvol saxlamayın. İndi ki, bir counter var olacaq Bu takip gedir sayı JPEGs gördük. Və nəhayət, biz getdiyimiz Ilkin null olan JPEG fayl Hal-hazırda olacaq olan biz yazılı olduğunuz açıq file. İndi biz olacaq əlavə bufer. Bu, bizim sprintf kimi eyni deyil Bu bufer bir olduğu bufer Biz data oxuyursunuz ki, kart xam dot olan. Belə ki, bufer olacaq imzasız chars, Siz hansı əsasən yalnız bizə bayt müalicə, və bu ölçüsü blok ölçüsü olacaq harada, biz sizə demək kimi, blok ölçüsü 512 edir. Belə ki, JPEGs hər şeyi müalicə edə bilər 512 bytes blokları kimi. İndi biz loop olacaq bütün fayl üzərində. Biz f bizim bufer daxil oxumaq olacaq bir byte blok ölçüsü dəfə olan kart xam fayl nöqtə. İndi f qayıtmaq nə oxumaq deyil? Bu maddələr sayı qaytarır uğurla oxumaq. Sonra, 512 bayt oxumaq üçün idarə əgər biz bu olub görmək istəyirəm JPEG və ya bir JPEG fayl yazın. Və 512 bayt geri olmasaydı, sonra fayl ya başa çatıb biz y çıxmaq lazımdır, bu halda loop, və ya səhv bir növ var biz də çıxmaq lazımdır halda y loop, lakin biz hesabat lazımdır ki, bir şey yanlış getdi. OK. Beləliklə, biz uğurla oxumaq fərz 512 bayt, biz ilk çek istəyirəm etmək üçün ki, bu bytes ki, biz yalnız oxumaq JPEG başlayır. Belə ki, əgər bizim bufer JPEG header edir. İndi JPEG header onu nə edir? Nin baxaq. Burada, biz bu funksiya olduğunu görürük bir öküz qaytarılması ki, öküz - burada, biz görmək yoxlanılması edirsinizsə header sıfır Bu daimi bərabərdir və header bu daimi bərabərdir və header iki, bu daimi bərabərdir header üç bu və ya bu bərabərdir Bütün bu sabitləri olduğu sabit yalnız burada müəyyən hash və biz spec sizə izah dəqiq nə bir JPEG ilə başlayır ki,. Və bu funksiya yalnız gedir Bu bufer təmsil Doğrudur qayıtmaq yeni bir JPEG start və saxta başqa. OK. Bu yeni bir JPEG təmsil etmir əgər, sonra biz ilk görmək yoxlamaq istəyirsinizsə JPEG fayl, null bərabər deyil bu halda biz bağlayın. Və nə biz yoxlamaq lazımdır Bu null deyil görmek? üçün Yaxşı ilk JPEG ki, biz biz artıq olmayacaq tapmaq açıq JPEG fayl. Və belə ki, biz sonra ki, yaxın cəhd əgər biz olduqca doğru bir şey bunu deyilik. Amma hər sonrakı JPEG ki, biz açıq, biz bağlamaq istəyir Əvvəlki faylın. Belə ki, indi biz kimi sprintf istifadə etmək olacaq biz istifadə etdiyiniz Ü əvvəl bildirib bufer JPEG fayl adı. Və biz JPEG faylı istifadə etmək olacaq bizim format kimi format adı. Və nədir? Burada, biz faiz sıfır olduğunu görmək 3D.JPEG olduğu sıfır üç yalnız biz üç integers istifadə lazımdır ki, deyir bu adet sıfır ilə padded. 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ə. Biz sprintf istifadə etmək olacaq. Və biz daxil olduğunuz tam simli key JPEGs edir daxil ilk sıfır olan, bərpa. Belə ki, ilk fayl gedir açıldı sıfır sıfır sıfır dot JPEG olmalıdır. Və sonra biz belə incrementing etdiyiniz biz açmaq növbəti fayl sıfır sıfır olacaq bir dot JPEG və biz bunu arttırmayı lazımdır yenə belə ki, sıfır sıfır iki dot olacaq Belə JPEG və. Bütün hüquqlar. Belə ki, indi JPEG fayl daxilində ad, biz adı var biz istəyirik ki, fayl. Biz f yazı üçün faylı aça bilərsiniz. OK. Və bir daha, biz etmək üçün yoxlamaq lazımdır əmin uğurla fayl Bu, sonra əgər ci ildən başlayıb bəzi səhv var idi. Belə ki, indi biz keçmiş kazanılmış bu bir JPEG hissəsidir. Və burada, biz gedirik bax Bu JPEG yazmaq üçün. Amma biz ilk deyir ki, bu çek JPEG fayl bərabər null deyil, əgər. Niyə biz lazımdır? Yaxşı JPEG fayl null bərabərdir zaman biz Hal-hazırda açıq JPEG var. Nə kart dot xam başlayır əgər bayt bir dəstə ilə JPEG təmsil etmir? Sonra biz istəyirəm olacaq o bayt skip. Biz bu çek yoxdur, onda biz istəyirik bir açılmadan yazmaq üçün gedir ilk 512 bayt fayl yaxşı deyil olan kart. OK. Beləliklə, biz bir açıq fayl fərz biz ki, fayl yazmaq olacaq Biz bufer var ki, 512 bytes. Və biz bir daha etmək üçün kontrol edirik əmin uğurla 512 bytes onlar deyil, çünki yazılmışdır uğurla yazılı, sonra bir şey yanlış getdi. Biz ki, çap, bizim faylları yaxın olacaq bir şey yanlış getdi və geri. Etsək, hər şey, düzgün gedir Biz yekun loop davam edəcəyik köhnə fayl, yeni fayl açılması, yazı belə yeni fayl data, və nəhayət, bu f oxumaq qədər sıfır qaytarır vasitələri fayl edilir. Belə ki, indi kart oxu üzərində ki, biz biz f yaxın olacaq ki, görmək biz açıq idi, lakin son fayl biz yoxlanılması əgər JPEG fayl bərabər null yoxdur. Yaxşı f yaxın çünki kimi əhəmiyyət kəsb edir biz bağlanması edirik, faylları açılış edirsinizsə Əvvəlki fayl, lakin son biz açılan fayl bağlıdır olur heç. Belə ki, bu nə var. Amma niyə biz null yoxlamaq lazımdır? Yaxşı nə varsa kart dot xam etmədi Bunun içərisində bir JPEG var? Bu halda, biz olardı bir fayl açılan heç vaxt. Bir fayl açmaq heç əgər, biz olmalıdır ki, fayl bağlamaq üçün cəhd deyil. Belə ki, bu check nə var. Mən əvvəl qeyd etdiyim kimi, indi burada, biz bilər ki, y loop ya əgər sınıq kart olduqda sona çatdı, və ya kart oxu bəzi səhv. Belə ki, bu var idi görmek üçün yoxlanılması olunur da, kart oxu bir səhv Bu halda, biz orada demək lazımdır bir səhv oxu idi. Biz istifadəçi düşünmək istəmirəm hər şey uğurla keçdi. Və biz səhv üçün bir qayıtmaq lazımdır. Nəhayət, biz f bizim xammal faylı bağlamaq lazımdır, bizim kart göstərir ki, xammal dot hər şey yaxşı və qaytarılması getdi sıfır və bu. My name Rob və bu Recover idi. [MUSIC PLAYING]