Re: Change Variable Name -sucro

[vastaus aiempaan viestiin]

Kirjoittaja: Seppo Mustonen
Sähköposti:    -
Päiväys: 7.4.2003 18:51

Juhan ehdottama sukro on varmasti hyödyksi joillekin toisillekin
survoilijoille. Alustavan tutustumisen jälkeen mieleeni on tullut
pari muutosehdotusta.

Juhan esittämässä versiossa uusi nimi kirjoitetaan FILE STATUS-
tilanteessa aikaisemman päälle ja sen jälkeen insertoidaan
"riittävän" monta välilyöntiä uuden nimen perään, jotta aikaisemman,
mahdollisesti pitemmän nimen loppuosa ei sekaantuisi uuteen.
Tämä mielestäni siirtää muuttujan nimen perässä olevaa mahdollista
kommenttitekstiä samalla vastaavasti oikealle, jolloin pitkistä
selityksistä loppuosa saattaa valua pois ja ainakin ulkoasu hieman
häiriintyy.
Sen vuoksi ehdotan seuraavaa versiota, jossa rivitunnusten B ja C
vaiheilla paikataan uuden nimen jälkeiset merkit välilyönneiksi
ensimmäiseen välilyöntiin asti.

Toinen huomautus koskee virhetilanteita (olematon tiedosto tai
muuttuja). Tällöin sukro juoksee kyllä näistä läpi, mutta
käyttäjä ei saa tiedokseen, että muutos epäonnistui.
Siksi muutin virheiden käsittelyä sen verran, että alariville
ilmaantuu 10 sekunnin ajaksi virheilmoitus.

 TUTSAVE CVNAME
/ Sucro changes the name of one variable in data file
/ use: /CVNAME datafile var_oldname var_newname
/ JVa/03.04.03 added error handling:
/ if file missing or if var (oldname) missing/invalid,
/ then continues without changes
/
*{tempo -1}{init}
/ --------------------
/ error handler on/off
*{error handler cvname}
- if W1 '=' ERR then goto ERR
/ ---------------------
/
/  CVNAME Change Variable NAME
/
/ def Wpara=W1 Wvname=W2 Wvnamenew=W3 Wdata=W4 Wt=W5
/
*{init}{Wdata=W1}{W1=CVNAME}
*{save stack CVNAM2}
*{call SUR-SAVE}
*{load stack CVNAM2}
*{jump 1,1,1}{erase}{erase}SCRATCH /
*{act}
*{line start}FILE STATUS {print Wdata}   /  VARS={print Wvname}
*{act}
*{search}FIELDS:{R}{R}
*{find string Wvname}{print Wvnamenew}
+ B: {save char Wt}
- if Wt '=' {sp} then goto C
* {goto B}
+ C: {jump 1,1,1}FILE UPDATE{}
*{act}
/
+ A:
*{W1=CVNAME}
*{call SUR-RESTORE}
*{load stack CVNAM2}{goto E}
/
+ ERR: {message}        Cannot change the name of the variable!@
- on key
-    key _: continue
-   wait 100
*{message}@{goto A}
/
+ E:
*{error handler SURVOERR}
*{tempo +1}
*{end}

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.