Skip navigation

OK2RKB | ENG · GER · RUS · FRA · POL · HUN | Main · IE+ · IE- · Prn · Pda · CSSoff

OK2PPK » Texty » Programy » BkmrExp | ---

Bkmrexp

offline program

Bkmrexp - pomůcka na úpravu souborů záložek

v1.6 (2018/8), konzolová aplikace Win32Api

autor OK2PPK

Program Bkmrexp slouží jako pomůcka pro ruční úpravu údajů v souborech záložek typu NETSCAPE-Bookmark-file-1 (soubory bookmark.htm apod.) pro webové prohlížeče. Zkoušen byl se soubory záložek programů Firefox, Seamonkey a Internet Explorer, soubory záložek z jiných prohlížečů jsem netestoval.

Program umožňuje vytáhnout ze souborů záložek vyexportovaných z prohlížečů odkazy s jejich názvy, separátory a složky včetně jejich struktury do jednodušší formy v obyčejném textovém souboru, kde je lze lépe ručně upravovat, a pak tento soubor obráceným způsobem převést zpět na soubor záložek importovatelný do prohlížečů. Ostatní údaje ze souborů záložek, jako jsou uložené ikony, časové údaje a popisy k odkazům, program nezpracovává a při exportu je přeskočí.

Současně program dokáže obejít problém při importu záložek do Internet Exporeru, kdy IE jednak nezná separátory a jednak si třídí záložky podle sebe a mění tak pořadí importovaných položek obvykle nežádoucím způsobem. Jediná možnost je pořadí po importu opravit ručně (pracné) nebo upravit nedokumentovaná data v registrech, kde jsou informace o pořadí uloženy (nespolehlivé a nebezpečné, struktura nedokumentovaných dat se může změnit a pokus o jejich přepis pak může mít nežádoucí důsledky). Třetí alternativa je vnutit IE takové názvy, aby je setřídil sám ve správném pořadí. Program bkmrexp toto řeší vkládáním pořadového čísla před všechny položky ve složkách, tj. do názvů odkazů i podsložek. Problém separátorů je pak řešen jejich nahrazením fiktivními odkazy. Při zpracování souborů záložek vyexportovaných z IE je pak možné nechat vložená pořadová čísla zase odstranit a separátory ve formě fiktivních odkazů převést zpět na skutečné.

Program byl vytvořen jako pomůcka řešící problém, kdy jsem potřeboval pouklízet a sjednotit velké množství odkazů uložených v záložkách v různých prohlížečích a na různých systémech. Soubory záložek byly po vyexportování z jednotlivých prohlížečů pomocí programu bkmrexp (a s použitím mého převodníku kódových sad prekod) převedeny do ručně snadněji upravitelných souborů, a pak byly ručně sloučeny, upraveny a setříděny. Výsledkem byla sada souborů, kdy každý obsahoval jednu složku záložek. Následně jsem si vytvořil sadu dávkových souborů, která sestavuje z těchto dílčích souborů souhrnné soubory dle potřeby pro daný počítač a prohlížeč a provede současně i jejich případné překódování a nakonec je převede pomocí programu bkmrexp zpět do souborů bookmark. Ty pak už stačí jen naimportovat do daných prohlížečů. Pokud potřebuji doplnit nebo opravit záložky, tak si je ukládám v prohlížečích do k tomu zvláště určené složky a jednou za čas pak doplním a opravím výchozí soubory a novým spuštěním dávkových souborů během chvilky vygeneruji novou opravenou sadu souborů bookmark, které stačí naimportovat do prohlížečů a nahradit jimi stávající sady záložek. Zároveň mám tímto vyřešené vpodstatě i zálohování, protože potřebnou sadu záložek si mohu kdykoliv znovu vygenerovat.

