       11. programma ZIP ("rebus/|kran").

       11.1.  obzor.

       programma  "rebus/|kran" prewra}aet wa{ |kran w "okno"
dlq  sozdaniq  23 stro~noj wwodnoj formy dlq |krana i  do  88
stro~noj   wyhodnoj formy dlq printera,  pozwolqq  prewra}atx
izobravenie na |krane w posledowatelxnostx komand "rebus".

      11.1.1. struktura |krana pri rabote "rebus/|kran"

      0.........................79
      .
      .            /r
      .
      .            /m
      ----------------------------
      !                          !  /t
      !                          !
      !                          !
      !                          !
      !                          !
      !                          !
      !                          !
      !                          !  /w
      ----------------------------
      .
      .
      .            /N
      .
      <dlina stranicy>(23-88)
      .
      .
      .
      88

      11.1.2. |krannye komandy ZIP
              (pe~ataemye, izmenqemye)

      / :prefiks komandy     //:men`
      /t:werh |krana         /w:niz |krana
      /m:seredina stroki
      /i:wstawitx probel     /D:udalitx simwol
      /a:wstawka stroki      /k:ubratx lini` kursora
      /n:~ertitx goriz.lin.  /V:~ertitx wertik. lini`
      /N:sled. |kran         /L:posl. |kran
      /F:perwyj |kran        /S:sohranitx fajl, programmu
      /e:~istka rab. fajla
      /Q:perehod w sistemu

      dlq "rebus" :

      @ :SAY-peremennaq      # :GET-peremennaq
      []:zarezerwirowano dlq wkl`~aemyh "rebus"-komand

     11.1.3.   dinami~eskie  zna~eniq,   kotorye  wy   movete
izmenitx wo wremq sessii "rebus/|kran"

      . :<V> wertik. marker  - :<n> gorizontalxnyj marker
      5 :<t> tabulqciq (1-9) 88:<r> dlina stranicy (23-88)
      40:<m> granica dlq printera (0-127)

      11.2. princip raboty "rebus/|kran"

      w   dalxnej{em   tekste   wmesto   slow   "rebus/|kran"
ispolxzuetsq sokra}enie ZIP.
      ramki i tablicy sozda`tsq, ispolxzuq  gorizontalxnye  i
wertikalxnye markery.  tekst, imena peremennyh (s lidiru`}imi
@ ili #) i wstroennye komandy (w kwadratnyh  skobkah)  prosto
nabira`tsq na |krane bez wsqkih  uprawlq`}ih  simwolow.   kak
tolxko wy narisowali formu,  kotoraq wam  nrawitsq,  naberite
'/S', i ZIP primetsq za rabotu.

     ZIP skaniruet formu i awtomati~eski sozdaet wse komandy:

      @ <stroka,stolbec> SAY <tekst>

      wstretiw simwol @ on pi{et:

      @ <stroka,stolbec> SAY <peremennaq>

      komandy   "rebus"  on  uznaet  po  kwadratnym  skobkam,
wpro~em  sodervimoe kwadratnyh skobok on  ne  analiziruet,  a
perenosit  ego  w wyhodnoj fajl.  FMT-fajly (wyhodnye  formy)
mogut sozdawatxsq dlq |krana ili dlq pe~ati. CMD-fajly
(whodnye formy) - dlq |krana.


      11.3. ispolxzowanie "rebus/|kran"

      wwedite komandu:

      ZIP

      ZIP na~inaet rabotu s pokaza HELP-|krana i zna~enij  po
umol~ani`.  nam  ne  nado ih zapominatx.  |tot  |kran  movete
uwidetx, nabraw:

      //
      ~toby wyjti iz nego, naberite l`boj simwol. |kran o~is-
titsq, i ZIP (w nivnej stroke |krana) sprosit:

     <NEW> OR <OLD> FILE (Q TO QUIT)?

      ZIP ne budet rabotatx, pokuda wy emu ne skavete - vela-
ete li wy sozdatx nowyj fajl (N) ili izmenitx staryj (o), ili
wy razdumali rabotatx s ZIP (Q). esli wy tolxko na~ali:

      N
      ZIP sprosit imq sozdawaemogo fajla:

      FILE NAME (DRIVE ORTIONAL):

      imq fajla do 8 simwolow i movet sodervatx simwoly:

      a-q, 0123456789, @#/ i :

      |to ozna~aet,  ~to wy ne imeete prawa zadawatx tip faj-
la.  ZIP  budet sohranqtx rabo~ij fajl pod imenem <imq>.ZIP i
budet zapisywatx komandnyj fajl w <imq>.CMD. wwedite imq faj-
la i <wk>.  kursor peredwinetsq w na~alo |krana (0,0),  i ZIP
soob}it wam ego teku}ie koordinaty.

      poprobuem navatx klawi{u tabulqcii <tab> ili <wk>. esli
estx awtopowtor,  to dervite klawi{u navatoj i kursor  na~net
dwivenie po strokam,  poka ne dostignet konca |krana.  pri~em
ZIP  kavdyj  raz  budet  soob}atx  koordinaty  kursora.  estx
komandy dlq bolee bystrogo perehoda po |kranu:

    /t - na werh |krana (w stolbce);
    /w - na niz |krana (w stolbce);
    /m - na centr stroki |krana.

      pomnite, ~to ZIP wse wremq sledit za  wami  i  soob}aet
wam teku}ie koordinaty kursora!  kogda wy navimaete  "/",  on
znaet,  ~to wy hotite wwesti komandu, i otobravaet  i  "/"  i
komandu w swoej stroke, a ne pod kursorom!

      kogda   wy  na~inaete  seans  s  ZIP,   {ag   tabulqcii
awtomati~eski ustanawliwaetsq w 5, a razmer stranicy -  ~islu
strok |krana (esli wy w ustanowke ZIP ih ne menqli).

      wo wremq seansa wy movete menqtx {ag tabulqcii i razmer
stranicy   wyzwaw  HELP-|kran.   esli  wy  sokra}aete  razmer
stranicy w te~enii sessii s ZIP,  stroki za stranicej   budut
terqtxsq. nawsegda.

      teperx ustanowite kursor w na~ale  |krana  (<wk>,/t)  i
naberite:

   /n
   /V
   <TAB dwavdy>
   /V
   <TAB dwavdy>
   /V
   /n

      |ti komandy ~ertqt i ubira`t wertikalxnye linii,  stawq
 "+" w perese~enii ih.

      esli kursor na simwole gorizontalxnogo markera wo wremq
wwoda komandy /n, ZIP za~i}aet ostatok stroki.

      esli kursor na "+", ZIP movet otwetitx po-raznomu.

      esli kursor na "+" i slewa ot nego drugie  simwoly,  to
