Saltrød Horror Show nr. 84

av Odd de Presno.


Publisert i Datatid, Norge nr. 4/1994, side 90.


Microsoft er i støtet med distribusjon av nye versjoner av programmer pr. modem. De gjør det bl.a. fra egen BBS i Oslo (tlf. 22182209) og globale støttefora på Internet og CompuServe.

Slik havnet en ny versjon av MSD.EXE (Microsoft Diagnostics) mellom mine hender. Mens MSD.EXE i min DOS versjon 6.2 var datert 3/10/93, har den modemdistribuerte filen MSD210.EXE datoen 11/1/93.

Så vet du det.

Kraftig krutt gir mindre jobb

I neste uke skal min yngste datter ha OL-fri. Ved frokosten stilte kona det gamle spørsmålet: "Har du jobb til henne?"

Jeg svarte naturligvis ja. Det er mye arbeide å ajourføre "The Online World"-boken. Å få hjelp var nyttig. Kanskje hun til og med kunne lære litt mer data i prosessen.

"Jeg må bare forberede oppgaven", svarte jeg og dermed startet problemene. Neste morgen hadde underbevisstheten laget en batchfil som gjorde jobben overflødig

Små sharewareprogrammer for redigering og søking i tekst heklet sammen med batchfiler er kraftige saker.

Først litt om oppgaven. Versjon 1.4 av The Online World skulle ut i begynnelsen av mars. Den nye utgaven skulle ha langt flere pekere til konferanser og informasjonskilder utenfor Nord- Amerika. Det var her jeg tenkte hun kunne hjelpe.

Konferansesystemet Usenet er ett av flere reservoirer å øse av. En liste over newsgroups lå på disken (i filen NEWSGRPS.EXE, 96KB). Til sammen 296KB med tekst. Like mye som i en liten bok. I filen er hver newsgruppe (Usenet-betegnelsen på en konferanse) angitt med en linje. Ett eksempel:

alt.asian-movies Movies from Hong Kong, Taiwan and the Chinese mainland.

Den tenkte oppgaven var at hun skulle gå gjennom Usenet- listene og plukke ut alle konferanser om temaer knyttet til land utenfor Nord-Amerika.

Da morgenen kom, visste jeg imidlertid at det var hurtigere, sikrere og mindre arbeidskrevende (for meg) å gjøre det automatisk. Dette er hva jeg kom frem til.

Før Usenet-filene kunne søkes, måtte jeg ha en liste over alle land i verden. Det er enkelt. ISO standard 3166 om "International Standard Top-level Country codes" er en slik liste. Den kan hentes pr. epost via Internet. (Søk etter "3166" i versjon 1.4 av The Online World for detaljert instruksjon. Boken kan lastes ned fra SHS som ONLINE14.EXE.)

I dokumentet er hvert land angitt slik:

 AD   Andorra
 AE   United Arab Emirates        P    Apparently dead ns.uu.net 

Tricket er å hente ut navnelisten i kolonne to. Det gjøres enkelt med et tekstprogram. Tidligere har jeg beskrevet hvordan det kan gjøres med gratisprogrammet CUT (CUTOUT.EXE, 10KB). Denne gangen gjorde jeg det med APPNDLXL (i filen APPNDL.EXE, 44KB).

Appndlxl er forøvrig interessant av en annen årsak. Det lar deg klippe ut opp til 10 kolonner fra forskjellige dokumenter og lime dem sammen i ett dokument. Du kan for eksempel lage en ukerapport ved å trekke kolonner med tall ut av dagsrapporter.

Da kolonnen med landenes navn var trukket ut av ISO-listen, inneholdt filen noen blanke linjer her og der. Enkelt. Programmet DO (i filen DO33.EXE, 32KB, bidragsønske US$10) har en parameter som fjerner blanke linjer og linjedubletter (linjer som forekommer mer enn en gang). Følgende kommando gjør jobben:

do b land.txt >land.bat

Neste jobb var å gjøre resultatsfilen LAND.BAT om til en rutine som kunne søke de syv kildefilene i USENET-katalogen etter hvert enkelt land på listen og legge resultatet i en oppsamlingsfil.

Dette oppnås med kommandoer av denne typen

call c:\bat\fld %1 Andorra
call c:\bat\fld %1 Afghanistan

En enkel søk og erstatt med tekstprogrammet sørget for at LAND.BAT fikk et slikt innhold.

DOS-kommandoen CALL er en vidunderlig oppfinnelse. Den lar oss kjøre en annen batchfil. Når denne er ferdig, gis kontrollen tilbake til LAND.BAT, som fortsetter med et søk etter neste land.

Før jeg viser FLD.BAT, skal nevnes at %1-parameteren inneholder navnet til de filene som skal gjennomsøkes. For å få utført denne oppgaven måtte jeg derfor starte LAND.BAT med kommandoen

land c:\kilder\kilder\usenet\*.*

Kommandolinjen "call c:\bat\fld %1 Andorra" fører derved her til at FLD.BAT blir startet opp med kommandoen

fld c:\kilder\kilder\usenet\*.* Andorra

FLD.BAT inneholder følgende enkle kommandoer:

@echo off
REM Søking etter navn på land i filene %1
fgrep -e %2 %3 %1
if not errorlevel 1 goto end
fgrep -sx %2 %3 %1 >> resultat.tmp
:end

