Վերականգնել dbf ֆայլը: DBF Recovery Toolbox ծրագրի հետ աշխատանքի նկարագրությունը: Ֆայլերի վերականգնման նկարագրությունը OfficeRecovery for DBF Online գործիքի կողմից


Սքրինշոթ 1.

Ծրագիրը սկսելուց անմիջապես հետո DBF վերականգնման գործիքների տուփբացվում է վերականգնման համար dbf ֆայլ ընտրելու պատուհան: Ցանկալի ֆայլը ընտրելու երեք եղանակ կա.

Բացի dbf ֆայլից, աղյուսակը կարող է իր կառուցվածքում ներառել նաև MEMO տիպի դաշտերից տեղեկատվություն պարունակող ֆայլ: Նման ֆայլերը սովորաբար ունեն անուն, որը համապատասխանում է dbf աղյուսակի անվանմանը և ընդլայնման fpt FoxPro աղյուսակների համար կամ *.dbt dBase աղյուսակների համար:

ՆշումՆշում․ Եթե վնասված dbf ֆայլը պարունակում է MEMO տիպի դաշտեր, բայց fpt կամ dbt ֆայլը նշված չէ, DBF Recovery Toolbox-ը կվերականգնի միայն դաշտի կառուցվածքը հիմնական աղյուսակի ֆայլում և դրանից հղումներ դեպի այս դաշտի ֆայլը։ . Այնուամենայնիվ, արտաքին ֆայլում պարունակվող տեղեկատվությունը չի մշակվի: Այսպիսով, եթե MEMO ֆայլը չի ​​վնասվել, ապա հնարավոր կլինի նորմալ հետագա աշխատանքը վերականգնված աղյուսակի հետ: Այնուամենայնիվ, եթե, բացի բուն dbf աղյուսակից, fpt կամ dbt ֆայլը վնասվել է և չի վերականգնվել, շահագործման ընթացքում հնարավոր են ձախողումներ:

Վերականգնվող աղյուսակի ֆայլն ընտրելուց հետո, աշխատանքը շարունակելու համար հարկավոր է սեղմել «Վերլուծել» կոճակը, որը գտնվում է ծրագրի պատուհանի ներքևում։

Եթե ​​սխալ է թույլ տրվել աղյուսակի ֆայլի անունը կամ ուղին մուտքագրելիս, ծրագիրը նախազգուշացում կտա: Խնդրում ենք ընտրել ֆայլը վերականգնելու համար: (Խնդրում ենք ընտրել վերականգնման համար ֆայլ!) և աղյուսակի կառուցվածքի վերլուծության գործընթացը չի սկսվի:


Սքրինշոթ 2.

Երբ դուք գնում եք աղբյուրի աղյուսակի կառուցվածքը և տվյալների բովանդակությունը դիտելու փուլը, ծրագիրը կցուցադրի պատուհան տվյալների վերականգնման գործընթացի սկզբի մասին նախազգուշացումով: Ցանկանու՞մ եք սկսել վերականգնումը: (Կցանկանայի՞ք սկսել վերականգնումը): Եթե ​​Ձեզ անհրաժեշտ է փոխել անունը կամ ուղին դեպի dbf ֆայլ, կամ ավելացնել MEMO ֆայլ ընտրությանը, ապա պետք է սեղմել No կոճակը և վերադառնալ ֆայլի ընտրության պատուհան՝ օգտագործելով Հետ կոճակը:

Եթե ​​բոլոր ֆայլերը ճիշտ են նշված, երկխոսության պատուհանում սեղմեք Այո կոճակը: Այս կոճակը սեղմելուց հետո ծրագիրը կսկսի վերլուծել dbf աղյուսակի ֆայլը և լրացուցիչ ֆայլերհուշագրությունների դաշտեր.

Եթե ​​աղբյուրի աղյուսակի կառուցվածքի վերլուծության ժամանակ հայտնաբերվել են MEMO դաշտեր, սակայն fpt կամ dbt ֆայլը` նման դաշտերի պահեստավորումը, նշված չէ, ապա ծրագիրը որոնում է այս տեսակի ֆայլեր` անվանմանը համապատասխանող անունով: աղբյուրի ֆայլը գրացուցակում, որտեղից այն կարդացվում է: Հայտնաբերվելուց հետո ծրագիրը կցուցադրի պատուհան՝ աղյուսակը վերլուծելիս ֆայլը օգտագործելու առաջարկով:

Տեղեկատվության վերլուծության և վերականգնման գործընթացում ծրագիրը DBF վերականգնման գործիքների տուփ:

  1. Կարդում է ֆայլի վերնագիրը, նույնականացնում է աղյուսակի դաշտերի անուններն ու տեսակները և որոշում այն ​​տեղաշարժերը, որոնցից գրառումները ֆիզիկապես սկսվում են սկզբնաղբյուր ֆայլում:
  2. Նույնականացնում է սկզբնաղբյուր աղյուսակում յուրաքանչյուր գրառումի սկիզբը և աղբյուրի ֆայլից հանում այդ գրառումների բոլոր դաշտերը: Եթե ​​աղյուսակը պարունակում է MEMO տիպի դաշտեր, ապա նույնականացնում է աղյուսակի գրառումներում պարունակվող հղումները դեպի այդ դաշտերի ֆայլում պահվող տվյալների հասցեները: MEMO ֆայլն ինքնին չի մշակվում:
  3. Եթե ​​ֆայլը կապված է հուշագրությունների դաշտեր(fpt կամ dbt), ծրագիրը վերլուծում է դրա կառուցվածքը և բացահայտում հիմնական աղյուսակի հղումներին համապատասխանող ֆայլերի գրառումները:

Տեղեկատվությունը վերականգնելիս էկրանի ներքևում կցուցադրվի առաջընթացի սանդղակ, որով կարող եք գնահատել, թե որ փուլում է տվյալների վերականգնումը։

Վնասված dbf ֆայլի վերլուծության ավարտից հետո վերականգնված տեղեկատվությունը աղյուսակի տեսքով կցուցադրվի պատուհանի հիմնական աշխատանքային տարածքում։ Էկրանին ցուցադրվող աղյուսակի սյունակները կհամապատասխանեն սկզբնաղբյուր ֆայլի դաշտերին, իսկ աղյուսակի տողերը՝ դրա գրառումներին։

Եթե ​​ֆայլն այնքան շատ է վնասվել, որ ծրագիրը չի կարող վերականգնել տեղեկատվություն դրանից, ապա պատուհանի ներքևում կհայտնվի «Ուղարկել ֆայլ մշակողներին» կոճակը, որով կարող եք վնասված ֆայլը ուղարկել ծրագրի մշակողներին՝ էլավելի մանրամասն վերլուծության և վերականգնման համար: Նաև ցանկացած պահի կարող եք ֆայլը ուղարկել մշակողներին վերլուծության համար՝ օգտագործելով «Ուղարկել սկզբնաղբյուր ֆայլի» կետը, որը գտնվում է Գործողությունների ցանկում:

Վերականգնված տեղեկատվությունը դիտելուց հետո անհրաժեշտ է սեղմել «Հաջորդ» կոճակը, որը գտնվում է ծրագրի պատուհանի ներքևում, որպեսզի անցնեք վերականգնված ֆայլի պահպանման փուլին:


Սքրինշոթ 3.

Բնօրինակ dbf ֆայլի և բոլոր կից ֆայլերի հետ աշխատելիս դրանցում փոփոխություններ չեն կատարվում: Ամբողջ աշխատանքը կատարվում է այնտեղ գտնվող տեղեկատվության պատճենով պատահական մուտքի հիշողությունհամակարգիչ։ Հետևաբար, վերականգնված տվյալների հետ հետագա աշխատանքի համար դրանք պետք է պահվեն սկավառակի վրա:

Միևնույն ժամանակ, սկզբնական ֆայլից վերականգնված տեղեկատվության պահպանումը հնարավոր է միայն ծրագրի գրանցված տարբերակում։ Փորձնական տարբերակում դուք կարող եք դիտել տեղեկատվությունը միայն 2-րդ փուլում:

Տեղեկատվությունը պահպանելու համար կարող եք օգտագործել ֆայլ ընտրելու երեք եղանակ.

  1. Մուտքագրեք ուղին և ֆայլի անունը Repaired file name (.dbf): combo վանդակում, որը գտնվում է պատուհանի հիմնական աշխատանքային տարածքում: Երբ բացում եք պահելու համար ֆայլ ընտրելու պատուհանը, ծրագիրը ավտոմատ կերպով լրացնում է մուտքագրման դաշտը: Լռելյայնորեն, առաջարկվում է վերականգնված dbf ֆայլը պահել նույն թղթապանակում, որտեղից ստացվել է սկզբնական ֆայլը, բայց սկզբնական ֆայլի անունից և _repaired վերջածանցից բաղկացած անունով։ Այսինքն, եթե օգտագործվում է example.dbf ֆայլը, ծրագիրը կառաջարկի պահպանել այն example_repaired.dbf անվան տակ։
  2. Ընտրելով պահելու համար նախատեսված թղթապանակ և ֆայլի անուն՝ օգտագործելով ստանդարտ ֆայլի պահպանման երկխոսությունը: Ֆայլի ընտրության երկխոսության կանչի կոճակը գտնվում է համակցված տուփի աջ կողմում: Երկխոսություն բացելիս օգտագործվում են նաև գրացուցակը, որտեղից կարդացվել է սկզբնաղբյուր ֆայլը և վերը նկարագրված սկզբունքով կառուցված ֆայլի անունը:
  3. Ընտրելով ֆայլ մուտքագրման դաշտի բացվող ցանկից: Սեղանի ֆայլերի հետ աշխատելիս ծրագիրը DBF վերականգնման գործիքների տուփպահպանում է տեղեկատվությունը նախկինում պահված ֆայլերի մասին իր կարգավորումներում, և անհրաժեշտության դեպքում այդ անուններն ու ֆայլերի ուղիները կարող են կրկին օգտագործվել:

