VBS script a excel soubor - kontrola na změnu Vyřešeno

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

Uživatelský avatar
ITCrowd
Tvůrce článků
Guru Level 13.5
Guru Level 13.5
Příspěvky: 23616
Registrován: březen 10
Pohlaví: Muž
Stav:
Offline

VBS script a excel soubor - kontrola na změnu

Příspěvekod ITCrowd » 24 črc 2013 11:31

Zdravím. Na síťovém disku je uložen soubor, do kterého zapisují všichni pracovníci. Na řídícím pracovišti běží skript, který kontroluje změnu tohoto souboru a řídícího upozorní (pokud byl změněn). Protože excel změní datum a čas souboru již při otevření (při neuložení čas a datum vrátí zpět), nemohl jsem dost dobře použít systémovou proměnnou Last.Modified, která se mění taky. Vybruslil jsem z toho tak, že skript kontroloval atribut "a" souboru. Prostě, pokud tento atribut našel, oznámil změnu a atribut smazal. Bohužel po přechodu na excel 2007 jsem zjistil, že excel tento atribut dodá i při neuložení změn. Verze 2003 to nedělala. Řídící si již na upozorňování zvykli a teď pouhé prohlédnutí souboru libovolným pracovníkem vede k falešnému oznámení, že byl změněn.
Potřeboval bych nějaký nápad, jak zjistit u excelovského souboru pomocí vbs skriptu, že byl opravdu změněn. Nějaký návrh?
Díky moc za reakce.
Pro úplnost dodávám, že soubor obsahuje šest záložek a je třeba reagovat na změnu libovolné z nich. Testování na velikost by také k ničemu nevedlo, neboť například změna čísla v buňce nezpůsobí změnu velikosti souboru.
Zkusili jste to vypnout a zapnout? Problémy řeším pouze v tématech. Do SZ mi proto píšete zbytečně.
Základní diagnostika WiFi Jak na diagnostiku sítě Router jako switch Proč je nesmysl chtít router s velkým dosahem Vybíráme router

Reklama
Uživatelský avatar
franticek
Level 3
Level 3
Příspěvky: 435
Registrován: únor 07
Pohlaví: Nespecifikováno
Stav:
Offline

Re: VBS script a excel soubor - kontrola na změnu

Příspěvekod franticek » 24 črc 2013 12:49

Zdravím.

Co zkusit md5 nebo nějaký jiný hash souboru?
Ještě jsem našel attribut Date Last Saved, který se mění až po akci Save().
A zkoušeli jste to vypnout a zapnout?

Uživatelský avatar
ITCrowd
Tvůrce článků
Guru Level 13.5
Guru Level 13.5
Příspěvky: 23616
Registrován: březen 10
Pohlaví: Muž
Stav:
Offline

Re: VBS script a excel soubor - kontrola na změnu

Příspěvekod ITCrowd » 24 črc 2013 13:02

To mě taky napadlo, ale ani hash, ani crc nejde rozumně udělat ve vbs. Je třeba programů třetích stran.
Date Last Saved by mi stačila. Jenže potřebuje zase stáhnout od mrkvosoftu DSOfile.dll. Tam je problém s během na 64 bit.
Zkusili jste to vypnout a zapnout? Problémy řeším pouze v tématech. Do SZ mi proto píšete zbytečně.
Základní diagnostika WiFi Jak na diagnostiku sítě Router jako switch Proč je nesmysl chtít router s velkým dosahem Vybíráme router

Uživatelský avatar
ITCrowd
Tvůrce článků
Guru Level 13.5
Guru Level 13.5
Příspěvky: 23616
Registrován: březen 10
Pohlaví: Muž
Stav:
Offline

Re: VBS script a excel soubor - kontrola na změnu

Příspěvekod ITCrowd » 24 črc 2013 20:00

up
Zkusili jste to vypnout a zapnout? Problémy řeším pouze v tématech. Do SZ mi proto píšete zbytečně.
Základní diagnostika WiFi Jak na diagnostiku sítě Router jako switch Proč je nesmysl chtít router s velkým dosahem Vybíráme router

Uživatelský avatar
franticek
Level 3
Level 3
Příspěvky: 435
Registrován: únor 07
Pohlaví: Nespecifikováno
Stav:
Offline