Syntaxe:
  BKMREXP ?|-?|h|-h|help ... vypsat nápovědu
  
  BKMREXP helpfile ... nápovědu uložit do textového souboru
  
  BKMREXP [simpl] exp|expie|expies|imp|impie|impiex soubor1 [soubor2] ... provést převod

  simpl   ... při EXP nejsou do výstupu vkládána čísla řádků a úrovně vnoření,
              při IMP znamená, že vstupní soubor neobsahuje údaje číslo řádku
              a úroveň vnoření (tj. začíná až údajem typ položky)

  exp     ... provést převod z bookmark do txt
  expie   ... provést převod z bookmark do txt pro IE (nahradit fiktivní
              oddělovače skutečnými a odstranit pořadová čísla)
  expies  ... provést převod z bookmark do txt pro IE se setříděním (jako expie
              a navíc se nejprve provede vzestupné setřídění všech složek)
  imp     ... provést převod z txt do bookmark
  impie   ... provést převod z txt do bookmark pro IE (nahradit oddělovače
              fiktivními odkazy, popisy doplnit o pořadová čísla a položky
              uložit do výstupu v obráceném pořadí)
  impiex  ... provést převod z txt do bookmark pro IE s rozšířeným intervalem
              pořadových čísel (jako impie, ale navíc se zvětší interval mezi
              pořadovými čísly jejich doplněním zprava číslicí 0)

  soubor1 ... vstupní soubor
  soubor2 ... výstupní soubor (není-li zadán, tak se použije soubor1 doplněný
              při EXP o příponu .TXT a při IMP o příponu .HTM

  Při exportu je soubor záložek převeden do textového souboru, který obsahuje
  na každém řádku 1 položku ve tvaru:
  
  cislo_radky;uroven_vnoreni;"typ";"retezec1";"retezec2"
  
  nebo při použití příkazu simpl ve tvaru:
  
  "typ";"retezec1";"retezec2"
  
  cislo_radky    ... 5-místné zleva nulami doplněné pořadové číslo řádku,
                     počáteční hodnota je 0
  uroven_vnoreni ... 2-místné zleva nulami doplněne číslo úrovně vnoření složky,
                     počáteční úroveň je 0, kořenová složka má úroveň 1, atd.
  typ            ... typ položky, 1 znak (I,T,H,B,E,S,D,R)
  retezec1,2     ... první a druhý parametr položky, význam dle typu, nejsou-li
                     použity, je jejich obsah prázdný řetězec
  
  Typy položek:
  
  I - informační položka, v retezec1 je název proměnné a v retezec2 její hodnota
  
    retezec1:
  
      filename          ... jméno vstupního souboru
      beginlevel        ... počáteční úroveň vnoření
      endlevel          ... koncová úroveň vnoření, pokud je jiná od počáteční,
                            tak je ve vstupním souboru ve struktuře složek chyba
      num of lines      ... počet zpracovaných řádků ze vstupního souboru
      num of refs       ... počet odkazů nalezených ve vstupním souboru
      num of dirs       ... počet složek nalezených ve vstupním souboru (bez
                            kořenové)
      num of separators ... počet separátorů nalezených ve vstupním souboru
  
  T - retezec1 obsahuje text z tagu TITLE
  
  H - retezec1 obsahuje text z tagu H1
  
  B - počátek složky
  
  E - konec složky
  
  S - oddělovač
  
  D - složka, retezec1 obsahuje název složky, za složkou následuje vždy položka
      typu B, pak položky s vlastním obsahem složky a nakonec položka typu E.
      Položky lze do sebe vnořovat, tj. v obsahu složky mohou být další
      kombinace položek v uspořádání D, B, obsah složky a E na závěr. Kořenová
      složka nemá položku typu D, ale začíná přímo B.
  
  R - odkaz, v retezec1 je hodnota odkazu a v retezec2 je jeho název
  
  Příklad tvaru výsledného souboru:
  
  00000;00;"I";"filename";"bookmark.htm"
  00001;00;"I";"beginlevel";"0"
  00002;00;"T";"Bookmarks";""
  00003;00;"H";"Bookmarks";""
  00004;01;"B";"";""
  00005;01;"R";"http://nejaky.odkaz.1/";"Nejaky odkaz 1"
  00006;01;"S";"";""
  00007;01;"R";"http://nejaky.odkaz.2/";"Nejaky odkaz 2"
  00008;01;"D";"Slozka 1";""
  00009;02;"B";"";""
  00010;02;"R";"http://nejaky.odkaz.4/";"Nejaky odkaz 4"
  00011;02;"E";"";""
  00012;01;"R";"http://nejaky.odkaz.3/";"Nejaky odkaz 3"
  00013;01;"E";"";""
  00014;00;"I";"endlevel";"0"
  00015;00;"I";"num of lines";"12"
  00016;00;"I";"num of refs";"4"
  00017;00;"I";"num of dirs";"1"
  00018;00;"I";"num of separators";"1"
  
  Informace k používání programu:
  
  Při importu se očekává vstupní soubor též ve výše uvedeném tvaru, položky
  typu I v něm nemusí být uvedeny (nezpracovávají se), pokud není uvedena položka
  T nebo H, tak je nahrazena implicitní hodnotou.
  
  Při exportu nejsou ze vstupního souboru do výstupu přeneseny časové značky,
  ikony, popisy odkazů a podobné údaje, přenáší se pouze názvy a vlastní odkazy.
  
  Při zpracování je potřeba vzít v potaz značnou odlišnost mezi tím, jak se
  souborem záložek při importu pracuje FF ci SM, a jak IE. IE nezná separátory,
  nerespektuje pořadí záložek v bookmark souboru, v názvech odkazů nesmí být
  znaky jako dvojtečka, ostré závorky, lomítka apod. (znaky, které nelze použít
  jako název souboru) a některé tvary odkazů IE odmítá načíst.
  
  Kvůli obejítí problémů s IE lze při importu použít extra volby impie a impiex.
  Skutečné separátory se pak nahradí fiktivními odkazy a problém třídění
  se obejde vložením pořadového čísla na začátek názvů odkazů i složek. Případně
  lze i zvětšit interval mezi pořadovými čísly na 10 jejich doplněním o koncovou
  nulu tak, aby mezi odkazy šlo dodatečně přidávat přímo v prohlížeči další
  odkazy. Pri exportu je pak možné pomocí voleb expie a expies takto doplněné
  číslování vyjmout a oddělovače ve formě fiktivních odkazů převést na normální
  separátory, případně lze nechat seřadit položky ve všech složkách podle
  číslování před jeho odstraněním.
  
  Program neřeší převody znakových sad. U FF a SM se předpokládá použití UTF-8,
  u IE u starších verzí bylo použito WIN1250, u IE11 bylo buď WIN1250 nebo
  pokud měl soubor na začátku značku BOM, tak UTF-8.
  
  Celý postup úpravy záložek je export záložek z prohlížeče do souboru bookmark,
  převedení bookmark souboru do txt souboru, ruční úprava dat v txt souboru dle
  potřeby, převedení txt souboru zpět do bookmark souboru včetně případné změny
  znakové sady a nakonec naimportování zpět do prohlížeče.
  
  Při importu do FF a SM se kořenová složka z bookmark souboru vloží přímo
  do nejvyšší úrovně záložek. Je proto lepší v kořenové složce vytvořit složku
  a teprve do ní dávat jednotlivé další položky, pak se vám  záložky naimportují
  do takto vytvořené složky. U IE lze při importu určit, kam se záložky
  naimportují, je ale potřeba si takovoutu případnou samostatnou složku na ně
  dopředu připravit. Při importu většího množství záložek do IE(11) se tyto někdy
  všechny nezobrazí, pak je potřeba IE ukončit a znovu spustit, po restartu se
  položky objeví všechny.

Stažení: bkmrexp.exe - program v1.6 (32kB), bkmrexp.txt - popis v1.6 (7kB)

Změny:

v0.0 2018/3 - výchozí vývojová verze

v1.0 2018/4 - první funkční verze

v1.1 2018/6 - doplněno vkládání info o charsetu UTF8 do záhlaví při importu

v1.2 2018/6 - doplněn import pro IE s obráceným pořadím odkazů

v1.3 2018/6 - doplněny některé atributy u tagů a pokus s ovlivněním pořadí odkazů u IE pomocí nastavení některých atributů

v1.4 2018/6 - odstraněny změny z v1.3, které měly ovlivnit pořadí odkazů u IE (neměly vliv), vynucení setřídění v IE nově řešeno generováním pořadového čísla a separátory řešeny použitím fiktivních odkazů

v1.5 2018/7 - kompletně přepsány části pro import a export (sjednocen kód pro IE i neIE verze záložek), částečně změněna struktura a názvy položek pracovního souboru, při exportu doplněna pro IE možnost odstranit vložené číslování, nahradit fiktivní separátory skutečnými a setřídit položky, u importu doplněna možnost zvětšit interval vkládaných pořadových čísel

v1.6 2018/8 - oprava několika chyb v modulu pro práci s řetězci

Nahoru