Պահված ֆայլի ուղին և անունը նշելուց հետո վերականգնված տեղեկատվությունը պահպանելու համար անհրաժեշտ է սեղմել «Պահպանել» կոճակը, որը գտնվում է ծրագրի պատուհանի ներքևում:

Եթե ​​Repaired file name (.dbf): դաշտում նշված գրացուցակը գոյություն չունի, գրացուցակը գոյություն չունի, կցուցադրվի նախազգուշացում, ֆայլը չի ​​պահպանվի, և ծրագիրը կմնա պահման համար ֆայլ ընտրելու փուլում: .

Եթե ​​դաշտում նշված ֆայլն արդեն գոյություն ունի, ծրագիրը ձեզ կառաջարկի վերագրել այն Ցանկանու՞մ եք վերագրել գոյություն ունեցող ֆայլը: (Ցանկանու՞մ եք վերագրել գոյություն ունեցող ֆայլը): Եթե ​​սեղմված է No կոճակը, ծրագիրը նույնպես կմնա ֆայլի ընտրության փուլում։ Եթե ​​սեղմված է Այո կոճակը, կամ եթե ֆայլն արդեն գոյություն չունի, DBF Recovery Toolbox-ը կանցնի վերականգնման արդյունքների դիտման փուլ:


Սքրինշոթ 4.

Ծրագիրը կարող է պահպանել աղբյուրի ֆայլից կարդացված տեղեկատվությունը ցանկացած ձևաչափով՝ dBase III-IV, FoxPro 3.x (կամ ավելի ուշ): Այնուամենայնիվ, հիշեք, որ փաստաթուղթը ձևաչափով պահելիս նախորդ տարբերակներըորոշ տվյալներ, որոնք անհամատեղելի են պահպանված ֆայլի տարբերակի հետ, կարող են կորչել կամ վնասվել:

Պահպանված փաստաթղթի ձևաչափն ընտրվում է՝ օգտագործելով Ընտրել ելքային DBF ֆայլի տարբերակը՝ բացվող ցուցակի դաշտը (Ընտրեք ստացված DBF ֆայլի տարբերակը):

Երբ բացում եք պահված փաստաթղթի ձևաչափը ընտրելու պատուհանը, ծրագիրն ավտոմատ կերպով առաջարկում է պահպանել վերականգնված փաստաթուղթը բնօրինակ փաստաթղթին համապատասխան ձևաչափով: Եթե ​​սկզբնաղբյուր ֆայլն այնքան է վնասվել, որ հնարավոր չի եղել որոշել դրա տարբերակը, ապա ծրագիրը լռելյայն կառաջարկի ֆայլը պահպանել վերջին հասանելի ձևաչափով:

Պահպանված փաստաթղթի ձևաչափի կարգավորումներն ավարտելուց հետո տվյալների վերականգնման և պահպանման գործընթացին անցնելու համար անհրաժեշտ է սեղմել Save file կոճակը, որը գտնվում է ծրագրի պատուհանի ներքևում:

Անհրաժեշտության դեպքում կարող եք վերադառնալ պահման համար նախատեսված ֆայլ ընտրելու էջ՝ սեղմելով Հետ կոճակը:


Սքրինշոթ 5.

Աշխատանքի այս փուլում ծրագիրը պատուհանի հիմնական աշխատանքային տարածքում ցուցադրում է տեղեկատվություն բոլոր ֆայլերի մասին, որոնք վերականգնվել են իր աշխատանքի այս նստաշրջանում: Տեղեկատվությունը բաղկացած է.

  • վերականգնվող ֆայլի անունը և ճանապարհը.
  • անունը և ուղին դեպի այն ֆայլը, որում պահվել է վերականգնված տեղեկատվությունը.
  • վերականգնված գրառումների քանակը.
  • այն ժամանակը, երբ վերականգնվել է dbf աղյուսակի ֆայլը:

Գրանցամատյանը դիտելուց հետո կարող եք վերադառնալ՝ օգտագործելով «Հետ» կոճակը, որը գտնվում է ծրագրի պատուհանի ներքևում՝ ծրագրի հետ աշխատելու ցանկացած կարգավորում փոխելու համար (վերականգնված ֆայլը պահելով այլ անունով, ընտրելով այլ ֆայլ վերականգնման համար և այլն: .).

Եթե ​​ավարտվել եք ծրագրի հետ, կարող եք սեղմել Ավարտել կոճակը դուրս գալու համար կամ պարզապես փակել ծրագրի պատուհանը:

Աշխատանքի ավարտ

Գրանցամատյանը վերանայելուց հետո կարող եք դուրս գալ՝ սեղմելով Ելք կոճակը կամ ընտրելով Exit հրամանը Ֆայլի ցանկից: Հնարավոր է նաև, օգտագործելով Bak կոճակը (Վերադարձ), վերադառնալ ծրագրի առաջին էջ և ընտրել այլ ֆայլ վերականգնման համար: Խնդրում ենք նկատի ունենալ, որ այս դեպքում, երբ դուք պահում եք ֆայլը, վերականգնված ֆայլի անունը և պանակը ինքնաբերաբար չեն փոխվում, և դուք պետք է դրանք ձեռքով փոխեք կամ ընտրեք երկխոսության միջոցով:

Նախկինում տեղադրվել է Clipper Summer 87-ում:
Ես պետք է ստեղծեմ CDX ինդեքսային ֆայլ Clipper 5.3-ում, բայց ես չեմ կարող նույնիսկ exe ֆայլ ստեղծել:
Տեղադրված է ծրագրի սկզբում.
ՀԱՅՑԵԼ DBFCDX
rddSetDefault («DBFCDX»)
Ես կապում եմ, ինչպես օրինակում.
BLINKER FILE $(objs) OUTPUT [էլփոստը պաշտպանված է] lib dbfcdx.lib

Կառուցելիս այն տալիս է սխալ.
BLINKER՝ 1115՝ DBFCDX.LIB(CL53INIT)՝ «_DBFCDX»՝ չլուծված արտաքին

Փոխարինված է BLINKER-ը:
Սկսեց փորձել հավաքել BLINKERom 6.0-ը
նույնը.

Ինչն է հետաքրքիր, եթե DBFCDX-ի փոխարեն օրինակին միացնեք DBFNDX, այսինքն.
ծրագրում
ՀԱՅՑԵԼ DBFNDX
rddSetDefault («DBFNDX»)
եւ հետո
BLINKER FILE $(objs) OUTPUT [էլփոստը պաշտպանված է] lib dbfndx.lib
ամեն ինչ կապվում է և լավ է աշխատում:

