Jak zachránit poškozená vektorová data?

Možná jste se již také někdy setkali s poškozenými vektorovými daty. Výkres se po načtení zobrazuje podivně, neúplně, při práci s ním jsou hlášeny neobvyklé chyby, systém dokonce občas havaruje. Často se tak děje po nějaké havárii disku nebo systému, někdy se taková zvláštnost doslova vynoří najednou, zdánlivě bez důvodu.

Uživatelé, kteří pravidelně zálohují data, zpravidla jen vyhledají předchozí verzi dat. Pokud ale tento postup z jakýchkoli důvodů selže, je třeba poškozené části výkresu opravit. Horší situace může nastat po havárii disku, kdy se podaří zachránit buď jen část výkresu, anebo se do výkresu přimíchají nějaká úplně jiná data. Takový výkres zpravidla nelze vůbec načíst.

V minulosti se nám již v řadě případů podařilo zachránit i zdánlivě úplně ztracená data a obnovit z nich podstatné části. Tak jsme postupně vyvinuli postupy a nástroje, které takovou činnost usnadňují. Do verze 7.14 jsme je upravili do uživatelsky vlídnější podoby.

V menu sice nejsou tyto funkce běžně přístupné (však je také většina uživatelů nebude nikdy potřebovat), dají se ale snadno načíst funkcí „Načtení makra“ (předposlední volba v menu „Nástroje“) pod jménem CNR_REP. V každém případě pracujte na kopii problémových dat a mezivýsledky ukládejte pod jiným jménem. K původním datům se možná budete chtít ještě vrátit. Pro jistotu vypněte zpracování dat na disku a čtení indexu. Viz funkce „Nastavení programu“, stránka „Soubory“.

I. Data je možno načíst do systému

Pokud lze soubor otevřít, tedy objeví se v protokolu alespoň hlášení „otevření výkresu ..“, a problémy (včetně kolapsu) nastanou až např. při vykreslení na obrazovku, lze použít k záchraně dat uživatelsky jednodušší funkci „RepairData“.

Nejlépe je začít novým startem Kokeše. Po načtení makra a volbě funkce (přibyde v menu „Nástroje“, úplně dole) je pouze třeba vybrat název souboru, který chceme opravit. Dále je třeba jen chvíli počkat. Vše, co by mohlo při další práci systému, tedy zobrazování dat, výpisech a editaci činit zásadní potíže, je touto funkcí upraveno a údaje o úpravách jsou uloženy do protokolu. Samozřejmě se předpokládá, že uživatel si protokol projde a upravená data si případně dále opraví. Data je vhodné uložit (samozřejmě pod jiným jménem) a zkusit zobrazit volbou funkce „Přehledka všech dat“.

Tato funkce by měla podchytit všechny chybové stavy, se kterými jsme se již setkali anebo jsme na ně dokázali pomyslet. Předpokládá ale, že poškození dat ve výkresu je poměrně malé, tedy alespoň lze přímo z disku číst jednotlivé objekty. Na druhou stranu ale tato funkce neopravuje některé drobnější chyby, které lze vyhledat a opravit funkcí „Kontroly dat“ v menu „Nástroje“, záložka „základ“. Mezi takové chyby patří některé menší nesrovnalosti v uložení informací, lichý počet spojení R apod.

II. Data nelze ani načíst

V takovém případě jsou poškozeny bloky, ve kterých jsou uloženy jednotlivé části výkresu a samozřejmě také objekty. Pokud se do výkresu jen přimíchaly nějaké části jiných souborů, bude možná po jejich odstranění podstatná část výkresu zachráněna. V opačném případě se lze pokusit o záchranu alespoň nějaké části dat. Úvodní bloky výkresu nesou informace společné pro celý výkres. Objekty pak následují v dalších blocích, co objekt, to blok. Prostým vyloučením poškozených bloků lze výkres učinit alespoň čitelným a dále pokračovat, jako v předchozím případě. Nutno ještě upozornit, že takto pojmenované a identifikovatelné bloky byly zavedeny až v kompatibilitě Windows a tedy na data uložená v kompatibilitě DOS nelze dále popsaný postup použít.

Opět je nejlépe začít čerstvě nastartovaným Kokešem. Opět je třeba načíst modul maker CNR_REP. Tentokrát se ale použije makro „RescueFile“. Pokud se po výběru souboru objeví dotaz:

„Soubor asi není výkres ve formátu WIN, pokračovat ?

jedná se asi o výkres v kompatibilitě DOS. V takovém případě nemá smysl pokračovat. Pokud jste si jisti, že výkres byl ukládán v kompatibilitě Windows, může se jednat o soubor s poškozeným začátkem a pak pokračovat může mít smysl. Na dokončení načítání si tentokrát opravdu počkáte. Makro nespoléhá na zapsané délky bloků (protože pak by jej nebylo potřeba), ale prochází postupně celý soubor tak, aby mohlo nabídnout vše, co alespoň zvenku nějaký rozumný blok připomíná. Využívá přitom i znalosti názvů bloků.

Po této fázi čtení souboru se objeví velká tabulka s popisem nalezených bloků. Úvodní bloky určují typ dat. Rozhodně by měly v souboru zůstat. Na druhou stranu blok DIR1@ je nutné vždy vyřadit. (Je to jen index používaný k urychlení čtení a bude jistě špatně). Poté následují objekty uložené v blocích se jménem OBJ1@. Obecně jich může být velmi mnoho. Některé z nich můžeme vyřadit z uložení ťuknutím na tlačítko v prvním sloupci tabulky. Pokud při ukládání použijeme tlačítko „UložOK“ místo tlačítka „Ulož“, pak je blok uložen pouze tehdy, je-li kromě volby ve sloupci „uložit“ zaškrtnuta i volba ve sloupci „OK“. Tu nastavují automaticky tlačítka na kontrolu konzistence dat „Test délek“ a „Test obj.“, které doporučujeme v každém případě zkusit. Stiskem druhého tlačítka se vyplní i čísla objektů a počty uložených bodů. I těchto hodnot můžeme využít pro určení, který blok ponechat a který vyřadit. Tlačítkem „VšeOK“, můžeme volbu ve sloupci „OK“ nastavit zpět na zaškrtnuto na všech blocích. Může se hodit, pokud oba testy konzistence hlásí chybu. Tlačítkem „Otoč ulož“ lze změnit stav volby ve sloupci „uložit“. To je výhodné tehdy, když chceme zkusit uložit pouze určitý počet objektů a poté i zbytek.

S trochou štěstí tedy navolíme správnou kombinaci ukládaných bloků, uložíme pod jiným jménem (v žádném případě nepřepisujeme původní soubor), případně můžeme rovnou uložit více různých kombinací bloků. Potom funkci ukončíme a zkusíme nově vytvořené soubory načíst, nejlépe předchozím postupem, aby se ještě eliminovaly případné chyby uvnitř objektů. Zkušenosti ukazují, že tímto způsobem se obvykle podaří zachránit podstatné části poškozených dat.

V každém případě vám ale přejeme, abyste tato makra nemuseli nikdy použít. Nezapomínejte proto na zálohování a to v různých časech a na různá místa a také nezapomínejte na kontrolní funkce (v menu „Nástroje“).

Vít Trnka, duben 2005

Print this pageEmail this to someoneShare on Google+Share on LinkedInShare on FacebookTweet about this on Twitter

Print this pageEmail this to someoneShare on Google+Share on LinkedInShare on FacebookTweet about this on Twitter