[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: |
---|
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!