Re: PS-PDF sukrosta

[vastaus aiempaan viestiin]

Kirjoittaja: Kimmo Vehkalahti
Sähköposti:    -
Päiväys: 17.2.2002 12:06

Hauska kuulla että PS-PDF:stä on ollut hyötyä. Tein sen alunperin
omaan käyttööni, mutta viime syksynä huomasin että siitä saattaisi
olla iloa muillekin. En ole yllättynyt viimeaikaisista ongelmista.
Tämäntapaisen sukron laatiminen on omaan käyttöön helppoa mutta
yleiseksi ja robustiksi saattaminen hieman vaikeampaa.

Kerron aluksi mikä tekee homman hankalaksi, ja esitän sen jälkeen
PS-PDF:n uusimman version idean. Sen käyttöönotto edellyttää Survon
päivittämistä, joten en liitä tällä kertaa viestiini sukrokoodia.


Muiden Windows-ohjelmien käynnistäminen Survon sisältä voi tapahtua
ainakin kolmella tavalla:

    1) suoralla ohjelmatiedoston kutsulla:
       >C:\WINDOWS\NOTEPAD.EXE juttu.txt

    2) Windowsin Start-komennon avulla:
       >Start /MAX C:\WINDOWS\NOTEPAD.EXE juttu.txt

    3) tiedostotyypin assosiaation välityksellä:
       >juttu.txt

Kohdissa 1) ja 2) käynnistettävän ohjelman täydellinen polkunimi
on tiedettävä, ellei se satu sijaitsemaan esim. hakupolun (PATH)
varrella. Kohta 3) on sukron tekijän kannalta epäluotettava tapa,
sillä assosiaatiot voivat vaihdella ympäristöstä toiseen. Siis
esimerkiksi ps-tyyppisen tiedoston kutsuminen sen nimellä voi avata
GSview-ohjelman, Adobe Acrobat Distillerin tai jonkin muun. Se voi
myös johtaa virhetilanteeseen, jos assosiaatio puuttuu. [Lisää tästä
Windows-komennoilla Assoc ja Ftype tai Windowsia valikoiden: Start -> 
Control Panel -> Folder Options -> File Types (ainakin Win2000:ssa).]

Polkunimi on siis tiedettävä, mutta sen selvittäminen yleisesti ei ole
aivan yksinkertaista.

Keskustelimme Sepon kanssa PS-PDF:stä alkuviikosta palattuani sorvin
ääreen, ja Sepon ehdotuksen perusteella olen päätynyt ratkaisuun,
joka on nähdäkseni mahdollisimman yleinen ja tarjoaa myös mallin
muiden vastaavien tilanteiden varalle.

Sukro ei välitä enää SURVO.APU-tiedostossa acrobat_path-parametrilla
annetusta polusta lainkaan vaan hakee Distiller- ja Acrobat-ohjelmien
polut ominpäin ja laittaa ne talteen erilliseen tiedostoon Survon
SYS-hakemistoon. Jatkossa se tarkistaa onko kyseinen tiedosto olemassa
ja jos on, pitävätkö polut paikkansa. Jos eivät, se uudistaa tiedot.

Lähtötietoina ovat vain ohjelmien nimet AcroDist.exe ja Acrobat.exe.
Poluista sukro ei oleta mitään. Haku tapahtuu WHERE-komennolla, jota
olen yleistänyt tässä yhteydessä niin että se osaa palauttaa tiedot
ensimmäisestä löydetystä tiedostosta sukromuistiin.

Tässä on näyte sukron jäljiltä omasta koneestani:

*********************************************************************
<Survo>\U\SYS\ACROPATH.SYS
    Paths of Adobe Acrobat programs detected by sucro PS-PDF
    on Friday February 15 2002 15:18:21 Week=07 Day=046

Distiller=C:\PROGRA~1\Adobe\ACROBA~1.0\Distillr\AcroDist.exe
Acrobat=C:\PROGRA~1\Adobe\ACROBA~1.0\Acrobat\Acrobat.exe
*********************************************************************

Polkunimet, jotka voivat ympäristöstä toiseen vaihdella, on nyt
sijoitettu tähän erilliseen tiedostoon, jota sukro päivittää tarpeen
mukaan automaattisesti. Itse sukrokoodissa ei enää ole minkäänlaisia
viittauksia ko. ohjelmien mahdollisiin polkunimiin, ainoastaan nuo
exe-tiedostojen nimet.

Näin sukro muuten tarkistaa nuo polkutiedot (yksinkertaista ja nopeaa,
kun käyttää hyväksi {save spec} -sukrokoodia):

*LOADP {print Wsys}{act}
*{save spec Distiller WDist}{save spec Acrobat WAcro}
*{ref jump 1}SCRATCH{erase}{act}{home}
/
*CHECK {print WDist}{act}{next word}{save word Wx}{line start}{erase}
- if Wx '<>' OK then goto WHERE
*CHECK {print WAcro}{act}{next word}{save word Wx}{line start}{erase}
- if Wx '<>' OK then goto WHERE

Mikäli kyseisiä tiedostoja ei tunnu löytyvän, ne haetaan uudelleen.
Näin ollen sukro toimii, vaikka Acrobat-paketti asennettaisiin
välillä uudelleen eri paikkaan. Haku on toteutettu vieläpä niin,
että ensin pyritään hakemaan vain Program Files -hakemistopuusta ja
vasta toissijaisesti koko siltä levyltä mihin Windows on asennettu.
Täydellisenkin haun pitäisi olla varsin nopeaa, ja kun ohjelmat on
kerran löydetty, niitä ei tarvitse myöhemmin haeskella (mikäli ne
pysyvät paikallaan).

Koska sukrokoodin lisäksi jouduin tekemään pari yleistystä työpöytä-
toimintoihin (lähinnä WHERE- mutta myös INDEX-komentoon), vaatii siis
uuden PS-PDF:n käyttöönotto Survon päivityksen. Mainitut ominaisuudet
tulevat olemaan mukana versiosta 1.17 alkaen.

terveisin Kimmo

Vastaukset:
[ei vastauksia]

Survo-keskustelupalstan (2001-2013) viestit arkistoitiin aika ajoin sukrolla, joka automaattisesti rakensi viesteistä (yli 1600 kpl) HTML-muotoisen sivukokonaisuuden. Vuoden 2013 alusta Survo-keskustelua on jatkettu entistäkin aktiivisemmin osoitteessa forum.survo.fi. Tervetuloa mukaan!

Etusivu  |  Keskustelu
Copyright © Survo Systems 2001-2013. All rights reserved.
Updated 2013-06-15.