Երկրորդ հարցի վերաբերյալ. իմ համակարգում ես նաև օգտագործում եմ և՛ CLIPPER (ավելի հաճախ), և՛ FOXPRO (ավելի հաճախ և կապված դրա հետ, քանի որ FOXPRO-ն ունի մահացու թերություն՝ զանգվածի առավելագույն չափը 2 է: Ալգորիթմիստի համար սա վառելափայտ է: Եթե ​​ես անմիջապես իմանայի, ես, ընդհանուր առմամբ, FOX-ը չէր կապվի): Բայց, այնուամենայնիվ, մի քանի ծրագրեր արդեն FOXe-ում են։ Այնուամենայնիվ, ես չեմ հասկանում, թե ինչու են ընդհանուր ցուցանիշներ անհրաժեշտ: Կլիպերի մեջ ես օգտագործում եմ NDX-ը, իսկ FOXe-ում օգտագործում եմ նրա ցցված IDX-ը, DBF-ը սովորական է: Աշխատանքը շարունակվում է առանձին-ամեն մեկին՝ իրենը։ Թե՞ համակարգն այնքան մոնումենտալ է, որ երկու կողմից էլ ֆայլերի փոփոխությունների շարունակական հոսք կա: Վախենում եմ, որ ինդեքսային մակարդակով իրար հետ այդքան սերտ համագործակցող տարասեռ համակարգերի համար նորմալ լուծում չկա։
Իսկ CDX Clipper-ի ստեղծման հետ կապված անսարքությունների մասին, միակ խորհուրդը նվազագույն թեստային դեպքով ֆայլ ներբեռնելն է առանց թեմայի մասի (prog + DBF + անսարքության նկարագրություն (երբ և ինչպես է դա դրսևորվում), գուցե ինչ-որ մեկը կարողանա հասնել այն, ինչ կատարվում է.
Գոնե ինձ հետաքրքրեց։

Պատասխանել նախորդ նամակին. Իհարկե, հղում եմ անում _dbfcdx.lic-ին, բայց դա չի օգնում։

Առաջացած հետաքրքրությունը հասկանալու համար կարող եք վերցնել առաջին հասանելի .DBF-ը և կառուցել այն՝ օգտագործելով ցանկացած ինդեքսային արտահայտություն: CDX կլիպերով և աղվեսով:
Ինդեքսների չափերը տարբեր կլինեն, էլ չեմ խոսում իբր նույնական ինդեքսների բովանդակության մասին։

ժամը աղվեսնկատմամբ կա առավելություն կլիպերԱյն շատ ավելի արագ է աշխատում տվյալների բազայի հետ, և ես խնդիր ունեմ 400 հազար բաժանորդների համար, որոնց ամեն ամիս զանգվածաբար պետք է հաշվել։ Ֆոքսը կօգներ այստեղ, հակառակ դեպքում ես վազում եմ ղեկավարության շուրջը, փնտրում եմ համակարգիչներ, որոնք կարելի է գիշերը թողնել հաշվարկի համար։ Այսպիսով, նման փունջը երբեմն շատ օգտակար է KSS. ... Ես խնդիր ունեմ 400 հազար բաժանորդի համար ... ... հակառակ դեպքում ես վազում եմ ղեկավարության շուրջը, ես փնտրում եմ համակարգիչներ, որոնք կարելի է գիշերը թողնել հաշվարկի համար: Իհարկե, սա չէ թեման, բայց նման քանակի բաժանորդների և, հետևաբար, բարձր պատասխանատվության դեպքում իմաստ ունի առանձին սերվեր հատկացնել։ Այնուհետև կարող եք դրա վրա գործարկել սպասարկման առաջադրանքները: My Clipper ծրագիրը, որն արդեն 13 տարեկան է, անում է հենց դա։

Անդրեյ. Urri-ն գրում է. Ես առաջադրանք ունեմ 400 հազար բաժանորդի համար, ես նախկինում առաջադրանք ունեի 150 հազար բաժանորդի համար: Ամբողջ գիշեր հաշվում էի։ Հետո ալգորիթմը սահմանափակող էր (երկար ժամանակ արեց դա) սկսեց հաշվել 5 ժամից։ Տեղափոխվել է Հարբոր։ Համարում է մոտավորապես 1,5-2 ժամ։ Այսպիսով, Fox, Clipper - ժամանակն է անցնել նորմալ կոմպիլյատորների: Եվ եթե ղեկավարությունը չի հասկանում ձեր աշխատանքը, դուք պետք է փոխեք ղեկավարությունը, կամ հրաժարվեք աշխատանքից: Որքան շուտ հասկանաք այս ճշմարտությունը, այնքան ավելի հեշտ կլինի ապրել:

Ես նայեցի xHarborիր կարիերայի սկզբում, բայց հետո նա հնարավորություն չգտավ դրան կցել ADS, առանց որի հիմա ես չեմ պատկերացնում աշխատել իմ մեծ տվյալների բազայում (ինդեքսների և գործարքների ճշգրտությունը թանկ է): Եթե ​​գիտեք, թե ինչպես ընկերանալ ADS-ի հետ, խնդրում եմ ասեք ինձ և հղում տվեք, թե որտեղից կարելի է ստանալ կայուն աշխատող xHarbor: Ես կփորձեմ դրա վրա բարձրացնել կարգավորման մասը, միգուցե ավելի լավ զգա։

Անցիր նորմալ կոմպիլյատորի, ասում ես? Սա այն դեպքում, երբ մեքենաների 60%-ը (300-ից) այնպիսին է, որ դրանց կեսը w98-ը դժվարությամբ է կարողանում քաշել, իսկ մյուս կեսը՝ w95-ն աջակցում է միայն 14" մոնիտորների և 640*480 լուծաչափի... VBasic-4՞ հիմա դժվար է փոխել մենեջմենթը. շուրջբոլորը ճգնաժամ է, սակայն ծրագրավորողների գործատուները հիմա չեն սիրում ծրագրավորողներին: Թե՞ ձեր տարածաշրջանում այլ է: Փաշա. Նավահանգստում գովազդի աջակցություն կա: Նավահանգիստ Գովազդի հետ ընկերացել է նույնիսկ ավելի վաղ, քան DBFCDX-ի հետ, այսինքն՝ գովազդի համար աշխատելը պատրաստ էր, երբ DBFCDX-ը դեռ խելագարված էր:

Անդրեյ. Ուռին գրում է, որ կեսը w98-ը հազիվ է քաշում, իսկ մյուս կեսը՝ w95-ը միայն 14 դյույմանոց մոնիտորներ է աջակցում և 640*480 լուծաչափով... Ի՞նչ, VBasic-4-ի վրա, և դա ավելի արագ կլինի: Ես նույնպես Նախկինում շատ էի կասկածում, բայց հիմա միայն մտածում եմ, թե ինչու նախկինում ոչ ոք դա (xHarbor) ինձ ցույց չի տվել!!!Ես արդեն բերել եմ իմ 5 համակարգ և մյուսներից 3-ը!!!

Ուրրի. Հարգելի՛ (մոդերատոր Փաշայի հետ միասին): Դուք չեք ծաղրում, այլ հղում եք տալիս xHarbor-ի և rdd-ի կայուն թողարկմանը ADS-ի համար և որտեղ կարող եք ինչ-որ բան կարդալ: Խնդրում եմ։ Շատ անհրաժեշտ

Անդրեյ: Անիծյալ: Դուք պարզապես վերցրեք xharbour-ը, ներբեռնեք տարբերակը այնտեղից և վերջ: Ես արդեն գրեթե մեկ տարի է այս տարբերակի վրա եմ:

Թեստ արեց Կլիպեր 5.3, Բլինկեր 1.0 և FoxPro 8:
Կան երկու նույնական ֆայլեր testclp.dbf և testfox.dbf
դաշտերով NAME, NAME1 - C(10), NUMBER, NUMBER1, SUMMACLP, SUMMAFOX - N(10):
Հատուկ ծրագիր fill.exe<кол-во записей>այս երկու ֆայլերը լրացնում է այսպես.
NAME=A000000001, NUMBER1=1 1-ին մուտքի համար,
NAME=A000000002, NUMBER1=2 2-րդ մուտքի համար և այլն:
NAME1 և NUMBER1 դաշտերը լրացվում են նույն ձևով, բայց հակառակ հերթականությամբ, այսինքն. նշված արժեքները կունենան վերջին և նախավերջին գրառումները և այլն: SUMMAFOX և SUMMACLP դաշտերը fill.exe ծրագրով չեն լրացվում:
Հաջորդը, կան երկու նմանատիպ ծրագրեր CLIPPER-ում (testclp.exe) և FoxPro-ում (testfox.exe): Testclp.exe-ի (կլիպերի) համար առաջադրանքը հետևյալն է.
ա) ինդեքսավորեք testclp.dbf ֆայլը NAME դաշտով (պիտակ FLD)
և ըստ NAME1 դաշտի (պիտակ FLD1), այդպիսով ստեղծելով «սեփական» ինդեքս testclp.cdx;
բ) անցեք testfox.dbf ֆայլով և օգտագործելով a)-ում ստեղծված ինդեքսային ֆայլը testfox.dbf-ից յուրաքանչյուր տողի համար ըստ NAME արժեքի, գտեք testclp.dbf ֆայլի այն տողը, որն ունի նույն NAME դաշտը և ավելացրեք ԹԻՎԸ: դաշտը այս ֆայլից դեպի SUMMACLP դաշտ testfox.dbf-ից; ապա, օգտագործելով նույն NAME արժեքը, testclp.dbf ֆայլում գտեք մեկ այլ տող, որն ունի նույն NAME1 դաշտը և SUMMACLP դաշտից հանեք testfox.dbf:
գ) անցեք testclp.dbf ֆայլով և օգտագործելով մեկ այլ ծրագրի կողմից ստեղծված testfox.cdx ինդեքսային ֆայլը (testfox.exe - FoxPro),
testclp.dbf-ից յուրաքանչյուր տողի համար ըստ NAME արժեքի, գտեք տողը
testfox.dbf ֆայլում, որն ունի նույն NAME դաշտը և ավելացրեք ԹԻՎ դաշտը
այս ֆայլից դեպի SUMMACLP դաշտ testclp.dbf-ից; ապա նույն NAME արժեքով
testfox.dbf ֆայլում գտնել մի տող, որն ունի նույն NAME1 դաշտը և
հանել SUMMACLP testclp.dbf դաշտից:
Testfox.exe-ի համար (FoxPro) նմանատիպ խնդիր.
ա) ինդեքսավորել ֆայլը testfox.dbf ըստ NAME դաշտի (պիտակ FLD)
և ըստ դաշտ NAME1 (նշել FLD1), իսկ ստեղծելով «ձեր» testfox.cdx ինդեքսը;
բ) անցեք testclp.dbf ֆայլով և օգտագործելով a)-ում ստեղծված ինդեքսային ֆայլը testclp.dbf-ից յուրաքանչյուր տողի համար ըստ NAME արժեքի, գտեք testfox.dbf ֆայլի այն տողը, որն ունի նույն NAME դաշտը և ավելացրեք ԹԻՎԸ: դաշտ այս ֆայլից դեպի SUMMAFOX դաշտ testclp.dbf-ից; ապա, օգտագործելով նույն NAME արժեքը, testfox.dbf ֆայլում գտեք մի տող, որն ունի նույն NAME1 դաշտը և SUMMAFOX դաշտից հանեք testclp.dbf:
գ) անցեք testfox.dbf ֆայլով և օգտագործելով մեկ այլ ծրագրի կողմից ստեղծված testclp.cdx ինդեքսային ֆայլը (testclp.exe - Clipper),
testfox.dbf-ից յուրաքանչյուր տողի համար ըստ NAME արժեքի, գտեք տողը
testclp.dbf ֆայլում, որն ունի նույն NAME դաշտը և ավելացրեք ԹԻՎ դաշտը
այս ֆայլից դեպի SUMMAFOX դաշտ testfox.dbf-ից; ապա նույն NAME արժեքով
գտնել մի տող testclp.dbf ֆայլում, որն ունի նույն NAME1 դաշտը և
հանել SUMMAFOX testfox.dbf դաշտից:
Այսպիսով, ճիշտ աշխատելիս երկու ծրագրերն էլ պետք է յուրաքանչյուր ֆայլի յուրաքանչյուր դաշտում ավելացնեն և հանեն նույն թիվը (չնայած այն գտնվում է տարբեր գրառումներում), և արդյունքում, երբ համակարգը ճիշտ է աշխատում, զրոյական արժեքները պետք է մնան: SUMMACLP և SUMMAFOX դաշտերը երկու ֆայլերում:
Թեստն իրականացվել է 100 000 և 400 000 գրառումների համար, և չնայած ինդեքսային ֆայլերի տարբեր չափերին, այն տվել է ճիշտ արդյունք։ Միակ բանն այն է, որ գրառումներ ավելացնելիս ինդեքսային ֆայլերից մեկը («օտար») մնում է սխալ, հետևաբար, առաջին մեկնարկի ժամանակ ծրագրերից յուրաքանչյուրն աշխատում է միայն «իր» ինդեքսով, իսկ «օտար» չի կատարում: . Երկրորդ ծրագիրը գործարկելուց հետո երկու ֆայլերը ճիշտ ինդեքսավորվում են, և երկու ծրագրերն էլ սկսում են աշխատել առանց ձախողումների (նմանապես, երբ գրառումների թիվը կրճատվում է, բայց FoxPro-ն խափանում է ուրիշի ինդեքսի վրա սխալի մեջ, և ես ստիպված էի կիրառել ON ERROR կարգավորիչը: .. Բայց դա պայմանավորված է նրանով, որ գրառումների քանակի փոփոխությունը կատարվում է fill.exe-ի կողմից՝ առանց երկու ինդեքսները բացելու, ինչպես նաև այն պատճառով, որ ծրագրերից յուրաքանչյուրը չի վերաինդեքսավորում ուրիշի ինդեքսը (այսինքն՝ սա
խնդիրն արհեստականորեն է ստեղծված՝ այլ կերպ չպետք է լինի): Եթե ​​թույլ եք տալիս FoxPro-ին վերաինդեքսավորել ուրիշի ինդեքսը, ապա նորմալ աշխատանքվերականգնվում է։ Ավելին, ես չեմ «բարելավել» սխալների հետ աշխատելու համակարգը, որպեսզի երկու ծրագրերն էլ շատ չտարբերվեն միմյանցից։
Արդյունքը հետևյալն է.
1) Սկզբում ես ունեի Clipper 5.3 առանց կարկատակի (և ես երկար ժամանակ աշխատում էի դրա վրա): Այն իսկապես խափանվեց. սկսելով մոտ 40,000 ձայնագրություն, երբեմն այն լավ էր աշխատում, երբեմն այն խափանվում էր, երբեմն այն խափանում էր սխալով (ինչպես ծրագիրը, որը կատարեց անօրինական գործողություն) ծրագրի սկզբում, երբ փորձում էին ինդեքսավորել «իր» CDX-ը: Ինչպես խորհուրդ է տրվել այստեղ՝ ֆորումում, ես կարկատել եմ 5.3b-ին. ամեն ինչ լավ էր աշխատում: Բայց նույնիսկ կարկատելուց առաջ խափանումներն այն իմաստով չէին, որ FoxPro ինդեքսները չհասկացան՝ առանց վերաինդեքսավորում(երբ երկու ինդեքսներն էլ ստեղծվել էին FoxPro-ի կողմից) մշակումը սովորաբար կատարվում էր, CLIPPER-ն ընկավ «իրենց» ինդեքսների ստեղծման վրա:
2) ժամանակակից DBMS-ի համար 400000 գրառումները շատ չեն: Ինչպես
երևում է թեստի արդյունքներից՝ ամբողջ ֆայլը մշակելով պատահական որոնմամբ
տեւում է առավելագույնը 2-3 րոպե նույնիսկ փոքր-ինչ հնացած համակարգիչների վրա: Այսպիսով, 2-4 ժամ ժամանակակից տեխնոլոգիաների վրա (և նույնիսկ 30 րոպե) իմ կարծիքով «das ist fantastisch» է: Խնդիրն ամենայն հավանականությամբ կա՛մ ոչ տնտեսական ալգորիթմի մեջ է, կա՛մ նման խցանումների մեջ թողունակությունցանցեր (հաճախորդ-սերվեր ճարտարապետության մոլուցքի պատճառով, որին ես բացասաբար եմ վերաբերվում, բայց սա օֆտոպիկ է): 3) Ինչպես երևում է թեստի արդյունքներից, ինդեքսի ստեղծման ժամանակը աննշան է գործառնական ընդհանուր ժամանակի համեմատ, ուստի ավելի լավ է ինդեքսները նորից ստեղծել նախքան ֆայլերի մշակումը սկսելը, չվստահելով նախկինում ստեղծված «օտար» և «սեփական» « ինդեքսներ (եթե դրանք ներկայումս չեն օգտագործվում այլ ծրագրերի կողմից):
Ծրագրերից յուրաքանչյուրը նորմալի դեպքում ֆայլերի մշակումհաղորդում է այն ժամանակը (վայրկյաններով), որն անհրաժեշտ է.
- «սեփական» ինդեքսի ստեղծում (կետ ա);
- ֆայլերի մշակում «սեփական» ինդեքսով (կետ բ);
- ֆայլերի մշակում «օտար» ինդեքսով (կետ գ);
- աշխատանքի ընդհանուր ժամանակը (այստեղ ավելացված է ավելի շատ ժամանակ՝ դաշտերը լրացնելու համար
SUMMAFOX և SUMMACLP երկու ֆայլերում զրո արժեքներով):
Կից արխիվ.
info.doc - գործարկման փորձի արդյունքներ:
fill.prg - օժանդակ տեքստ ծրագրերըկլիպերի վրա՝ ֆայլերը լրացնելու համար:
calc.prg - Clipper ծրագրի տեքստը:
program1.prg - FoxPro ծրագրի տեքստը:
makefill.bat - ստեղծում է fill.exe (պետք է մի փոքր կարգավորվի)
makecalc.bat - ստեղծում է testclp.exe (նույնը):
proj1.pjx - FoxPro նախագծի ֆայլ:
testfox.dbf և testclp.dbf տվյալների ֆայլեր են (ստեղծվել են DBU-ում):
testclp.cdx - ինդեքսային ֆայլ, որը ստեղծվել է CLIPPER-ի կողմից:
testfox.cdx-ը ինեքս ֆայլ է, որը ստեղծվել է FoxPro-ի կողմից:
fill.exe- ծրագիրըֆայլերը լրացնելու համար:
testclp.exe - CLIPPER ծրագիր:
testfox.exe-ը FoxPro ծրագիր է:
testfox.exe-ին կպահանջվի գործարկման միջավայր (VFP6-ից
հավանաբար չի աշխատի, ուստի ստիպված կլինեք օգտագործել program1.prg-ի տեքստը
և հնարավոր է շտկվի։)
Արխիվի չափը նվազեցնելու համար dbf ֆայլերը պարունակում են 10-ական գրառում, իրական թեստերի համար պետք է ավելացնել գրառումների քանակը։
Եթե ​​CLIPPER 5.2-ը հասանելի է, ապա դուք նույնպես պետք է ուղղեք fill.prg և сalc.prg:
Կփորձեմ մի փոքր ուշ կատարել CLIPPER «87», «CLIPPER 5.2» և «VFP6» թեստերը, քանի որ ես չեմ աշխատում այս տարբերակների հետ և այժմ դրանք աշխատանքային վիճակում չեն:
(ինչպես նաև խաչաձև թեստեր, ինչպիսիք են CLIPPER 5.2<->VFP8 և CLIPPER 5.3<->VFP6):
Չնայած առաջադրանքի ակնհայտ պարզությանը, այն դեռ շատ ժամանակ պահանջեց, բայց հենց այդպիսի օբյեկտիվ համեմատական ​​ուսումնասիրություններն են ինձ համար զգալի հետաքրքրություն ներկայացնում: Իմ կարծիքով ֆանտաստիկ են: Խնդիրը, ամենայն հավանականությամբ, կամ ոչ տնտեսական ալգորիթմում է, սա խնդիր չէ և ոչ էլ ոչ տնտեսական ալգորիթմ: Նորմալ, այլ կերպ: Այս ալգորիթմի հայեցակարգի համար անհրաժեշտ է ներկայացնել 24 գումարի ստացման արժեքների, փողի ստացման 24 ամսաթվերի, 24 սակագների, 24 գանձումների և այլնի արժեքների գրառում: տվյալների բազայում մեկ գրառում: Այսպիսով, այն դեռ գրված է իմ կողմից Clipper-ի վրա, և ես դեռ չեմ վերափոխել այն և հավանաբար չեմ էլ անի: Ես տեսա, թե ինչպես են 1C պլատֆորմի 7.5 տարբերակում նրանք իրականացնում կոմունալ վճարումների հաշվեգրումը, այնպես որ կա 9.tys: բաժանորդների կուտակումները կատարվել են մոտ 5 ժամվա ընթացքում։ Եվ ոչինչ, ոչ ոք չբողոքեց։