Re: VBS script a excel soubor - kontrola na změnu

Příspěvekod franticek » 25 črc 2013 08:46

Ahoj.

DSOfile.dll problém na 64-bit systému je vyřešen tady.

Jinak něco jako MD hash script je tady a vypadá, že není třeba nic 3-tích stran (pouze to asi není pravý MD5 :-) )
A zkoušeli jste to vypnout a zapnout?

Uživatelský avatar
ITCrowd
Tvůrce článků
Guru Level 13.5
Guru Level 13.5
Příspěvky: 23616
Registrován: březen 10
Pohlaví: Muž
Stav:
Offline

Re: VBS script a excel soubor - kontrola na změnu

Příspěvekod ITCrowd » 25 črc 2013 09:22

Díky za snahu, ale vyřešen není. Skript musí běžet pod wscript.exe. navíc, i když ho spustím pod cscript, tak skončí chybou activex. Přitom registrace knihovny proběhla v pořádku. (Ostatně komentář o přechodu na OpenOfficeSDK mluví za vše).
Hash sice vypadá dobře, ale jen výpočet má milion řádků, což je daleko více, než měl původní skript. Nějaké jednodušší řešení by nebylo?
Zatím to zkouším přes počet obsazených řádků v sešitech, ale taky to není 100%, navíc se při každé kontrole musí spouštět objExcel.Application, což zbytečně bere procesorový výkon.
Ještě mě napadlo vzít dateLastModified a přitom zkontrolovat, zda je soubor otevřen. Ale na kontrolu otevření by bylo třeba zase něco jednoduchého.
Jinak demo ve vb7 dodané s DSOfile.dll funguje.
Zkusili jste to vypnout a zapnout? Problémy řeším pouze v tématech. Do SZ mi proto píšete zbytečně.
Základní diagnostika WiFi Jak na diagnostiku sítě Router jako switch Proč je nesmysl chtít router s velkým dosahem Vybíráme router

Uživatelský avatar
franticek
Level 3
Level 3
Příspěvky: 435
Registrován: únor 07
Pohlaví: Nespecifikováno
Stav:
Offline

Re: VBS script a excel soubor - kontrola na změnu

Příspěvekod franticek » 25 črc 2013 13:50

Ahoj.

Napadlo mne udělat malou apku v C#, která buď udělá ten checksum nebo se zkusit dobrat k data last saved a zkompilovat to pro 64-bit systém.
A zkoušeli jste to vypnout a zapnout?

Uživatelský avatar
ITCrowd
Tvůrce článků
Guru Level 13.5
Guru Level 13.5
Příspěvky: 23616
Registrován: březen 10
Pohlaví: Muž
Stav:
Offline

Re: VBS script a excel soubor - kontrola na změnu

Příspěvekod ITCrowd » 25 črc 2013 14:37

Tak nakonec jsem to vyřešil takto - používám DateLast Modified. V případě, že skript zjistí změnu, pak pomocí volání OpenTextFile zkusí soubor otevřít pro zápis. Chybu, kterou by to vyvolalo v případě, že je soubor používán, zachycuji za běhu. V případě chyby je jasné, že soubor někdo prohlíží, nebo edituje a tudíž skript nereaguje. Pokud chyba nenastane, pak jde o regulérní změnu souboru a skript ji oznámí. Lokálně to funguje, uvidím, jak se to bude chovat se sítí.
Tímto bych poděkoval mrkvosoftu za skvělé usnadnění práce :evil: .
Appek bych mohl napsat milion, ale -
1. musím využívat součástí windows (bez programů třetích stran)
2. kód musí být čitelný (což u exe není)
Díky za snahu.
Zkusili jste to vypnout a zapnout? Problémy řeším pouze v tématech. Do SZ mi proto píšete zbytečně.
Základní diagnostika WiFi Jak na diagnostiku sítě Router jako switch Proč je nesmysl chtít router s velkým dosahem Vybíráme router

Uživatelský avatar
franticek
Level 3
Level 3
Příspěvky: 435
Registrován: únor 07
Pohlaví: Nespecifikováno
Stav:
Offline

Re: VBS script a excel soubor - kontrola na změnu

Příspěvekod franticek » 25 črc 2013 16:46

Ahoj.

