Kun sukro tutkii toimituskentän sisältöä (esim. käyttäjän siihen
kirjoittamia tietoja tai Survon operaatioilla saatuja tuloksia), sen
pitää löytää tarvittujen tietojen paikat ja poimia tiedot
sukromuistiin jatkotoimenpiteitä varten. Näkevään käyttäjään verattuna
sukrot ovat sokeita; niiden on yritettävä hapuilemalla saavuttaa
etsimänsä.
Survoon on tätä varten lisätty useita näppäintoimintoja, joita
sukrokielessä vastaavat omat sanansa, eräänlaiset hapuilukoodit.
Samoin tarvitaan käskyjä, joilla löydetyt tiedot siirretään
toimituskentästä sukromuistiin ja vastaavasti sukromuistista takaisin
toimituskenttään. Myös toimituskentässä liikkumista ja kohdistimen
sijaintia on kyettävä seuraamaan.
{find <merkki>}
(näppäinyhdistelmä {pre} C <merkki>
) etsii annetun
merkin seuraavan sijaintikohdan nykyisellä rivillä. Kohdistin siirtyy
merkin kohdalle. Ellei merkkiä löydy kohdistin jää paikalleen.
{next word}
(näppäimet {pre} W
) siirtää kohdistimen nykyisen rivin
seuraavan sanan alkuun. Jos kohdistin osoittaa jo rivin viimeistä
kuvaruudulla näkyvää sanaa, se jää paikoilleen.
{find Wi}
etsii aivan vastaavasti muistipaikassa Wi
olevan sanan
ensimmäisen merkin nykyiseltä riviltä.
{save word Wi}
tallettaa kohdistimen koskettaman sanan
(välilyönnit toimivat erottimina) muistipaikkaan Wi
. Jos kohdistin
osoittaa (tyhjää) välilyöntiä, tämä tallentuu sukromuistiin.
{save char Wi}
tallettaa kohdistimen osoittaman merkin
muistipaikkaan Wi
.
{save line Wi}
tallettaa toimituskentän rivin sen osan, joka on
kohdistimesta oikealle, muistipaikkaan Wi
. Rivin lopussa olevia
välilyöntejä ei talleteta.
Kaikki sukro-ohjelmassa oleva teksti, joka ei ole aaltosuluissa, jäljentyy toimituskenttään aivan kuin käyttäjä itse kirjoittaisi sen. Esim. lisäystila ja valittu tekstin tehostustapa (väri) vaikuttaa tulokseen. Sukrot saattavat kirjoittaa väliin myös sukromuistiin kerääntyneitä tietoja esim. ehdollisesti sen mukaan, millaisia tuloksia jossain sovelluksessa on saatu.
{print Wi}
kirjoittaa muistipaikan Wi
sisällön kohdistimen
osoittamasta paikasta eteenpäin. Kohdistin siirtyy vastaavasti.
Mahdolliset kirjoitettavalla kohdalla olevat varjomerkit (värit) eivät
muutu. Lisäystila ei vaikuta kirjoittamiseen, vaan kirjoitus peittää
aikaisemman tekstin. Toiminta on samankaltaista kuin toimituskenttään
tulostavilla Survon operaatioilla.
{write Wi}
toimii kuten {print Wi}
, mutta se käyttäytyy niin kuin
käyttäjä itse kirjoittaisi saman tekstin. Siis esim. valittu
kirjoitustehostus (väri) ja lisäystila otetaan huomioon. Samoin
tekstin sisältämät sanat siirtyvät automaattisesti seuraavalle
riville, elleivät mahdu nykyisen näkyvään osaan.
REF-napin (koodi {ref}
) ja nuolinappien ({r}
,{l}
,{u}
,{d}
) ohella
sukroille on tarjolla muutamia lisämahdollisuuksia.
{save cursor Wi,Wj}
tallettaa kohdistimen paikan siten, että
rivinumero menee muistipaikkaan Wi
ja sarakenumero paikkaan Wj
.
{save corner Wi,Wj}
tallettaa kuvaruudussa näkyvän toimituskentän
osan ensimmäisen rivin ja sarakkeen numerot vastaavalla tavalla.
{jump Wi,Wj,Wk}
siirtää kohdistinta toimituskentässä siten, että
kentän rivi Wi
näkyy ensimmäisenä kuvaruudulla ja itse kohdistin
asettuu rivin Wj
sarakkeeseen Wk
. Parametrien Wi
, Wj
ja Wk
paikalla
voi olla myös kokonaislukuja.
{jump Wi,Wj,Wk,Wh}
siirtää ikkunaa ja kohdistinta niin, että
kuvaruudussa näkyy ensimmäisenä rivi Wi
ja sarake Wk
. Kohdistin
sijoittuu rivin Wj
sarakkeeseen Wh
. Parametreina saa olla myös
kokonaislukuja.
jump
-koodin rakenne vastaa läheisesti Survon GOTO
-käskyä mutta
käyttäjälle näkymättömällä tavalla.
Esim. jos kohdistimen ja ikkunan paikka talletetaan käskyparilla
{save corner Wrivi1,Wsarake1}
{save cursor Wrivi,Wsarake} ,
sama ikkunan asema ja kohdistimen paikka tavoitetaan myöhemmin
käskyllä
{jump Wrivi1,Wrivi,Wsarake1,Wsarake} .
Huomaa, että vastaava asia hoidetaan yksinkertaisimmin tallettamalla
paikka {ref}
-koodilla ja palaamalla takaisin samalla {ref}
-koodilla.
Vasta kun käytetään samanaikaisesti useita viitepaikkoja, nyt esitetty
keino on tarpeen.
Toimituskentässä on lista päiväyksiä, joissa vuosiluvusta on
joskus jätetty kaksi ensimmäistä numeroa pois. Tehdään sukro VUODET
,
joka täydentää ko. merkinnät. Sukron tulee myös huomauttaa
virheellisistä päiväyksistä, joissa ei ole riittävä määrä pisteitä.
|
|
Koska merkinnät ovat erimittaisia, vuosilukua tulee etsiä aina
rivin alusta toisen pisteen perästä. Listan oletetaan päättyvän
tyhjään riviin. Sukro VUODET
ohjelmoidaan silloin esim. näin:
|
|
Kun sukro aktivoidaan rivillä 3, syntyy korjattu luettelo:
|
|
Sukro RIVILUKU
etsii toimituskentän rivien lukumäärän siirtämällä
kohdistinta alaspäin niin kauan, ettei se enää liiku. Tämä havaitaan
tarkkailemalla rivinumeroa.
|
|
Rivillä 59 on näytetty, miten sukro kirjoittaa vastauksensa.
Sukroa RIVILUKU
ei kuitenkaan käytännössä tarvita, sillä sukrokieleen
kuuluu käsky {save dim Wi,Wj}
, joka tallettaa suoraan sukromuistiin
toimituskentän rivien ja sarakkeiden määrät.
Sukro NURIN
kääntää seuraavan rivin alkuun kirjoitetun sanan
kirjaimet päinvastaiseen järjestykseen ja kirjoittaa tuloksensa
muodossa:
|
|
Sukron listaus on seuraavanlainen:
|
|
Sukrossa käytetään (rivillä 78) käskyä {Wi=Wj&Wk}
joka kopioi
muistipaikkojen Wj
ja Wk
peräkkäin asetetut sisällöt paikkaan Wi
.