Ծրագրեր համակարգչի վրա կորցրած տեղեկատվությունը վերականգնելու համար:

Նոր Տվյալների վերականգնում կատեգորիայում.

Անվճար
UndeletePlus 3.0.2.406-ը փոքր հավելված է, որը վերականգնում է ջնջված ֆայլերը: Undelete Plus հավելվածը կօգնի ձեզ վերականգնել կորցրած ֆայլերը, ներառյալ DOS ռեժիմում ջնջվածները, թափոնարկղից, Windows Explorer-ից կամ ցանցային սկավառակից:

Անվճար
Scan DBF 1.6-ը վնասված DBF ֆայլերի վերանորոգման կամ վերականգնման ծրագիր է: Scan DBF հավելվածը կօգնի ձեզ վերականգնել վնասված ֆայլերը համակարգչի կամ հոսանքազրկման դեպքում, երբ DBF ֆայլի վերջը կամ վերնագիրը վնասված է։

Անվճար
Recuva 1.42.544 է հարմար հավելվածվերականգնման համար ջնջված ֆայլեր. Recuva հավելվածը հեշտ է օգտագործել և կկարողանա վերականգնել տվյալները առանց որևէ կոնֆիգուրացիայի կամ այն ​​օգտվողների համար, ովքեր նախկինում չեն հանդիպել նմանատիպ ծրագրերի:

