Page 1 of 1
Eroiica Viewer a soubory otevrene jinou aplikaci
Posted: 28 Feb 2006, 14:54
by Zivan
Puvodne jsem to chtel napsat do chyb, ale podle spravne chybove hlasky to patri spise do navrhu na zlepseni.
Pokud mam otevreny napr. dokument v MS Wordu a pokusim se ho zobrazit timto pluginem, tak napise chybovou hlasku, ze nemuze otevrit soubor.
Myslim, ze takovy soubor by mel jit zobrazit.
Posted: 28 Feb 2006, 15:34
by cincura.net
A jinym programem jde otevrit? Napr. notepad (jen otevrit, o obsah ted nejde). Nektere programy si soubory natvrdo lockuji pro sebe, takze i cteni selze.
Posted: 28 Feb 2006, 15:53
by Zivan
F4 spustí Notepad a v něm je soubor nacteny, samozrejme nejde ulozit.
Posted: 28 Feb 2006, 16:51
by cincura.net

Potom tu mame fakt bug. Myslim, ze Honza Patera to brzi opravi/vysvetli.
Posted: 01 Mar 2006, 11:08
by Jan Rysavy
Eroiica Viewer není připraven na možnost, že by se soubor během prohlížení změnil. Proto je při otevírání souboru tato situace vyloučena.
Posted: 01 Mar 2006, 12:25
by Zivan
A zmena behem prohlizeni v tomto pripade vadi?
Zkusil jsem si vytvorit RTF dokument, ten jsem si zobrazil v Eroiica Vieweru a pak ho otevrel ve Wordpadu a zmenil. Vse slo bez problemu, prohlizel jsem si verzi dokumentu pri otevreni, ne aktualni na disku.
Neni tam problem s oteviranim prohlizeneho souboru i pro zapis misto pouze pro cteni?
RE: Eroiica Viewer a soubory otevrene jinou aplikaci
Posted: 01 Mar 2006, 12:51
by Jan Patera
Koukam, ze budu muset uvest na pravou miru ruzne dohady:
Compound document (tj. napr. XLS, DOC, nektere WordPerfecty) otevriam pomoci StgOpenStorage(STGM_DIRECT | STGM_READ | STGM_SHARE_DENY_WRITE). To ma nasledujici dusledky:
1) pokud ma nekdo ten soubor otevreny pro zapis, EV jej neotevre
2) pokud ma nekdo ten soubor otevreny pro cteni, EV jej otevre (napr. soubor otevreny ve Wordu a s nahozenym read-only atributem)
3) pokud jej EV otevre, pak nedovoli nikomu jinemu jej otevrit pro zapis, dokud jej ma EV otevreny.
Fakt:
Po nacteni souboru (tj. kdyz zmizi "Parsing..." z titulku okna) jej EV zavre a uz neotevira, bez ohledu na to, zda okno EV stale existuje a bez ohledu na to, jak uzivatel prochazi pres stranky.
Proc to cele?
Aby nikdo nezmenil ten soubor behem nacitani, coz by mohlo vest k chybnemu renderingu, neocekavanym situacim a padum. Nacitani muze trvat sekundy, desitky sekund, minuty. Behem te doby jej Word stihne treba ulozit (at uz rucne nebo diky autosave).
Skutecnost, ze Interni prohlizec jej dokaze otevrit, lze povazovat za vyhodu, protoze ten pouze cte bajty a nesnazi se je interpretovat.
Fakt, ze SS dovoli prekopirovat soubor, ktery ma nekdo otevreny pro zapis, zavani nebezpecim a nekonzistenci dat. Drive Salamander spravne odmital takove soubory kopirovat. Nicmene uzivatele si vynutili zmenu....
Posted: 01 Mar 2006, 13:25
by Zivan
OK, slo mi o pripad sdilenych dokumentu v siti. Nekdo ma otevreny dokument a ja se do nej potrebuju podivat. Word mi napise, ze dokument je otevreny jinym uzivatelem a nabidne zobrazeni v rezimu pouze pro cteni. Eroiica Viewer mi ho nezobrazi.
Zmacknuti F3 byva rychlejsi nez spousteni Wordu. Holt si budu muset pokazdy pockat

Posted: 01 Mar 2006, 13:37
by Jan Rysavy
Zivan wrote:Word mi napise, ze dokument je otevreny jinym uzivatelem a nabidne zobrazeni v rezimu pouze pro cteni. Eroiica Viewer mi ho nezobrazi.
Pokud je aplikace (zde MS Word) správně postavena, uživatel pouze riskuje, že se během načítání soubor změní a výsledek bude nepředvídatelný -- ale aplikace nespadne.
Kopírovací rutina Servant Salamandera a jeho interní prohlížeč jsou na takovou změnu souboru "během operace" připraveny a nespadnou. Vnitřnosti Eroiica Vieweru nikoliv, docházelo by k pádům celého Salamandera, proto bylo potřeba zavést tuto restrikci.
Posted: 01 Mar 2006, 13:55
by Zivan
Pak je toto chovani vlastnost a navrh na zlepseni je, ze by se mohl dokument zobrazit i kdyz je otevreny jinou aplikaci.
Posted: 01 Mar 2006, 14:07
by Jan Rysavy
Zivan wrote:Pak je toto chovani vlastnost a navrh na zlepseni je, ze by se mohl dokument zobrazit i kdyz je otevreny jinou aplikaci.
Souhlas.