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