on ostaetsq,  a sprawa ot nego za~i}aetsq ostatok linii. esli
net  nikakih  simwolow  neposredstwenno  slewa  ot  nego,   a
sledu`}ij   simwol  sprawa  ne  "+",   gorizontalxnaq   liniq
zatiraetsq,    a   "+"   zamenqetsq   na   teku}ee   zna~enie
wertikalxnogo  markera.

      esli simwol okruven drugimi "+", to wse oni osta`tsq, a
ostatok stroki posle krajnego sprawa "+" zatiraetsq.  w  |tom
slu~ae  ZIP  wnowx  ne  prowedet  |tu  lini`,   poka  wy   ne
peredwinete kursor na krajnij sprawa "+".

      wertikalxnyj marker imeet tu ve logiku.

      ispolxzuq |ti komandy dwavdy (/n,/n  ili  /V,/V)  movno
bystro zateretx ws` stroku ili stolbec.
      teperx naberite:

   //
   r
   40
   . (teku}ee zna~enie wertikalxnogo markera)
   *

      |tim my izmenili razmer stranicy w 40 strok, a zna~enie
wertikalxnogo  markera  - w  '*'.  navmite  l`bu`  klawi{u  i
wernetesx w rabo~ij |kran ZIP.

      ispolxzuq  <wk>  spustitesx  wniz na  neskolxko  strok.
naberite  /n,   a  potom  /V.  wmesto  o~istki   wertikalxnoj
stroki,  poslednqq komanda izmenit wse simwoly na  zwezdo~ki.
|to   potomu,   ~to  my  nahodimsq  ne  na  teku}em   simwole
wertikalxnogo markera.

      teperx naberite:

   /N
   /w

      wy o~utitesx wnizu sledu`}ego |krana, i ZIP podskavet:

    ROW 39,COL 0
   (stroka 39, stolbec 0)

      stroki   w  na{ej  stranice  numeru`tsq  ot  0  do  39.
zametxte,  ~to poslednqq wertikalxnaq liniq dohodit do samogo
niza stranicy, hotq ona prowodilasx wne |togo |krana.

   /F - na perwyj |kran;
   /L  - na  poslednij |kran (poslednqq  stroka  stranicy  na
poslednej stroke |krana).

      ~toby sohranitx wse, ~to my narisowali:

   /S
     ZIP na |to otwetit:

     sohranitx <imq> kak CMD ili kak FMT-fajl (s, F ili STOP)?

     esli wy navali ne "s" ili "F",  ZIP zaneset  wa{u  formu
obratno  w rabo~ij fajl.  esli navali "s",  ZIP sprosit:

     |ta forma dlq pe~ati  (Y  ili  N)?

     l`boj otwet krome "Y" |kwiwalenten "N".

      posle |togo ZIP daet wam {ans smenitx  imq  fajla  (dlq
FMT i CMD-fajlow):

      fajl <imq>: velaete smenitx (Y ili N)?

      esli "Y", ZIP sprosit nowoe imq. wy dave movete ukazatx
drugoj  disk  w sostawnom imeni  fajla.  l`boj  drugoj  otwet
rawnozna~en "N".
      ZIP   wna~ale  sohranqet  obraz  |krana  ili  printera,
kotoryj wy sozdali. on skavet:

      zapisan obraz |krana <imq>.ZIP

      dlq obraza pe~ati:

      zapisan obraz pe~ati <imq>.ZPR

      pri  zapisi  komandnogo  fajla  "rebus"  ZIP    wna~ale
zapisywaet imq fajla w ka~estwe kommentariq:

   *<imq>.CMD

     ili:

   *<imq>.FMT

      esli fajl tipa CMD, to posle |toj stroki on wnosit:

   ERASE (dlq obraza |krana)

      ili:

   SET FORMAT TO PRINT
   SET MARGIN TO XX (dlq obraza |krana)

      dlq oboih tipow fajlow (CMD i FMT) ZIP  zapisywaet  wse
predloveniq  '@..SAY'  i  GET i wkl`~aet READ  w  fajl  posle
kavdyh  64  GET'ow.  ZIP wsegda soob}aet wam,  skolxko  takih
strok bylo zaneseno.

      ZIP zawer{aet rabotu  zapisx`  READ  w  konce  whodnogo
|krannogo  formata  ili  SET FORMAT TO  SCREEN  dlq  pe~atnyh
formatow  neposredstwenno  pered zawer{a`}im RETURN  w  konce
fajla.

      posle  |togo  ZIP sohranqet  wa{  rabo~ij  fajl,  pi{et
programmu i pokazywaet ee na |krane. wy  movete  izmenitx  ee
i sohranitx w fajle pod drugim imenem.

      esli ZIP najdet GET w pe~atnom fajle, on skavet:

   "GET" w pe~atnom fajle: prawilxno (Y ili N)?

      esli wy namerenno upotrebili GET -  otwetxte  "Y".  ZIP
prodolvit zapisx w <imq>.CMD.

      esli   GET  o{ibo~na  - navmite  l`bu`   klawi{u.   ZIP
terminiruet CMD-fajl,  zaqwlqq "komandnyj fajl ne  zawer{en",
pozicioniruet  kursor na simwole GET,  predlagaq wam  udalitx
ili smenitx ego.

      wy, teperx, movete opqtx sohranitx wa{  fajl  (/S),  no
wse |to, kone~no, zajmet u was mnogo wremeni.

      ZIP prowerqet imena peremennyh. esli oni neprawilxny  w
smysle "rebus", on sprosit:

   ne peremennaq: prodolvitx (Y ili N)?

      navatie ne "Y" terminiruet operaci` sohraneniq i  wyzo-
wet  pozicionirowanie  kursora na o{ibo~nom imeni.  ZIP takve
soob}it wam,  esli wy na~ali ili kon~ili imq peremennoj dwoe-
to~iem:

   wisq}ee dwoeto~ie: prodolvitx (Y ili N)?

      opqtx, esli  ne "Y" - terminaciq sohraneniq i kursor na
o{ibku, wy isprawlqete i wnowx pytaetesx sohranitx fajl.

      wo  mnogih slu~aqh wy najdete,  ~to  net  neobhodimosti
widetx fajly,  kotorye zapisywaet ZIP.  |to imeet smysl, esli
wy  ne hotite dobawlqtx kody dlq trassirowki  o{ibok i  t.d..

      ~toby srazu perejti k wa{ej golownoj programme:

   DO <imq>

      ili:

   SET FORMAT TO <imq>

      esli  wa{a  programma  daet  zna~eniq  dlq  peremennyh,
kotorye  wy wweli w formu s pomo}x` ZIP,   wy   polu~ite   tu
formu |krana ili pe~ati, kotoru` wy zaplanirowali.

      dlq zapuska nowogo fajla wna~ale o~istite staryj:

   /e

     posle ~ego ZIP sprosit:

   za~istitx (Y ili N)?

     otwetxte "Y".  ZIP sprosit,  hotite wy nowyj ili  staryj
fajl:

   <NEW> ili <OLD> fajl (Q - wyhod)?

     otwetxte "Q", ZIP sprosit:

   wyhod w sistemu (Y ili N)?

      otwetxte "Y". wy wy{li w SCP.

      kogda wy wyhodite, i fajl bolx{e |krana, ZIP bystrenxko
promatywaet ego w poslednij raz i wyhodit w SCP.


      11.4. rabota bez komand GET i SAY.

      poprobuem ispolxzowatx ZIP, on teperx budet sam  pisatx
SAY i GET. |to gorazdo leg~e, ~em bylo ranee.

      ZIP   awtomati~eski  ustanawliwaet  dlinu  stranicy   w
razmere  |krana.  esli wy zagruvaete uve sozdannyj  formatnyj
fajl,  ZIP  ustanawliwaet  dlinu stranicy,  rawnu` dline  dlq
|togo fajla.

      esli |tot fajl dlq pe~ati, to dlina stranicy movet bytx
opredelena do 88 strok. dlq pozicionirowaniq peremennoj nabe-
rite @ (dlq SAY-peremennoj) ili # (dlq GET-peremennoj) w nuv-
nom meste |krana.  posle |togo naberite  imq  peremennoj.  ne
nuvno stawitx priznak konca imeni,  tak kak ZIP znaet prawila
obrazowaniq imen peremennyh "rebus".  ZIP zawer{aet imq posle
togo,  kak pro~tet 10 dopustimyh simwolow, ili, esli wstretit
nedopustimyj dlq imeni peremennoj "rebus"  simwol  (naprimer,
probel).  esli wstre~en nedopustimyj simwol, ZIP s~itaet, ~to
wy na~ali wwoditx tekst soob}eniq ili zagolowka.

      teperx posmotrite HELP-|kran, nabraw //. tam wy najdete
kratku` swodku komand ZIP.


      11.5. wkl`~enie komand "rebus" w formatnye fajly

      ne priwlekaq kakih-libo redaktorow teksta s pomo}x` ZIP
movno  wkl`~atx  w formatnye fajly  komandy  "rebus".  odnako
neobhodimo sobl`datx sledu`}ie prawila:

      - komanda "rebus" dolvna zakl`~atxsq w kwadratnye skob-
ki;
      - kwadratnye skobki dolvny  bytx  raspoloveny  w  odnoj
stroke   (ispolxzujte  to~ku  s  zapqtoj  dlq  bolee  dlinnyh
komand);
      - komandy w kwadratnyh skobkah dolvny bytx otdeleny  ot
teksta i drugih komand w kwadratnyh skobkah.

      ~toby otdelitx ih, ispolxzujte  odin  komandnyj  simwol
pered  lewoj kwadratnoj skobkoj  ili  dwa  komandnyh  simwola
(@@,  @#  ili  #@).  komandy  w kwadratnyh  skobkah  ne  nado
otdelqtx ot pred{estwu`}ih imen peremennyh.


      11.6. dlq "rebus"

      @ - poziciq w SAY-peremennoj;
      # - poziciq w GET-peremennoj.

      simwol   konca  polq  ne  trebuetsq,   tak   kak    ZIP
awtomati~eski     predpolagaet,     ~to    imq     peremennoj
kon~ilosx,   esli wstre~en simwol, ne wosprinimaemyj "rebus",
ili  dlina  imeni stala > 10. razre{ennye simwoly "rebus":

      a-q, 0123456789 i dwoeto~ie w centre.

      ZIP prowerqet dwoeto~iq, otsutstwu`}ie imena peremennyh
i  GET'y  w  fajle  dlq  pe~ati,  posle  ~ego  pozwolqet  wam
korrektirowatx  ili  ignorirowatx ih.  ZIP pi{et  READ  posle
kavdyh 64 GET'ow w CMD-fajl i daet wam znatx.

      ZIP  pi{et  komandnye  fajly (<imq>.CMD  i  <imq>.FMT),
kotorye  wy  movete wypolnqtx bez   wsqkogo   redaktirowaniq.
dlq  fajla  dlq |krana ZIP pi{et ERASE w  na~ale  fajla.  dlq
fajlow  dlq pe~ati ZIP pi{et SET FORMAT TO PRINT i SET  MAGIN
TO  XX  w  na~ale  fajla  i  SET  FORMAT  TO  SCREEN    pered
zawer{a`}ej  RETURN.  ZIP takve sohranqet obraz wa{ego |krana
w <imq>.ZIP,  a obraz pe~ati - w <imq>.ZPR.

      kwadratnye   skobki   zarezerwirowany   kak   tekstowye
ograni~iteli dlq ZIP i mogut bytx ispolxzowany dlq  wkl`~eniq
mev nimi komand "rebus" ili komentariew.


      11.7. dinami~eskie zna~eniq

     .  sluvit wertikalxnym markerom, movet bytx  smenena  na
drugoj simwol (wo wremq ustanowki ZIP ili w seanse s ZIP ).

     - gorizontalxnyj  marker  movet  bytx smenen  na  drugoj
simwol.
      {ag tabulqcii ustanowlen w 5 i  movet  bytx  smenen  na
~islo 1-9.
      dlina stranicy movet  bytx  dinami~eski  ustanowlena  -
~islo strok |krana ili do 88 strok. granica pe~ati movet bytx
ustanowlena w 0-127.


      11.8. drugie komandy "rebus/|kran"

      /  komandnyj  marker,   movet  bytx  smenen  na  drugie
simwoly, neispolxzuemye w tekste |krana ili pe~ati.
      // otobrazitx swodku komand i polu~itx wozmovnostx sme-
ny gorizontalxnogo markera,  wertikalxnogo markera, {ag tabu-
lqcii, dlinu stranicy i granicu pe~ati. naprimer, smenim dli-
nu stranicy na 47:

      //
      r
      47

      /n komanda gorizontalxnoj linii.
      esli kursor na kakom-to simwole, ne sowpada`}em s gori-
zontalxnym markerom, po |toj komande ~ertitsq liniq s pozicii
kursora naprawo do kraq |krana. esli ve kursor na simwole go-
rizontalxnogo  markera - stira`tsq wse simwoly s pozicii kur-
sora do prawoj granicy |krana.

      /V komanda wertikalxnoj linii.
      esli kursor na simwole,  otli~nom ot wertikalxnogo mar-
kera,  po |toj komande ~ertitsq wertikalxnaq liniq s  pozicii
kursora do nivnej stroki teku}ej stranicy. esli dlina strani-
cy bolx{e 23, |ta liniq wyjdet na nivn`` granicu |krana. esli
kursor  na  simwole wertikalxnogo markera,  proizojdet ~istka
wseh simwolow na~inaq s teku}ego do poslednej stroki  strani-
cy.

      simwol "+" budet awtomati~eski  stawitxsq  i  stiratxsq
wsqkij raz,  kak pereseka`tsq wertikalxnye  i  gorizontalxnye
linii.

      /t i  /w  peredwiga`t kursor na werh i niz |krana soot-
wetstwenno, ostawaqsx w tom ve stolbce.
      /m kursor na seredinu stroki.
      /N otobravaet sledu`}ij |kran wnutri teku}ej stranicy.
      /r otobravaet predydu}ij |kran wnutri teku}ej stranicy.
      /F otobravaet perwyj |kran w stranice.
      /L otobravaet poslednij |kran w stranice.
      /I wstawlqet probel pod kursorom.

      esli estx kakoj-libo simwol u prawoj granicy |krana, to
on budet poterqn nawsegda!
      /D udalitx simwol pod kursorom.
      /a dobawitx stroku w meste kursora,  protalkiwaq  tekst
wniz. poslednqq stroka stranicy pri |tom terqetsq!
      /k ubiraet stroku pod kursorom, podnimaq tekst.
      /e stiraet rabo~ij fajl, posle ~ego wy movete na~atx  s
nowogo fajla.
      /S sohranqet rabo~ij  fajl  pod  imenem  <imq>.ZIP  ili
<imq>.ZPR,  potom  komandnyj  fajl  pod  imenem <imq>.CMD ili
<imq.FMT> w zawisimosti ot wa{ego wybora (dlq |krana ili  dlq
pe~ati).
      /Q wyhod w SCP.



      12. funkcionalxnye analogi.

      funkcionalxnymi  analogami  subd "rebus" qwlq`tsq  subd
DBASE  II wersii 2.4 firmy ASHTON-TATE i subd  REDABAS,  raz-
rabotannaq npk "robotron" (gdr).

      funkcionalxnym    analogom   programmy    "rebus/|kran"
qwlqetsq programma ZIP wersii 3.0.


                                                 prilovenie 1


      funkcii "rebus"

      #
      *
      EOF
      !(<perem>/<stroka>)
      TYPE(<wyr>)
      INT(<perem>/<wyr>)
      VAL(<perem>/<stroka>/<podstroka>)
      STR(<wyr>/<perem>/<~islo>, <na~>, <dlina>, <desqt>)
      LEN(<perem>/<stroka>)
      $(<wyr>/<perem>/<stroka>, <na~>, <dlina>)
      @(<perem1>/<stroka1>, <perem2>/<stroka2>)
      CHR(<~islo>)
      &
      FILE(<"imq fajla">/<perem>/<wyr>)
      TRIM





                                                 prilovenie 2


      komandy "rebus"


      ispolxzu`tsq sledu`}ie sokra}eniq:

      <wyr> = wyravenie
      <per> = peremennaq
      <str> = stroka
      <koor> = koordinaty

      |lementy   w  skobkah  <...>  wwodqtsq   polxzowatelem.
|lementy  w [...] fakulxtatiwny.  w nekotoryh  slu~aqh  opcii
mogut imetx w swo` o~eredx swoi opcii (bytx wlovennymi).


      ? <wyr [,spis]>
     otobrazitx na |krane wyravenie

     @ <koor> [SAY <wyr> [USING 'obraz']] [GET <per> [PICTURE
'obraz']]
              formatirowanie konsolxnogo |krana
              ili printera

      ACCEPT ['podskaz'] TO <per>
              wwod simwolxnoj stroki s konsoli,
              bez kawy~ek

      APPEND [BLANK]
      APPEND FROM <fajl> [SDF] [FOR  <wyr>]  [DELIMITED [WITH
             <ograni~itelx>]]

              dobawitx dannye w bazu

      CANCEL

              terminirowatx wypolnenie komandnogo fajla

      CHANGE [<diapazon>] FIELD <SPISOK> [FOR <wyr>]
              mnovestwennye izmeneniq w baze

      CLEAR
              repozicionirowanie bazy i sbros peremennyh
              pamqti

      CONTINUE
              prodolvitx komandu LOCATE

     COPY [<diapazon>] TO <fajl> [STRUCTURE] [FIELD <spisok>]
          [FOR <wyr>] [DELIMITED [WITH <ograni~itelx>]]
              kopirowanie iz bazy w drugoj fajl


     COPY TO <fajl> STRUCTURE EXTENDED
              sozdatx nowyj fajl, zapisi kotorogo
              sodervat opisanie starogo fajla.
              (smotri takve CREATE  <now.fajl>
              FROM <star.fajl>)

      COUNT [<diapazon>] [FOR <wyr>] [TO <per>]
              sos~itatx zapisi, udowletworq`}ie
              dannomu uslowi`

      CREATE
              sozdatx nowu` bazu

      CREATE <now.fajl> FROM <star.fajl>
              sozdatx nowyj fajl s strukturoj,
              opredelennoj  dannymi starogo fajla
              (sm. takve COPY STRUCTURE EXTENDED)


      DELETE [<diapazon>] [FOR <wyr>]
              pometitx trebuemye zapisi na udalenie

      DELETE FILE <fajl>
              udalitx fajl iz sistemy

      DISPLAY [<diapazon>] [FOR <wyr>] [OFF]
              pokazatx dannye po zaprosu

      DISPLAY [<diapazon>] [<pole> [,<spisok>]]
              pokazatx tolxko trebuemye polq

      DISPLAY STRUCTURE
              pokazatx strukturu bazy w USE

      DISPLAY MEMORY
              pokazatx sodervimoe peremennyh pamqti

      DISPLAY FILES [ON <u-wo>]
              pokazatx oglawlenie diska

      DO <fajl>
              wypolnitx komandnyj fajl

      DO WHILE <wyr>
              cikli~eski wypolnqtx gruppu komand

      EDIT
              izmenitx dannye w baze

      EDIT [<~islo>]
              ukazanie trebuemyh zapisej dlq korrektirowki

      EJECT
              smenitx formu na printere

      ELSE
              alxternatiwnyj putx wypolneniq w komande IF

      ENDDO
              terminator komandy DO WHILE

      ENDIF
              terminator komandy IF

      ERASE
              o~istitx |kran

      FIND <kl`~>
              lokalizirowatx zapisx w  indeksirowannoj
              baze po kl`~u (kl`~ bez kawy~ek)

      GO ili GOTO [RECORD], ili [TOP], ili [BOTTOM], N
              pozicionirowanie w baze

      IF <wyr>
              uslownoe wypolnenie komandy

      INDEX ON <kl`~> TO <fajl>
              sozdatx indeksnyj fajl dlq bazy w USE

      INPUT ['podskaz'] TO <per>
              wwod dannyh polxzowatelq w peremennye
              pamqti  (wozmovno s podskazom)

      INSERT [BEFORE]
             [BLANK]
              dobawitx nowu` zapisx w bazu  otnositelxno
              drugih zapisej

      JOIN TO <fajl> ON <wyr> [FIELDS <spisok>]
              sozdatx bazu, sostoq}u` iz najdennyh w
              drugoj baze zapisej

      LIST
              otobrazitx zapisi

      LOCATE [<diapazon>] [FOR <wyr>]
              najti zapisi, udowletworq`}ie trebuemomu
              uslowi`

      LOOP
              mehanizm sbrosa dlq grupp do wnile

      NOTE ili *
              kommentarij w komandnom fajle, ne
              otobravaetq  pri wypolnenii komandnogo
              fajla

      MODIFY COMMAND <fajl>
              osu}estwlqet modifikaci` komandnogo
              fajla prqmo  iz "rebus"

      MODIFY STRUCTURE
              izmenitx strukturu bazy. wse dannye
              w baze razru{a`tsq

      PACK
              uni~tovaet zapisi, pome~ennye na udalenie

      QUIT [TO spisok komand SCP ili .COM-fajlow]
              terminiruet "rebus" i wypolnqet programmu.
              kavdaq komanda w kawy~kah, i razdeleny oni
              zapqtymi

      READ
              wwodit polno|krannoe redaktirowanie
              formatirowannogo |krana. dannye wwodqtsq
              po komandam GET


      RECALL [<diapazon>] [FOR <wyr>]
              snimaet marki na udalenie s zapisej

      RELEASE [<per> [,<spisok>]] ili [ALL]
              ubiraet nevelaemye peremennye pamqti

      REMARK
              kommentarij w komandnom fajle, oto-
              bravaemyj pri ispolnenii na |krane

      RENAME <star.fajl> TO <now.fajl>
              pereimenowywaet fajl

      REPLACE [<diapazon>] <pole>  WITH  <wyr>  [,<pole> WITH
        <wyr> ...]
              izmenqet dannye w baze. velatelxno
              sohranitx kopi` bazy, tak kak "rebus"
              delaet w to~nosti  to,  ~to wy
              ukavete, dave esli wam |togo i ne
              hotelosx

      REPORT [<diapazon>] [FROM <fajl> [TO PRINT] [FOR <wyr>]
              generiruet ot~et

      RESET
              soob}aet SCP, ~to dolvna bytx smenena
              disketa

      RESTORE FROM <fajl>
              wosstanawliwaet sohranennye po SAVE
              peremennye  pamqti. zatiraet wse su-
              }estwu`}ie peremennye pamqti

      RETURN
              terminiruet wypolnenie komandnogo fajla
              i wozwra}aet uprawlenie w wyzywaw{ij fajl

      SAVE TO <fajl>
              zapisywaet peremennye pamqti w fajl  dlq
              budu}ego ispolxzowaniq

      SELECT [PRIMARY] ili [SECONDARY]
              perekl`~enie rabo~ih oblastej

      SET <param> [ON], ili [OFF]
              dinami~eskaq rekonfiguraciq komand "rebus"

      SKIP +/-<wyr/~islo>
              peredwivenie wpered-nazad po baze

      SORT ON <kl`~> TO <fajl> [ASCENDING]
                    [DESCENDING]
               generaciq bazy, otsortirowannoj po pol`

      SUM [<diapazon>] <pole [,<spisok>]> [TO <per> [,spisok]
        [FOR <wyr>]
               summirowanie polej w baze

      TOTAL TO <fajl> ON <kl`~> [FIELDS <pole [,spisok]>
               generaciq bazy s podsummami dlq zapisej

      UPDATE FROM <fajl> ON <kl`~> [ADD <pole [,spisok]>
                        [REPLACE <pole [,spisok]>
               modifikaciq bazy dannymi iz drugoj bazy

      USE <fajl> [INDEX <fajl>]
               otkrytx fajl bazy dlq posledu`}ih operacij

      USE
               zakrytx otkrytu` bazu

      WAIT [TO <per>]
               pauza w wypolnenii operacij (dlq wwoda)




                                                 prilovenie 3


      swodka komand "rebus" po funkciqm

      struktura fajla:
      ----------------

      CREATE
              opredelqet strukturu nowogo fajla

      CREATE <now.fajl> FROM <stra.fajl>
              sozdaet nowyj fajl, struktura  kotorogo
              opisana  w zapisqh starogo fajla

      USE <star.fajl>
      COPY TO <now.fajl> STRUCTURE
              |ti dwe komandy sozda`t nowyj fajl,
              struktura kotorogo rawna strukture
              starogo fajla

      USE <star.fajl>
      COPY TO <now.fajl> STRUCTURE EXTENDED
              sozdaetsq nowyj fajl, struktura kotorogo
              sodervitsq w zapisqh starogo fajla

      DISPLAY STRUCTURE
      LIST STRUCTURE
              obe komandy pokazywa`t strukturu fajla w USE

    MODIFY STRUCTURE
              izmenqet imena polej, ih razmery

      izmenitx strukturu dannymi iz bazy:
      -----------------------------------

      USE <star.fajl>
      COPY TO <now.fajl>
      USE <now.fajl>
      MODIFY STRUCTURE
      APPEND FROM <star.fajl>
      COPY TO <star.fajl>
      USE <star.fajl>
      DELETE FILE <now.fajl>


      pereimenowatx polq dannyh w baze:
      ---------------------------------

      USE <star.fajl>
      COPY TO <now.fajl> SDF
      MODIFY STRUCTURE
      APPEND FROM <now.fajl>.TXT SDF
      DELETE FILE <now.fajl>


      operacii s fajlom:
      ------------------

      USE <imq fajla>
               otkrytx fajl

      USE <now.fajl>
               zakrytx staryj fajl

      USE
               zakrytx wse fajly

      RENAME <star.fajl> TO <now.fajl>
               nelxzq pereimenowywatx otkrytyj fajl

      COPY TO <fajl>
               sozdatx strahowo~nu` kopi`

      CLEAR
               zakrytx wse fajly i o~istitx wse
               peremennye pamqti

      SELECT [PRIMARY][SECONDARY]
               movno otkrytx odnowremenno dwa fajla.
               dannye  movno peresylatx s prefiksami r. i S.

      DISPLAY FILES [ON <D>]
               listatx bazy na podkl`~ennom ili ukazannom
               diske. wmesto nee movno LIST

      DISPLAY FILES LIKE <WILDCARD> [ON <D>]
               prosmatriwatx fajly na diske drugogo tipa

      QUIT
               zakrytx aktiwnye oblasti, wse fajly i
               terminirowatx operacii "rebus"


      sortirowka bazy:
      ----------------

      SORT ON <kl`~> TO <now.fajl>

      INDEX ON <kl`~> TO <now.fajl>
          movno ispolxzowatx w obeih  komandah  mnovestwennye
          kl`~i


      kombinirowanie bazami:
      ----------------------

      COPY TO <now.fajl>
               sozdatx dublikat fajla w USE

      APPEND FROM <dr.fajl>
               dobawitx zapisi k fajlu w USE

      UPDATE FROM <dr.fajl> ON <kl`~>
               dobawitx ili zamenitx dannye w
               fajle w USE. oba fajla dolvny bytx
               otsortirowany po <kl`~u>

      JOIN
               sozdaet tretij fajl iz dwuh drugih


      redaktirowanie i izmenenie dannyh:
      ----------------------------------

      DISPLAY, LIST, BROWSE
               prosmotr zapisej

      DELETE
               markiruet zapisi tak, ~to oni
               bolx{e uve ne ispolxzu`tsq

      RECALL
               snimaet s zapisi priznak udaleniq

      PACK
               uni~tovaet pome~ennye na udalenie
               zapisi

      EDIT
               izmeneniq w otdelxnyh zapisqh


                                                 prilovenie 4


                ograni~eniq

      ~islo polej w zapisi                         32 mah
      ~islo simwolow w zapisi                    1000 mah
      ~islo zapisej w baze                     65535 mah
      ~islo simwolow w simwolxnoj stroke          254 mah
                                                   10 cifr
      naibolx{ee ~islo                     1.8*10**63 pribl.
      naimenx{ee ~islo                    1.0*10**-63 pribl.
      ~islo peremennyh pamqti                      64 mah
      ~islo simwolow w komandnoj stroke           254 mah
      ~islo wyravenij w komande SUM                 5 mah
      ~islo simwolow w zagolowke REPORT           254 mah
      ~islo simwolow w kl`~e                      100 mah
      ~islo otlovennyh GET-ow                      64 mah
      ~islo odnowremenno otkrytyh fajlow           16 mah


                                                 prilovenie 5

             dopolnitelxnye dannye o "rebus"


      1. 0-q stroka |krana zarezerwirowana dlq  spec.  celej.
sledowatelxno nelxzq wydawatx  komandy  tipa  "@
0,<X>  SAY <wyr>".
      2. komanda REPORT ograni~ena na 24 polq dannyh.
      3.   PACK   ne   umenx{aet   prostranstwo   na   diske,
zarezerwirowannoe SCP dlq fajla. prostranstwo movno polu~itx,
wydaw  "COPY  TO  <imq  fajla>"  i  posle  |togo    uni~toviw
ishodnyj  fajl. |to ograni~enie SCP, a ne "rebus".
      4. nelxzq pereimenowatx teku}ij fajl.
      5. podhodq}ij sintaksis dlq komandy COPY STRUCTURE:
         USE <fajl>
         COPY STRUCTURE TO <nowyj fajl>
         opciq "STRUCTURE" dolvna sledowatx neposredstwenno
         za glagolom "COPY".
      6. pri wyda~e USE ne nuvno ukazywatx ras{irenie ".DBF",
         t.k. ono po umol~ani`.