Անվճար
«Վերականգնել իմ ֆայլերը» 4.9.4.1343-ը ֆայլերը վերականգնելու ծրագիր է, որոնք ջնջվում են գործառնական աղբամանի միջոցով: Windows համակարգ. Նաև «Վերականգնել իմ ֆայլերը» հավելվածը հնարավորություն ունի վերականգնելու այն ֆայլերը, որոնք կորել են սկավառակի ձևաչափման պատճառով, ջնջվել են ԱՀ-ի ձախողման, ծրագրաշարի ձախողման կամ վիրուսների պատճառով ջնջված:

Անվճար
PC INSPECTOR File Recovery 4.0-ը ծրագիր է, որը ձեզ անհրաժեշտ կլինի վերականգնել տեղեկատվությունը վնասվելու դեպքում: կոշտ սկավառակ. PC INSPECTOR File Recovery-ը կարող է աշխատել ֆայլի հետ FAT համակարգեր 12/16/32, ինչպես նաև NTFS:

Անվճար
OS Backup Wizard 1.19-ը Windows-ի համար պահեստային հավելված է: եզակիությունը այս հավելվածըՀամակարգը կրկնօրինակելիս դրա համար սկավառակի լրացուցիչ տարածություն չօգտագործելու ունակությունն է:

Անվճար

Անվճար
Norton Ghost 15.0.0.35659-ը կրկնօրինակման և վերականգնման հավելված է անհատական ​​համակարգիչներ. Հավելվածն աջակցում է կրկնօրինակում և վերականգնում՝ առանց համակարգը վերագործարկելու:

Անվճար
Handy Backup 7.1.1-ը հարմար հավելված է ձեր տվյալների և փաստաթղթերի պատճենների ավտոմատ ստեղծման համար, որոնք կարող են պահվել ցանկացած սարքում (արտաքին կամ ներքին, ինչպես նաև CD-RW) կամ վերբեռնել FTP սերվեր:

Անվճար
GetDataBack 4.25-ը հզոր և հարմար գործիք է ձեր կոշտ սկավառակից կորցրած, վնասված կամ ջնջված տեղեկությունները վերականգնելու համար: GetDataBack հավելվածն ապահովում է ինտուիտիվ հստակ ինտերֆեյսև բարելավված կատարողականություն:

Անվճար
BadCopy Pro 4.10.1215-ը վնասված, վիրուսներ ունեցող, սխալ ձայնագրված կամ որևէ սխալ ունեցող CD-ներից, անգործունյա սկավառակներից, ֆլեշ սարքերից կամ կոշտ սկավառակներից տվյալների վերականգնման ծրագիր է: BadCopy հավելվածն աշխատում է ավտոմատ կերպով, երբ նշում եք վերականգնման գրացուցակը, գրաֆիկական, տեքստային և գործարկվող ֆայլերի, արխիվների և այլ տեսակի ֆայլերի տարբեր ձևաչափերով աշխատելու ունակությամբ:

