FILE RENAME,FILE CHANGE,FILE DROP,FILE EXPAND ?

[viesti Survo-keskustelupalstalla (2001-2013)]

Kirjoittaja: Reijo Sund
Sähköposti:    reijo.sund'at'stakes.fi
Päiväys: 9.12.2003 18:05

Tuosta Petrin muuttujien uudelleennimeämiseen liittyvästä
kysymyksestä palasi mieleen pari tilannetta, joissa
joskus olisi toivonut "oikopolkua" (joiden jo mahdollista
olemassaoloa en ainakaan itse ole automaattisesti huomannut
käyttäessäni toimivaksi tietämiäni tapoja).

1) Ensimmäisenä tuo FILE STATUS - FILE UPDATE rimpsu.
Kohtaan usein tilanteita, jossa tuon tekstitiedostojen
kautta tavaraa Survoon. Usein kätevintä on käyttää
automaattista FILE SAVEa. Valitettavasti muuttujien
nimet usein joko puuttuvat tai ovat käyttökelvottomassa
muodossa tuotavassa aineistossa. Tällöinhän muuttujille
tulee nimet X1,X2,... , jotka voi sitten helposti
FILE STATUS - FILE UPDATElla nimetä haluamakseen.

Tilanteessa, jossa tuotavat tiedostot ovat muodoltaan
samoja, voi samaa FILE UPDATEn FIELDS-taulukkoa
yrittää käyttää kaikille tiedostoille. Muuten hyvä,
mutta automaattinen FILE SAVE saattaakin olla
jonkun tiedoston tapauksessa valinnut tietyn muuttujan
tyypiksi toisen kuin jossain toisessa tiedostossa.
Tällöin FILE UPDATE herjaa muuttujan tyypin muutoksesta
eikä uudelleennimeäminen onnistu.

Ratkaisuna voisi tietysti yrittää käyttää FIELDSiä heti
FILE SAVEssa. Tämän syntaksi kuitenkin poikkeaa FILE
UPDATEn ja FILE CREATEn vastaavasta. Erityisesti muuttujien
pitkien nimien/selitysten antaminen ei samalla käsittääkseni
onnistu, jolloin FILE UPDATEa siis tarvittaisiin kuitenkin.
Tähän ongelmaan onneksi löytyy kätevä ratkaisu FILE CREATE -
FILE SAVE yhdistelmästä jälkimmäisen täsmennyksellä
NAMES=DEFAULT, jolloin muuttujien nimet ja tyypit otetaan
kohdetiedostosta.

Tuo ratkaisu ei kuitenkaan muuta sitä, että joskus olisi
tarpeellista nimetä muuttujia uudestaan ilman järjestysnumeroa
ja tyyppiä. Mahdollinen toivottava oikopolku siis voisikin
olla uusi FILE RENAME komento, jolla muuttujien nimiä
voi vaihtaa antamatta niiden tyyppejä (ja
järjestysnumeroita). Mahdollisesti tällainen RENAME optio
myös FILE COPYssä olisi hyödyllinen.

Tästä kumpuaa sitten lisäidea eli komento FILE CHANGE,
joka toimisi kuten FILE UPDATE, mutta sallisi muuttujien
tyypin muunnokset. Tällainen CHANGE-optio olisi RENAMEn
tapaan mahdollisesti hyödyllinen myös FILE COPYssä.

Lisäksi FILE UPDATEssa olisi kiva saada päivitys
onnistumaan, vaikka järjestysnumerot olisivatkin
"satunnaisessa" järjestyksessä. Käytännössä nimittäin
esim. lopullisen esitysformaatin muotoilut olisi kiva
siirtää "takautuvasti" aikaisemmin käsiteltyihin
tiedostoihin, joissa ko. muuttujat voivat olla eri
järjestyksessä. Pelkkien järjestysnumeroiden muuttaminen
on käytännössä usein helpompaa kuin koko järjestyksen
puljaaminen uuteen uskoon. Tokihan SORTin käyttö on
sallittua ja mahdollista, mutta ei sitäkään aina tule
ajatelleeksi ;).

Ajatusten Tonavan virratessa lisätoivomuksia satelee:
FILE COPYllä ja VARS-täsmennyksellä saa toki helposti
tehtyä tiedoston, jossa on mukana vain halutut muuttujat
alkuperäisestä tiedostosta. Kuitenkin välillä tulee
vastaan tilanteita, joissa olisi kätevää saada
muuttujia tiputettua pois ilman kopioimista (jos
tiedosto on vaikka parinsadan megan kokoinen).
Tiedoston lopusta tiputtaminen onnistuu helposti
FILE REDUCElla, mutta keskeltäkin tiputtaminen vaikka
VARS-täsmennyksessä lueteltujen muuttujien osalta
olisi joskus tarpeellista.

2) Toisena ajatuksia oikeastaan hiukan aikaisempiin
liittyen; erityisesti tuohon FILE DROPpiin. On
tavallista, että aineistoa käsitellessä tulee tehtyä
erinäisiä uusia muuttujia. Jostain syystä ainakin
minä erittäin usein törmään sellaiseen tilanteeseen,
että tiedostossa ei enää ole tilaa uudelle
muuttujalle (lähtien automaattisesta FILE SAVEsta
ei välttämättä edes tule vastaan NEWSPACE-
täsmennyksen käyttömahdollisuutta). Satojen megojen
tiedostojen kanssa FILE COPY -puljaus on hiukan
rasittavaa. Muistaakseni tästä on ollut aikaisemminkin
puhetta, mutta en muista mikä oli ratkaisu silloin..

Nyt toivomus olisi FILE EXPAND -komento, jolla
tiedostoon saisi (kopioimatta) "raivattua" uutta
tilaa. Ilman täsmennyksiä tilaa tulisi saman verran
kuin FILE COPYssä. Tarkemman NEWSPACE-täsmennyksen
voisi tietysti halutessaan antaa.

Yleisemmin NEWSPACE-täsmennyksen osalta olisi
kästevää pystyä antamaan se pelkkänä muuttujien
lukumääränä (jolloin tarvittavat tavut tulisivat
vaikkapa jotenkin FILE COPYn algoritmia vastaavalla
tavalla). Tarvittavien tavujen laskeminen kun tuntuu
usein ylivoimaiselta tehtävältä ;).

Eli tällaista tällä kertaa.. kertokaahan, jos
olette törmänneet samankaltaisiin "hankaluuksiin" ja
erityisesti jos teillä on hyviä "kikkoja" em.
tilanteiden hallintaan!

terv.
Reijo

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!

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