FGREP skrev vi om sist. Programmet ligger i filen FGREP180.EXE (28KB, gratis).

Det første søket undersøker om det finnes noen referanser til landet i filene. Hvis ikke (IF NOT ERRORLEVEL 1), går styringen tilbake til LAND.BAT, som iverksetter et søk etter neste lands navn. Dette er streng tatt ikke nødvendig her, men er nyttig om søket også skal gi navnet på filene, som det finnes tekst i.

Parameteren "-sx" betyr at det ikke skal skrives noe filnavn eller FGREP Logo i resultatsfilen.

Variablene %2 og %3 inneholder landets navn, f.eks. Costa Rica. Består navnet av flere enn en del, krever FGREP at søkeordet omsluttes med '-tegn (slik: 'Costa Rica'). Jeg måtte derfor tilbake i LAND.BAT for å legge inn disse tegnene, der det var nødvendig.

Helt til slutt i LAND.BAT ble RESULTAT.TMP sortert med QSORT (i filen QSORT403.COM, 55KB, bidrag US$20). Deretter kom det en ny omgang med DO for å fjerne dubletter av typen "misc.news.southasia News from Bangladesh, India, Nepal, etc." Denne linjen forekommer nødvendigvis tre ganger i filen.

Fem minutter tok jobben! Jeg får finne på noe annet å gjøre for datteren min.

Programmer for timeregistrering er nyttige for konsulenter og andre som utfører oppdrag på timebasis. I noen tid hadde jeg brukt LOG (i filen LOG30D.EXE). Etter hvert synes jeg imidlertid det ble for krøkkete og ønsket noe bedre.

Etter å ha testet noen alternativer, falt mine øyne på Cheqin (i filen CHEQIN15.EXE. 61KB, bidragsønske).

Bruksanvisningen er dessverre ikke så lett å forstå med første, utålmodige øyekast. På den positive siden kan du til en viss grad skreddersy programmet til din anvendelse.

Jeg testet det på et 75-timers prosjekt. Det tar litt tid å bli vant til hvordan Cheqin fungerer, når du vil registrere arbeidstid flere ganger i løpet av en dag. Jeg fikk stadig doble transaksjoner. Heldigvis er det enkelt å slette dem etterpå. Med litt trening gikk det greit.

Cheqin har en innbygd faktureringsrutine. Det er lett å se hvor mange timer/penger som er brukt hittil, men jeg savnet en mulighet til å legge inn budsjett pr. delaktivitet. Den dokumentasjonen av arbeidet som du kan vedlegge fakturaen er imidlertid flott.

Stavekontroll på engelsk er stadig et interessant område. Windows-programmet Winspell (i filen WINSPEL@.EXE, 312KB) gjør jobben rimelig bra. Du får en alfabetisk liste over "unknown words", dsv. ord, som antas å være feil. De du ikke vil endre, kan føyes til den innebygde ordlisten.

Registrering koster US$22 til R&TH Inc., 1730 Sherbrook Drive NE, Cedar Rapids, Iowa 52402, USA.

Tastaturfreakens drøm er superrask skifte til en annen katalog og å øyeblikkelig være klar til jobbing.

Det begynte med litt leking med endre-katalog-programmet ACD kombinert med LIST. I dag er det blitt en absolutt favoritt. ACD ligger i filen ACD221.EXE (56KB, gratis). LIST ligger i filen LIST90E.EXE (110KB, US$20).

La meg begynne med et eksempel på hvordan det fungerer på min Toshiba 4400SXs 200MB harddisk med 200 kataloger. Jeg kjører "systemet" med en makro (PCED synonym) kalt "ld".

Eksempel: kommandoen "ld usen" bringer meg lynhurtig til katalogen til C:\KILDER\KILDER\USENET . Opp på skjermen kommer en liste over filene der. Den er vist frem med LIST, hvilket betyr at jeg kan arbeide direkte ut fra fillisten.

Innebygget i LIST ligger referanse til mitt tekstprogram. Jeg har erstattet tekstrengen "edit" inne i programme med en editor til "d:ed". Dermed kan jeg bruke dette programmet fra PCens ramdisk. Når markøren står over et filnavn, er det bare å trykke E for å få den inn i tekstprogrammet.

Programmer kan kjøres fra listen ved å trykke "i". Det tar to tastetrykk å gå ut i DOS for å gjøre ting der. Fra LISTs filliste kan jeg kopiere, slette, flytte filer med mere. Når jeg går ut av LIST, er jeg tilbake i utgangskatalogen.

Kommandoen "ld kidli" gir meg valget mellom C:\KIDS\KIDLINK og C:\KIDS\FILES\KIDLINK. Markøren står ved den første katalogen og jeg kommer dit med et trykk på Enter. Vil jeg i den andre, må jeg trykke PilNed og Enter. Det går i en fei å hoppe rundt om kring på disken.

Batchfilen ser slik ut:

echo off
c:\system\ret !
c:
cd \system
acd %1
d:list %2 /d"
c:\system\ret

Programmet RET ligger i filen RETURN.EXE (7 KB, gratis). Dets formål er å bringe meg hurtig tilbake til utgangspunktet etter utført jobb.

Sjelden har jeg vært så fornøydd med en batchfil. Den ligger helt på toppen av bruksstatistikken min. Prøv den!


Det er forbudt å distribuere denne artikkelen - eller deler av den - i elektronisk, trykt eller kopiert form mot betaling.