Taky řešení, jinak co použít powershell? Hledaný atribut má číslo 145.

Kód: Vybrat vše

$path = 'C:\vypis1.xls'
$shell = New-Object -COMObject Shell.Application
$folder = Split-Path $path
$file = Split-Path $path -Leaf
$shellfolder = $shell.Namespace($folder)
$shellfile = $shellfolder.ParseName($file)
0..287 | Where-Object { $shellfolder.GetDetailsOf($shellfile, $_) } |
Foreach-Object {
'{0} = {1} = {2}' -f $_,
$shellfolder.GetDetailsOf($null, $_),
$shellfolder.GetDetailsOf($shellfile, $_)
}
A zkoušeli jste to vypnout a zapnout?

Uživatelský avatar
ITCrowd
Tvůrce článků
Guru Level 13.5
Guru Level 13.5
Příspěvky: 23616
Registrován: březen 10
Pohlaví: Muž
Stav:
Offline

Re: VBS script a excel soubor - kontrola na změnu

Příspěvekod ITCrowd » 25 črc 2013 17:39

No, s powershellem se teprve začínám prát :D Samozřejmě mě napadl taky, jenže není standardní součástí winXP. Problém je totiž i ten, že přehráním jednoho souboru a následným restartem, můžeme vyrobit řídící pracoviště z libovolného jiného. Takže byť tento skript běží na W7, tak v případě nouze je nutné, aby běžel i na XP. kromě toho samozřejmě nehlídá jen jeden tento soubor, ale spoustu dalších věcí, na které upozorňuje, případně řeší (např. na serveru nahazuje spadlé služby). Už proto by volání dalších aplikací a cokoli jiného, co není standardní součástí woken, bylo problematické. každopádně díky.
Zkusili jste to vypnout a zapnout? Problémy řeším pouze v tématech. Do SZ mi proto píšete zbytečně.
Základní diagnostika WiFi Jak na diagnostiku sítě Router jako switch Proč je nesmysl chtít router s velkým dosahem Vybíráme router

Uživatelský avatar
franticek
Level 3
Level 3
Příspěvky: 435
Registrován: únor 07
Pohlaví: Nespecifikováno
Stav:
Offline

Re: VBS script a excel soubor - kontrola na změnu

Příspěvekod franticek » 26 črc 2013 11:52

Dobrá, dobrá, už mlčím :-).
A zkoušeli jste to vypnout a zapnout?

Uživatelský avatar
ITCrowd
Tvůrce článků
Guru Level 13.5
Guru Level 13.5
Příspěvky: 23616
Registrován: březen 10
Pohlaví: Muž
Stav:
Offline

Re: VBS script a excel soubor - kontrola na změnu  Vyřešeno

Příspěvekod ITCrowd » 26 črc 2013 14:30

OK. zamykám.
Zkusili jste to vypnout a zapnout? Problémy řeším pouze v tématech. Do SZ mi proto píšete zbytečně.
Základní diagnostika WiFi Jak na diagnostiku sítě Router jako switch Proč je nesmysl chtít router s velkým dosahem Vybíráme router


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Poškozený soubor excelu Příloha(y)
    od Jsimi » 06 úno 2024 22:43 » v Kancelářské balíky
    0
    1540
    od Jsimi Zobrazit poslední příspěvek
    06 úno 2024 22:43
  • Soubor personal.xlsb je uzamčen pro úpravy
    od VOM » 04 říj 2023 14:33 » v Kancelářské balíky
    3
    4222
    od VOM Zobrazit poslední příspěvek
    04 říj 2023 16:12
  • Excel a OneDrive
    od sginfo » 11 zář 2023 15:28 » v Kancelářské balíky
    16
    7293
    od mirekol Zobrazit poslední příspěvek
    20 říj 2023 08:31
  • Excel - funkce když
    od Martyn20 » 13 črc 2023 11:56 » v Kancelářské balíky
    5
    3164
    od mmmartin Zobrazit poslední příspěvek
    13 črc 2023 18:44
  • Excel - vlastní formát Příloha(y)
    od Story-Long » 11 srp 2023 14:50 » v Kancelářské balíky
    3
    2573
    od Story-Long Zobrazit poslední příspěvek
    14 srp 2023 10:11

Zpět na “Programování a tvorba webu”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 5 hostů