Անվճար
Acronis True Image Home 2011 Build 6942/ Home 2012 Build 5545 հզոր հավելված է ընտրված սկավառակի բաժանմունքների կամ սկավառակների ճշգրիտ պատկերներ ստեղծելու համար: Acronis True Image հավելվածը ստեղծում է բոլոր տվյալների, հավելվածների և օպերացիոն համակարգերի ամբողջական կրկնօրինակում` հնարավորությամբ արագ վերականգնումկամ պատճենված է մեկ այլ համակարգչի վրա՝ այս համակարգչի ամբողջական պատճենը ստեղծելու հնարավորությամբ:

Անվճար
Acronis Disk Director 11 Home-ը համապարփակ ծրագրային փաթեթ է բազմաթիվ գործիքներով, որոնք անհրաժեշտ են միջնորմների և կոշտ սկավառակի կրիչների հետ աշխատելու համար: Ծրագրային փաթեթը հնարավորություն ունի կառավարելու ձեր սկավառակները և միջնորմները, ինչպես նաև ստեղծել ձեր սեփական բեռնման սկավառակները Պահպանեք պատճենըհամակարգը և դրա արագ վերականգնումը:

Անվճար
DiVFix 1.10 այս ծրագրով դուք հեշտությամբ կարող եք դիտել մասամբ վերբեռնված .avi տեսանյութերը: DiVFix-ն աջակցում է տարբեր վիդեո ձևաչափերի դիտմանը, ներառյալ .wmv կամ .mpeg: Քանի որ .avi ֆայլերը կարելի է դիտել միայն այն դեպքում, երբ դրանք ամբողջությամբ ներբեռնված են, պայմանավորված է նրանով, որ ֆայլերի վերջում կա ինդեքսային աղյուսակ, և առանց դրա այն չի կարող բացվել, դրանք չեն կարող խաղալ նաև այլ խաղացողների վրա:

Անվճար
Avi Previewer 2.2.7-ը ծրագիր է, որն ունի թերի ներբեռնված կամ պարզապես վնասված avi ֆայլեր դիտելու հնարավորություն, որոնք հնարավոր չէ խաղալ սովորական նվագարկիչների վրա կամ ունեն թերություններ: Avi Previewer ծրագիրը թույլ կտա շտկել ֆայլերը, եթե դրանք վնասված են, վերականգնել դրանք արխիվից ջնջելուց կամ սխալ հանելուց հետո և այլն:

Անվճար
Advanced ZIP Password Recovery 4.00-ը ZIP արխիվների կորցրած գաղտնաբառերը վերականգնելու ունակությամբ ծրագիր է:

Բիզնես լուծումներ

Օգտագործման դեպքում առցանց ծառայությունիսկ վերականգնման համար անհնար է, կարող եք ներբեռնել հետևյալ կոմունալ ծառայություններից մեկը.

Բացի տանը տեղեկատվություն վերականգնելու հնարավորությունից, նրանք նաև ապահովում են մեծ թվով ֆայլեր վերականգնելու անսահմանափակ հնարավորություններ, մասնագիտական ​​աջակցություն և բազմաթիվ այլ տարբերակներ, որոնք օգտակար են կորպորատիվ օգտագործողների համար:

OfficeRecovery առցանց ծառայությունից օգտվելու վիդեո ուղեցույց

OfficeRecovery-ի մասին DBF Online-ի համար

OfficeRecovery-ը DBF-ի համար Առցանց վերանորոգում է DBF (dbf) տվյալների շտեմարանների վնասվածությունը:

Visual FoxPro-ի աջակցվող տարբերակները.
9.0, 8.0, 7.0, 6.0, 5.0 և 3.0

Վերականգնված տվյալները պահվում են նոր Visual FoxPro տվյալների բազայում:

Ֆայլի վերականգնման ավարտից հետո դուք կարող եք գնահատել ցուցադրական արդյունքները և գրանցվել անվճար արդյունքների համար կամ անմիջապես գնել դրանք: Եթե ​​ֆայլը հնարավոր չէ վերականգնել, կարող եք պատվիրել դրա վերլուծությունը մեր փորձառու մասնագետների թիմի կողմից:

Օգտագործման օրինակներ

Վերականգնման ծառայություն վնասված ֆայլեր DBF-ը կարող է օգտագործվել, երբ dbf ֆայլը չի ​​բացվում Microsoft Visual FoxPro-ում, և բացման ժամանակ տեսնում եք սխալներ կամ նախազգուշացումներ:

Վնասվածը արագ վերականգնելու համար dbf ֆայլ, վերբեռնեք dbf տվյալների բազան մեր ամպային ծառայությունվերականգնում՝ օգտագործելով այս էջի ձևը:

Կարևոր է նշել, որ եթե վերականգնման գործընթացը հաջող է, ապա արդյունքում դուք կստանաք օգտագործման համար պատրաստ dbf ֆայլ: Դուք կարող եք ստանալ լիովին վերականգնված dbf տվյալների բազա՝ ընտրելով վճարովի կամ անվճար տարբերակներ:

Ստանդարտ հատկանիշներ.

  • Աջակցություն Microsoft Visual FoxPro, dBASE, FoxBASE DBF տվյալների բազաներին
  • Վերականգնել աղյուսակի կառուցվածքը և տվյալները
  • Ստեղծեք նոր տվյալների բազա (.dbf) վերականգնված տվյալներով
  • Հեշտ օգտագործման համար, հատուկ հմտություններ չեն պահանջվում

Ֆայլերի վերականգնման նկարագրությունը OfficeRecovery for DBF Online գործիքի կողմից

Կոռումպացված dbf տվյալների բազաները ֆայլեր են, որոնք հանկարծակի դարձել են անօգտագործելի և հնարավոր չէ բացել դրանցով օգնություն Microsoft-ից Visual FoxPro. Կան մի շարք պատճառներ, թե ինչու dbf ֆայլը կարող է վնասվել: Իսկ որոշ դեպքերում հնարավոր է շտկել և վերականգնել վնասված dbf (Visual FoxPro 9.0, 8.0, 7.0, 6.0, 5.0, 3.0) ֆայլը։

Եթե ​​ձեր dbf տվյալների բազան հանկարծ կոռումպացված է կամ անհասանելի է բացվելու այն ծրագրում, որով ստեղծվել է, մի հուսահատվեք: Պետք չէ ավելի թանկ գնել ծրագրային ապահովումվերականգնել միայն մեկ կոտրված dbf ֆայլ: OfficeRecovery for DBF Online-ը ձեզ է ներկայացնում նոր առցանց ծառայություն, որը կօգնի ձեզ անմիջապես վերականգնել կոռումպացված dbf տվյալների բազան: Ձեզ անհրաժեշտ է պարզապես զննարկչի միջոցով ներբեռնել վնասված dbf ֆայլը, գնահատել ցուցադրական արդյունքների վերականգնման որակը և ընտրել ձեզ լավագույն լուծումը:

OfficeRecovery Online-ը DBF-ի համար աջակցում է Microsoft Visual FoxPro 9.0, 8.0, 7.0, 6.0, 5.0, 3.0: Վերականգնված տվյալները պահվում են նոր Visual FoxPro տվյալների բազայում:

OfficeRecovery-ը DBF Online-ի համար առաջարկում է անվճար և վճարովի տարբերակներ՝ ամբողջական վերականգնման արդյունքներ ստանալու համար: Անվճար տարբերակը ենթադրում է, որ ամբողջական արդյունքները կարելի է ձեռք բերել բացարձակապես անվճար 14-28 օրվա ընթացքում: Պարզապես պետք է բաժանորդագրվել անվճար արդյունքների համար dbf ֆայլի վերականգնման գործընթացի ավարտից հետո: Եթե ​​Ձեզ անհրաժեշտ է անմիջապես ստանալ վերականգնված dbf ֆայլը, անմիջապես, դուք պետք է ընտրեք վճարովի տարբերակ՝ անվճարի փոխարեն:

Ի՞նչ պետք է անեք, եթե ձեր dbf ֆայլը չի ​​պարունակում վերականգնման տվյալներ: Դուք կարող եք պատվիրել ձեր ֆայլի անվերադարձ վերլուծություն մեր փորձառու տեխնիկական թիմի կողմից: Որոշ դեպքերում տվյալների վերականգնումը հնարավոր է միայն ձեռքով:

Մարդիկ, ովքեր ձգտում են իրենց համար հարմարավետ աշխատանքային պայմաններ ստեղծել, հաճախ չեն մտածում իրենց տվյալների անվտանգության և անվտանգության մասին և վաղ թե ուշ բախվում են դրանց կորստի խնդրին։ Եկեք դիտարկենք հաճախորդի խնդրանքը USB Flash 2Gb Transcend-ով: Ըստ հաճախորդի, այն օրերից մեկը, երբ դրայվը տեղադրվել է USB պորտհամակարգչին առաջարկվել է ձևաչափել այն: Հաճախորդի խոսքով՝ ինքը հրաժարվել է դրանից և դիմել համակարգի ադմինիստրատորի օգնությանը։ Համակարգի ադմինիստրատորը հայտնաբերում է դա USB միացումսկավառակը «կասեցվել է» համակարգչի կողմից, ավելի լավ բան չի մտածել, քան համաձայնել առաջարկի հետ օպերացիոն համակարգձևաչափիր այն ( երբեք մի արա դա!) Հաջորդը, համակարգի ադմինիստրատորը օգտագործեց հայտնի ծրագիրավտոմատ վերականգնում R-Studio. Նրա աշխատանքի արդյունքը անանուն թղթապանակների տեսքով պատճենվել է հաճախորդին մեկ այլ սկավառակի վրա: Արդյունքը դիտելիս հաճախորդը պարզել է, որ ֆայլերի մոտ մեկ քառորդը չի կարող բացվել, և ամենավատն է, որ 1C Accounting 7.7-ը հրաժարվել է սկսել վերականգնված տվյալների բազայից՝ նկատի ունենալով ֆայլերի բացակայությունը:

Ինչպես պարզվեց, պահուստային պատճենայս տվյալների բազան հաճախորդի կողմից ավելի քան մեկ տարի առաջ:

Նման խնդիրների լուծման առաջին քայլը բնօրինակ սկավառակի բլոկ առ բլոկ պատճենի ստեղծումն է (կամ, ինչպես ընդունված է գրել այն ժամանակներից, երբ միայն անգործունյա և կոշտ սկավառակի կրիչներն էին մեդիա, հատված առ հատված) . Հանեցնելիս հայտնաբերվում է անկայուն ընթերցման արագություն, ինչը վկայում է լուրջ մաշվածության մասին NAND հիշողություն(NAND կարգավորիչի կողմից NAND հիշողության էջերի բազմակի ընթերցումը և սխալի ուղղումը ավելորդ սխալի ուղղման կոդերի պատճառով (ECC) շատ ռեսուրսներ պահանջող գործողություն է, որն ի վերջո ազդում է ընթերցման արագության վրա): Եթե ​​կան չկարդացված բաժիններ, ապա անհրաժեշտ է դրանք լրացնել օրինաչափությամբ, որը հետագայում կօգնի մեզ բացահայտել այն ֆայլերը, որոնք ամբողջությամբ չեն կարդացվել։

Հաջորդը, մենք անցնում ենք վերլուծությանը: Պետք է պարզել, թե ինչ ֆայլային համակարգ և ինչ սահմաններում է նախկինում եղել USB ֆլեշ-ում: Այսինքն, դուք պետք է որոնեք կանոնավոր արտահայտություններ, որոնք հատուկ են տարբեր ֆայլային համակարգի մետատվյալներին, բայց նախքան սկսելը, եկեք ստուգենք մի պարզ տարբերակ, որը ենթադրում է, որ բաժանման սահմանները նույնն են: Դա անելու համար սահմանեք ընթացիկ պարամետրերը ֆայլային համակարգ.

Բացեք LBA 0 (0x0 պատկերի ֆայլում) և ստուգեք այնտեղ բաժանման աղյուսակի առկայությունը կամ ֆայլային համակարգի Boot հատվածի առկայությունը:


բրինձ. 2

Մեր դեպքում մենք տեսնում ենք օֆսեթով 0x1C2 բաժանման տիպի 0x0B, ինչը նշանակում է, որ այս պահինվրա USB կրիչկա FAT32 միջնորմ, որը սկսվում է 0x80 հատվածով (DWORD 0x1C6 օֆսեթով), 0x003C2000 հատվածով երկարությամբ (DWORD 0x1CA օֆսեթով): Մենք գնում ենք նկարագրված հատվածի բեռնման հատված 0x80 հատվածում (պատկերի ֆայլում, բայթ 0x10000)


բրինձ. 3

Անհրաժեշտ է հաշվարկել ելակետային կետը, այսինքն՝ զրոյական կլաստերի տեղը, որի նկատմամբ հաշվարկվում է տարածությունը, ինչպես նաև որոշել կլաստերի չափը։

Դա անելու համար մեզ անհրաժեշտ են բեռնման սեկտորում նկարագրված հետևյալ պարամետրերը (կսահմանվեն որպես սեկտորի սկզբից որպես օֆսեթ). - 0x08, կլաստերի չափը ստացվում է 0x08*0x0200=0x1000 (4096 բայթ) կլաստերի մեկ հատվածի յուրաքանչյուր հատվածի չափի սեկտորները բազմապատկելով, FAT աղյուսակների առաջին օրինակից առաջ վերապահված հատվածների քանակը՝ 0x0E=0x01FE (510 հատված) օֆսեթով: , FAT պատճենների քանակը՝ օֆսեթով 0x10=0x02, մեկ FAT պատճենի չափը՝ օֆսեթով 0x24=00000F01 (3841 հատված)։ Օգտագործելով ստացված պարամետրերը՝ կհաշվարկենք տվյալների տարածքի սկզբի դիրքը՝ 0x10000+0x01FE*200+0x00000F01*2*200=0x410000 (հատված 8320)։ FAT32-ի ստեղծողների մի փոքր գրավչությունն այն է, որ այս պահին մենք հաշվարկել ենք տվյալների տարածքի սկիզբը FAT32 բաժանման համար, բայց դա զրոյական հղման կետ չէ, քանի որ FAT աղյուսակի առաջին երկու գրառումները վերապահված են և չեն: օգտագործվում են իրենց նպատակային նպատակների համար, և, հետևաբար, զրոյական կետը տվյալների տարածքի սկիզբն է՝ հանած 2 կլաստեր: Այս դեպքում այն ​​կլինի 0x410000-0x1000*2=0x40E000 (հատված 8318):

Եկեք ստուգենք ֆայլերի բաշխման աղյուսակում գրառումների բացակայությունը և կատարենք հակասությունների համար պատճենները համեմատելու կարգը:


Բրինձ. չորս

FAT-ի պատճենների համեմատությունը ցույց է տվել, որ անհամապատասխանություններ չկան: FAT պատճեններից մեկի բովանդակության վերլուծությունը ցույց է տվել, որ ըստ աղյուսակի, միջնորմի վրա լցված է միայն մեկ կլաստեր:

Հաջորդ քայլը պետք է գնահատել արմատային գրացուցակը ջնջված գրառումների համար: Առաջին արմատային գրացուցակի կլաստերի դիրքը նշված է բեռնման հատվածում 0x2C=0x00000002 օֆսեթով: Երկրորդ կլաստերի համար FAT-ը ցույց է տալիս FF FF FF 0F, ինչը նշանակում է շղթայի վերջը, այսինքն՝ արմատային գրացուցակը բաղկացած է մեկ կլաստերից։


բրինձ. 5

Վերևում հաշվարկված հասցեում մենք տեսնում ենք արմատային գրացուցակը (արմատային գրացուցակը), որը պարունակում է մեկ 32 բայթանոց մուտք: 0x0B օֆսեթում մենք տեսնում ենք 0x08 արժեքը, որը ցույց է տալիս ձայնագրության տեսակը՝ ծավալի պիտակը: Այն փաստը, որ ֆայլերի բաշխման աղյուսակները լցված են զրոներով, և արմատային գրացուցակում որևէ այլ գրառում չկա, ցույց է տալիս, որ բաժանումը ֆորմատավորվել է:

Ենթադրությունը ստուգելու համար, որ բաժանումը չի վերստեղծվել, և ֆայլային համակարգի բոլոր պարամետրերը ճիշտ են, անհրաժեշտ է որոնել 0x2E 0x2E 0x20 0x20 0x20 0x20 0x20 0x20 կանոնավոր արտահայտությունը 0x20 հատվածում օֆսեթով ( տրված արտահայտությունը FAT32 գրացուցակի սկզբի նշան):


բրինձ. 6

Կանոնավոր արտահայտություն գտնելիս պետք է համոզվել, որ սա իսկապես գրացուցակ է, ըստ այլ նշանների, քանի որ որոշ դեպքերում հնարավոր է համընկնում և գտնված կանոնավոր արտահայտությունգրացուցակի անդամ չէ: Համաձայն Նկ. 6, կարելի է ասել, որ այս գրացուցակը սկսվել է 3-րդ կլաստերով (DWORD գրացուցակի ընթացիկ կլաստերի համարը պարունակվում է WORD-ում օֆսեթով 0x1A (ներքևի մաս) և WORD-ում՝ օֆսեթով 0x14 (ավելի բարձր մաս)) և նկարագրված է արմատային գրացուցակում, քանի որ 0x3A և 0x34 օֆսեթները պարունակում են զրոներ (ծնող գրացուցակի սկզբնական կլաստերը): Եկեք ստուգենք, արդյոք այս գրացուցակի կլաստերի համարը համապատասխանում է ֆորմատավորումից հետո ստեղծված ֆայլային համակարգի զրոյական կետին։ Դա անելու համար գրացուցակի կլաստերի թիվը բազմապատկեք ընթացիկ կլաստերի չափով և զրոյական կետին ավելացրեք 0x03*0x1000+0x40E000=0x411000: Ինչպես տեսնում եք, վճարման հասցեն համապատասխանում է իրական գտնվելու վայրին: Այս գրացուցակի անունը հնարավոր է սահմանել միայն այն դեպքում, եթե ավելի վաղ արմատային գրացուցակը բաղկացած էր մեկից ավելի կլաստերից, և այս գրացուցակի հղումը առաջին կլաստերում չէր, քանի որ առաջին կլաստերի բովանդակությունը ամբողջությամբ ոչնչացվել էր ձևաչափման ժամանակ, ինչպես նաև: ֆայլերի բաշխման աղյուսակները:


բրինձ. 7

Կրկնում ենք բոլոր ստուգումները՝ 0x04*0x1000+0x40E000=0x412000։ Կրկին մենք տեսնում ենք գրացուցակի դիրքի համապատասխանությունը ընթացիկ ֆայլային համակարգի պարամետրերին: Բայց, բացի սրանից, մենք տեսնում ենք, որ կա մայր գրացուցակի կլաստերի համարը 0x03, որը ցույց է տալիս, որ այս գրացուցակը տեղադրված է եղել, և նայելով նկ. 6, կարող եք սահմանել գրացուցակի անվանումը, որը ցույց է տրված Նկ. 7. Այսպիսով, ըստ նկ. 6, 0x4B օֆսեթում մենք տեսնում ենք 0x10 արժեքը, սա նշանակում է, որ այս մուտքըմատնանշում է գրացուցակը, իսկ 0x5A և 0x54 օֆսեթներում 0x00000004 թիվը ցուցիչ է դեպի 4-րդ կլաստերը: Օֆսեթում 0x40 - գրացուցակի անվանումը «BIN»: Այսպես է հաստատվում տեղեկատուների փոխկապակցումը վնասված FAT միջնորմում: Պատկերի տարբեր մասերում դիրեկտորիաների ևս մի քանի ստուգումներ կատարելուց հետո մենք վերջապես կարող ենք եզրակացնել, որ շարունակվում է այս մղումըֆորմատավորումը տեղի է ունեցել նախորդ ֆայլային համակարգի սահմաններում, և նոր ստեղծված ֆայլային համակարգի պարամետրերը ժառանգվել են նախորդից, այսինքն՝ հետագա վերլուծական գործողություններ պետք է իրականացվեն բաժանման աղյուսակում նկարագրված բաժանման մեջ՝ հաշվի առնելով. ընթացիկ ֆայլային համակարգի պարամետրերը:

Իմանալով, որ 1C տվյալների բազան, որը բաղկացած է DBF ֆայլերից, պետք է պարունակի 1CV7.MD կոնֆիգուրացիայի ֆայլը, եկեք որոնենք 0x31 0x43 0x56 0x37 0x20 0x20 0x20 0x20 0x4D 0x44 հաջորդականությունը: Կանխամտածված կեղծ արդյունքների քանակը նվազեցնելու համար ավելի լավ է որոնել 32 բայթանոց բլոկների մեջ՝ զրո օֆսեթով:


Բրինձ. ութ

Այսպիսով, մենք գտնում ենք 1CV7.MD ֆայլի ցուցիչ պարունակող բոլոր դիրեկտորիաները: Մեր դեպքում գտնվել է միայն մեկ այդպիսի գրացուցակ, ինչը հուշում է, որ մենք գտել ենք անհրաժեշտ գրացուցակի առաջին կլաստերը։ Դրան հաջորդում է մայր գրացուցակների դիրքի վերլուծությունը՝ մինչև արմատային գրացուցակը: Յուրաքանչյուր հայտնաբերված գրացուցակ գրվում է FAT աղյուսակում (նախ որպես գրացուցակ մեկ կլաստերից, համապատասխան աղյուսակի մուտքագրման համար գրելով FF FF FF 0F): Բացի այդ, արմատային գրացուցակում գրված է երեխայի օբյեկտի հղումը:

Ընթացիկ փուլում մենք հայտնաբերված ֆայլերը պատճենելու ենք դրանց շարունակականության ենթադրությամբ, քանի որ երկու FAT պատճեններն էլ չեն պարունակում մասնատման տեղեկատվություն (հիշենք, որ դրանք անդառնալիորեն ոչնչացվել են համակարգի ադմինիստրատոր USB ֆլեշ կրիչի անզգույշ ձևաչափման արդյունքում): 1C տվյալների բազայի գրացուցակը պատճենելուց հետո մենք վերլուծում ենք ֆայլերի քանակը: Հաշվի առնելով, որ գրացուցակի հատվածը մեկ կլաստերի չափ էր, մենք արդյունահանեցինք ոչ ավելի, քան 126 ֆայլ, ինչը ակնհայտորեն շատ ավելի քիչ է, քան պետք է լինի 1C տվյալների բազայի հետ կապված DBF և CDX ֆայլերով գրացուցակում: Մոտավորապես նույն արդյունքը կտան վերականգնման ավտոմատ ծրագրերը, ինչի մասին վկայում է R-Studio-ի օգտագործման միջոցով համակարգի ադմինիստրատորի ստացած արդյունքը:

Արդյունահանված ֆայլերի թվում են 1CV7.MD (կոնֆիգուրացիայի ֆայլ) և 1CV7.DD (տվյալների բառարանի ֆայլ): Ամբողջականության ստուգումը կատարելուց հետո մենք մեր սկավառակի վրա կստեղծենք ժամանակավոր թղթապանակ, որտեղ կտեղադրենք 1CV7.MD: Նշեք այս ուղին ավելացնելիս նոր բազաև բացեք կոնֆիգուրատորը, որի միջոցով այս կոնֆիգուրացիայի հիման վրա կստեղծենք մաքուր տվյալների բազա։ Եկեք համեմատենք ստեղծված DD ֆայլը վերականգնվածի հետ, եթե նկարագրությունները և գրացուցակների քանակը նույնական են, ապա լրացուցիչ գործողություններ չեն պահանջվում, և ունենալով. ամբողջական ցանկըֆայլեր, կարող եք սկսել որոնել 1C բազային գրացուցակի մնացած հատվածները: Դա անելու համար դուք պետք է որոնեք ASCII նիշերի կոդերի հաջորդականություններ, որոնք օգտագործվում են բացակայող DBF ֆայլերի անուններում: Քանի որ գրացուցակի բեկորները հայտնաբերվում են, ֆայլերի բաշխման աղյուսակում ավելացրեք շղթայի շարունակությունը: Գրացուցակի շղթայի յուրաքանչյուր ավելացման գործողությունից հետո պատճենեք ֆայլերը և վերլուծեք, թե որքան է պակասել բացակայող DBF ֆայլերի քանակը, և կրկին կազմեք ASCII նիշերի կոդերի հաջորդականություն՝ հաջորդ հատվածը որոնելու համար:


բրինձ. 9

Պետք է նաև հիշել, որ ֆայլերի բաշխման աղյուսակում գրացուցակի բեկորների շղթա գրելիս պետք է վերլուծել բեկորները, որպեսզի LFN գրառումները միանան: Միայն դեպքում կարճ ձայնագրություններշղթան կարելի է գրել բեկորների ցանկացած կարգով։

Այս դեպքում 5 հաջորդականություն փնտրելուց հետո մեզ հաջողվեց գտնել գրացուցակի մնացած բոլոր բեկորները 1C բազայով։

Գրացուցակի բեկորների ամբողջական շղթայի կառուցումից հետո մենք նորից պատճենում ենք 1C բազայի բոլոր ֆայլերը՝ ենթադրելով դրանց շարունակականությունը։ Օգտատիրոջ տեղեկատվությունը պարունակվում է DBF ֆայլերում, ուստի անհրաժեշտ է ստուգել դրանց ամբողջականությունը:

DBF ֆայլի ամբողջականությունը ստուգելու հիմնական մեթոդը ծառայության վերնագրում պարունակվող տեղեկատվության ստուգումն է և արդյոք ֆայլի բովանդակությունը համընկնում է վերնագրի նկարագրությանը:


բրինձ. տասը

Սկզբում վերնագիրը գնահատվում է. նրա երկարությունը, որը նշված է 0x08 օֆսեթում, ստուգվում է, որպեսզի տեսնենք, թե արդյոք դրանում նշված օֆսեթը տանում է դեպի վերջի նշիչը 0x0D: Հիմնական դաշտի գրառումները՝ սկսած 0x20 օֆսեթից, նկարագրվում են 32 բայթանոց գրառումներով, որոնցում դաշտի անվանումը հաջորդում է 0x00 օֆսեթով, դաշտի տեսակը՝ 0x0B, իսկ դաշտի չափը՝ 0x10: +1 դաշտերի չափերի գումարը (շտեմարանի յուրաքանչյուր գրառման համար մեկ հավելյալ բայթ՝ դա DBF-ում գրանցման կարգավիճակն է) պետք է հավասար լինի բովանդակությանը օֆսեթ 0x0A-ով (բազայում մեկ գրառումի չափը): DBF ֆայլերի նկարում տեսնում ենք դաշտի հետևյալ երկարությունները՝ 0x09+0x10+0x10+0x10+0x10+0x10+0x01=0x5A:

Եկեք ստուգենք ֆայլի չափի ճիշտությունը: Դա անելու համար մենք 0x04 օֆսեթով վերնագրում նշված գրառումների քանակը բազմապատկում ենք տվյալների բազայի մեկ գրառումի չափով օֆսեթ 0x0A-ով, որին հաջորդում է 0x08 օֆսեթով բովանդակության ավելացում:

0x00000003*0x005A+0xE1=0x01EF. Ստացված օֆսեթը պետք է պարունակի ֆայլի վերջի նշիչը 0x1A:

Դաշտերի բովանդակության ամբողջականությունը վերահսկելու համար կարող եք օգտագործել տեսողական մեթոդը:

Այս դիտման տարբերակում դուք պետք է ոլորեք գրառումների բովանդակությունը սկզբից մինչև վերջ: Եթե ​​լրացումը միատարր է, յուրաքանչյուր դաշտ պարունակում է տվյալների տիպեր, որոնք բնորոշ են վերնագրում նկարագրվածներին, և օտար բովանդակություն չկա, ապա DBF ֆայլը դիտելուց հետո կարող ենք եզրակացնել, որ դրա բովանդակությունը ճիշտ է:

Եթե ​​տվյալների բազայի վերնագրում գտնում եք բովանդակություն, որը չի համապատասխանում դաշտի նկարագրությանը, դուք պետք է որոշեք ճշգրիտ վայրը, որտեղից սկսվում են սխալ տվյալները:


Բրինձ. 12

Ելնելով վերնագրի դաշտերի նկարագրությունից և կոնկրետ DBF ֆայլի բովանդակությունից, հնարավոր է ձևավորել ենթադրյալ ASCII հաջորդականություններ, որոնք պետք է տեղակայվեն բացակայող հատվածներում նշված շրջադարձերում: Եթե ​​կրիչներից մեկում նույն տեսակի տվյալների բազաներ չկան (ներառյալ նույն տվյալների բազայի ֆայլերի պատճենները), այս մեթոդը թույլ կտա համեմատաբար արագ գտնել սկավառակի պատկերում բացակայող բոլոր բեկորները: Առանձին-առանձին մենք նշում ենք, որ լրացուցիչ դժվարություններ կծագեն բեկորները միացնելու համար, եթե DBF ֆայլի ռեկորդային չափը փոքր է կամ 16-ի բազմապատիկ: Եթե կան նույն տիպի այլ տվյալների բազաներ, ապա խնդիրը շատ ավելի բարդ կլինի (այս պնդումը ճիշտ է: աշխատանքի բոլոր փուլերում՝ սկսած ցանկալի գրացուցակի բեկորների որոնումից):

Անհրաժեշտ է ստուգել յուրաքանչյուր DBF ֆայլի ամբողջականությունը, որոնցից մի քանի հարյուր կա մեկ 1C տվյալների բազայում: Բոլոր ստուգումները անցնելուց և ֆայլի բեկորները հավաքելուց հետո վերջնական ստուգումը կհաջորդի 1C Enterprise կոնֆիգուրատորում:


բրինձ. 13

Իդեալում, թեստի արդյունքների համաձայն, վանդակներում նշված բոլոր կետերը պետք է հաջողությամբ անցնեն: Եթե ​​սխալներ են հայտնաբերվել առաջին երկու կետերում, ապա անհրաժեշտ է վերլուծել սխալների գրանցամատյանը կոնֆիգուրատորում և պարզել, թե որ DBF ֆայլերը պարունակում են օտարերկրյա տվյալներ, որոնք չեն հայտնաբերվել ստուգումների ժամանակ: Եթե ​​սխալներ հայտնաբերվեն տրամաբանական ամբողջականությունը ստուգելիս, ապա կրկին անհրաժեշտ է վերլուծել սխալների գրանցամատյանը՝ պարզելու համար, թե արդյոք խնդիրը կայանում է հիմքում, որպես դրա հավաքածու, թե՞ 1C կազմաձևման մշակողների կողմից թույլ տրված սխալների մեջ:

Եկեք ուշադրություն դարձնենք այն փաստին, որ եթե այս USB ֆլեշ կրիչը ձևաչափված չլիներ, ապա այն կարդալուց հետո տվյալների վերականգնման ընթացակարգը շատ ավելի պարզ կլիներ, ինչը մեծապես կազդեր ծախսերի և շրջադարձի վրա: Եզրափակելով՝ ես կցանկանայի զգուշացնել բոլոր օգտատերերին և սպասարկող անձնակազմին արտակարգ իրավիճակներում չմտածված գործողություններից, որոնք բազմիցս սրում են խնդիրը, ինչպես նաև ցանկանում են ավելի հաճախ կատարել պահեստային գործողություններ: