home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga MA Magazine 1997 #3
/
amigamamagazinepolishissue03-1
/
ma_1995
/
03
/
ami009.txt
< prev
next >
Wrap
Text File
|
1997-04-06
|
16KB
|
470 lines
System na talerzu (cz. 15.)
---------------------------
AMIGA DOS
<a> Marek Pampuch
<sr> EDIT
<l>skîadnia dla systemów 1.2 i 1.3: EDIT [FROM] >n1< [[TO] >n2<]
[WITH] >n3<] [VER] >n4<] [OPT P n5 | W n6 | P n5 W n6]
<txt>gdzie: n1 to nazwa edytowanego zbioru, n2 -- nazwa zbioru, w
jakim chcesz zapisaê wynik edycji (jeôli pominiesz ten parametr,
wówczas po zakoïczeniu edycji poprawiony zbiór zostanie zapisany
w tymczasowym zbiorze w katalogu T:), n3 to nazwa urzâdzenia, z
jakiego majâ byê pobierane rozkazy edytora (domyôlnie ustawiona
jest tu konsola, oznacza to, ûe znaki wprowadzasz stukajâc w
klawisze), n4 zaô to nazwa urzâdzenia, na jakie majâ byê
wyprowadzane wyniki edycji (tu takûe domyôlnie ustawiona jest
konsola). Parametr n5 okreôla liczbë wierszy bufora (domyôlnie
40), n6 zaô -- dîugoôê wiersza edytora (domyôlnie 120).
<l>skîadnia dla systemów 2.0, 2.1 , 3.0 i 3.1: EDIT [FROM] >n1<
[[TO] >n2<] [WITH] >n3<] [VER] >n4<] [OPT P >n5< | W >n6< |
PREVIOUS >n5< | WIDTH >n6<
<txt> gdzie: PREVIOUS na takie samo znaczenie jak OPT P, WIDTH
zaô oznacza to samo co OPT W. Uwaga: Mimo, ûe oba znaczâ to samo,
niedopuszczalne jest mieszanie tych parametrów. Nie wolno, na
przykîad, wpisaê:
<l> OPT P 10 WIDTH 40
<txt>Naleûy konsekwentnie trzymaê sië jednego z tych dwóch
wybranych sposobów opisania powyûszych parametrów.
<l>wzorzec dla systemów 1.2 i 1.3: FROM/A, TO, WITH/K, VER/K, OPT/K
wzorzec dla systemów 2.0, 2.1 , 3.0 i 3.1: FROM/A, TO, WITH/K,
VER/K, OPT/K, PREVIOUS/K, WIDTH/K
<txt> Ten rozkaz uruchamia edytor wierszowy. Co to takiego? Jest
to coô dla komputerowych dinozaurów, przeûytek z czasów, w
których komputery nie miaîy monitorów, caîa zaô "interaktywna
komunikacja" odbywaîa sië za pomocâ drukarki. Edytor wierszowy
nie otwiera wîasnego okna, a caîa komunikacja z nim odbywa sië na
poziomie konsoli. Kursor jest niewidoczny dla uûytkownika. Moûna
przyjâê, ûe EDIT odpowiada pecetowemu edytorowi o nazwie "edlin".
Jest to zdecydowanie mniej wygodny sposób porozumiewania sië z
komputerem. Niemniej, edytor ten pozostawiono w systemie
operacyjnym wszystkich Amig (chyba tylko po to, aby daê
satysfakcjë wspomnianym dinozaurom). Jedyne zauwaûalne zalety
edytora EDIT to, ûe moûe pracowaê ze znacznie wiëkszymi zbiorami
niû edytor ED, i to nawet na Amigach, które majâ 512 KB pamiëci,
oraz to, ûe jest nieco szybszy i to, ûe w pewnym stopniu moûna
nim edytowaê zbiory zawierajâce dane binarne. Ma takûe nieco
wiëcej rozkazów. Moim zdaniem jest jednak przeûytkiem z czasu
tranzystora îupanego. Edytor wywoîujemy wpisujâc (na przykîad):
<l>EDIT df0:s/startup-sequence
<txt> W tym momencie na ekranie pojawi sië napis:
<l> Editor
:
<txt>i teraz naleûy wpisaê (w zaleûnoôci od potrzeb) jeden z
nastëpujâcych rozkazów lub parametrów:
' (apostrof) -- powoduje powtórzenie poprzednio uûytego rozkazu
zaczynajâcego sië na literë A, B lub E.
; (ôrednik) -- zazwyczaj stosuje sië jeden rozkaz w jednym wierszu.
Jeôli chcesz umieôciê ich tam wiëcej -- wówczas musisz rozdzieliê
rozkazy ôrednikiem.
? (pytajnik) -- wyôwietla aktualny wiersz.
! (wykrzyknik) -- jak wyûej. Wyôwietlone zostanâ takûe znaki
"niedrukowalne". Znaki ASCII, które nie sâ dostëpne wprost z
klawiatury, bëdâ zastâpione przez ich heksadecymalne odpowiedniki,
pozostaîe znaki zostanâ zastâpione przez znak minus.
=n -- powoduje przejôcie kursora do wiersza o numerze n.
n(.....) -- powoduje n-krotne powtórzenie rozkazu zawartego w
nawiasach. Jeôli n jest równe zero, wówczas rozkaz bëdzie
powtarzany nieskoïczonâ liczbë razy.
------------****** UWAGA NA TAGI !!!!! *****-------------
n< -- przesuwa kursor o n znaków w lewo (domyôlnie, przy uûyciu
tylko znaczka < (mniejsze niû) n=1).
n> -- przesuwa kursor o n znaków w lewo (domyôlnie n=1).
-----------******* KONIEC UWAGI NA TAGI *********-------------
n# -- usuwa n znaków za aktualnym poîoûeniem kursora (domyôlnie,
przy opuszczonym n usuwa 1 znak).
n$ -- n znaków za kursorem zostanie zamienione na maîe litery
(domyôlnie 1).
n% -- n znaków za kursorem zostanie zamienione na duûe litery
(domyôlnie 1).
n_ -- n znaków za kursorem zostanie zastâpionych spacjami
(domyôlnie 1).
A/nnnn/mmmm -- tekst nnnn zostanie zastâpiony przez tekst mmmm. Jeôli
tekst mmmm zawiera spacje na koïcu -- zostanâ one równieû
zamieszczone. Poîoûenie kursora sië nie zmieni.
AP/nnnn/mmmm -- jak wyûej, z tym ûe kursor zostanie ustawiony za
ostatnim znakiem zmienionego tekstu.
B/nnnn/mmmm -- jak rozkaz A, z tâ róûnicâ, ûe tekst bëdzie
przeszukiwany "wstecz" (od poîoûenia kursora do poczâtku tekstu).
Sam kursor nie zmieni swojego poîoûenia.
BP/nnnn/mmmm -- jak wyûej, z tym ûe kursor zostanie ustawiony
przed pierwszym znakiem zmienionego tekstu.
BF/nnnn/ -- spowoduje szukanie îaïcucha nnnn "wstecz", to znaczy
od poîoûenia kursora do poczâtku tekstu.
C.nnnn -- dalsze rozkazy dla edytora bëdâ doczytane z urzâdzenia
o nazwie nnnn.
CF.nnnn -- koïczy doczytywanie rozkazów z urzâdzenia o nazwie
nnnn i przekazuje kontrolë nad wprowadzaniem rozkazów z powrotem
do edytora.
CG n -- wyîâcza operacjë globalnâ o numerze n. Operacja globalna
jest to automatyczne wykonanie przez komputer rozkazu dotyczâcego
caîoôci tekstu. W wypadku wystâpienia bîëdu podczas wykonywania
operacji globalnej dotychczasowe wyniki edycji bëdâ zapisywane i
nastâpi wyjôcie z edytora. Jeôli nie podamy parametru n, wówczas
wyîâczone zostanâ wszystkie uruchomione do tego momentu operacje
globalne.
CL/nnnn -- wsuwa tekst nnnn pomiëdzy wiersz aktualny a nastëpny.
Wiersz aktualny to taki, w którym znajduje sië niewidoczny dla
uûytkownika kursor. Jeôli pominiemy parametr nnnn, wówczas oba te
wiersze zostanâ poîâczone. Jeôli zastosujesz të funkcjë do
ostatniego wiersza tekstu -- edytor padnie.
D -- usuwa aktualny wiersz.
DF/nnnn/ -- usuwa wszystkie wiersze pomiëdzy wierszem aktualnym a
wierszem, w którym znajduje sië rozkaz nnnn. Jeôli opuôcimy
parametr nnnn, zostanâ skasowane wszystkie wiersze aû do
ostatniego, w którym znajduje sië dowolny îaïcuch tekstowy, a
jeôli takiego w dalszym tekôcie juû nie ma -- do koïca tekstu lub
do znacznika koïca tekstu (jeûeli ten ostatni jest ustawiony).
DFA/nnnn/ -- usuwa znaki od pierwszego za tekstem nnnn do koïca
wiersza.
DFB/nnnn -- usuwa znaki od pierwszego w wierszu do tekstu nnnn.
DG n -- zawiesza operacjë globalnâ o numerze n. Jeôli nie podamy
parametru n, wówczas zawieszone zostanâ wszystkie uruchomione do
tego momentu operacje globalne.
DTB/nnnn/ -- usuwa znaki od poczâtku wiersza do ostatniego
poprzedzajâcego tekst nnnn wystëpujâcy w tym wierszu.
DTA/nnnn -- jak wyûej, z tym ûe usuniëty bëdzie takûe tekst nnnn.
E/nnnn/mmmm -- wstawia tekst mmmm zamiast tekstu nnnn. Kursor
zostanie w miejscu, w którym sië znajdowaî.
EP/nnnn/mmmm -- jak wyûej, z tym ûe kursor zostanie ustawiony na
koïcu zamienionego tekstu.
EQ/nnnn/mmmm -- jak rozkaz E, z tym ûe zostaniesz zapytany o to,
czy na pewno chcesz wymieniê tekst.
EG n -- przywraca dziaîanie operacji globalnej, zawieszonej
rozkazem DG, lub wszystkich operacji (gdy pominiesz parametr n).
F nnnn -- ustawia kursor na poczâtku wiersza zawierajâcego rozkaz
nnnn. Jeôli pominiesz parametr nnnn, to:
-- jeûeli uûyîeô rozkazu F po raz pierwszy od uruchomienia
edytora, kursor zostanie ustawiony na poczâtek tekstu;
-- jeôli robisz to po raz kolejny, kursor zostanie ustawiony na
poczâtku wiersza zawierajâcego ostatnio uûyty îaïcuch.
FROM.mmmm -- zmienia nazwë tekstu úródîowego na mmmm. Jeôli
pominiesz parametr .mmmm wówczas zostanie wczytany zbiór, który
do tej pory edytowaîeô (rzecz jasna, bez wprowadzonych zmian).
GA/nnnn/mmmm -- tekst nnnn zostanie zastâpiony przez tekst mmmm
globalnie, to znaczy we wszystkich miejscach tekstu, w jakich
wystëpuje. Nie naleûy stosowaê tej opcji przy przeszukiwaniu "do
tyîu". W systemach 2.0 i wyûszych znacznie poprawiono szybkoôê
dziaîania tego rozkazu (jak i pozostaîych rozkazów "na G").
GB/nnnn/mmmm -- jak rozkaz GA, z tâ róûnicâ, ûe kursor zostanie
ustawiony nie na poczâtku zmienionego tekstu, ale na poczâtku
wiersza poprzedzajâcego ostatnie miejsce wystëpowania zmienianego
tekstu.
GE/nnnn/mmmm -- wstawia tekst mmmm zamiast tekstu nnnn we
wszystkich miejscach, gdzie wystëpuje. Kursor zostanie ustawiony
na poczâtku ostatniego wiersza, w którym wystëpuje zmieniany
tekst.
Hn -- ustawia "ograniczenie" w linii n. Tego rozkazu uûywa sië
podczas edycji zbiorów zawierajâcych dane binarne.
H* -- usuwa "ograniczenie" wprowadzone rozkazem Hn.
I -- pozwala na wprowadzanie pustych wierszy przez naciskanie
klawisza [Return]. Umoûliwia takûe pobieranie znaków z
doîâczonego komputera. Aby przerwaê dziaîanie rozkazu, naleûy
nacisnâê jednoczeônie klawisze [Ctrl] i [C].
I n.mmmm -- wstawia przed wierszem o numerze n zawartoôê zbioru
tekstowego o nazwie mmmm (w nazwie naleûy podaê ôcieûkë dostëpu).
Jeôli pominiesz parametr n, tekst taki zostanie dopisany na
poczâtku zbioru, jeôli zaô pominiesz oba parametry, wówczas przed
wierszem aktualnym zostanie utworzony pusty wiersz.
M n -- podobnie jak rozkaz "=n" spowoduje przeskok kursora na
poczâtek wiersza o numerze n. Jeôli n jest wiëksze niû aktualna
liczba wierszy, wówczas wystâpi komunikat o bîëdzie.
M + -- skok do pierwszego wiersza.
M - -- skok do ostatniego wiersza.
N -- skok do nastëpnego wiersza.
P -- skok do poprzedniego wiersza.
PA/nnnn/ -- przesuwa kursor za tekst nnnn. W systemach od 2.1 w
górë moûna spowodowaê wielokrotne zadziaîanie tego rozkazu przez:
-------------***** UWAGA NA TAGI **********-------------
<l> n(PA/nnnn/;>)
PB/nnnn/ -- przesuwa kursor przed tekst nnnn. W systemach od 2.1
w górë moûna spowodowaê wielokrotne zadziaîanie tego rozkazu
przez:
<l> n(PA/nnnn/;<)
------------***** koniec uwagi na tagi *****----------------
Q -- przerwanie edycji i zapis wyników edycji do zbioru.
R -- pozwala na wprowadzanie znaków z doîâczonego komputera.
Wprowadzane znaki bëdâ zastëpowaê znaki edytowanego tekstu
poczâwszy od miejsca, w którym znajduje sië kursor. Aby przerwaê
dziaîanie rozkazu, naleûy nacisnâê jednoczeônie klawisze [Ctrl] i
[C].
R m n ssss -- zamienia tekst, znajdujâcy sië w wierszach pomiëdzy
m i n wîâcznie, na tekst, znajdujâcy sië w zbiorze tekstowym o
nazwie ssss.
REWIND -- wyîâcza operacje globalne i ustawia kursor na poczâtku
edytowanego tekstu.
SA/mmmm/ -- przenosi wszystko, co znajduje sië w wierszu za
tekstem mmmm, do nastëpnego wiersza. Kursor przechodzi do nowego
wiersza.
SB/mmmm/ -- przenosi wszystko, co znajduje sië w wierszu przed
tekstem mmmm, do nastëpnego wiersza. Kursor przechodzi do nowego
wiersza.
SHD -- wyprowadza na urzâdzenie wyjôciowe aktualne wartoôci
parametrów.
SGH -- wyprowadza na urzâdzenie wyjôciowe informacje o wszystkich
uûywanych operacjach globalnych wraz z numerami tych operacji.
STOP -- przerwanie edycji i wyjôcie z edytora bez zapisu zbioru
wynikowego.
T -- wyôwietla wszystkie wiersze od tego, w którym jest kursor do
koïca zbioru.
T n -- wyôwietla n wierszy tekstu, poczynajâc od wiersza, w którym
jest kursor.
TL n -- jak rozkaz T n, jednak dodatkowo zostanâ wyôwietlone numery
wierszy.
TN -- wyôwietla tyle wierszy, rozpoczynajâc od wiersza, w którym
jest kursor, ile jest ustawione parametrem P n (jeôli nie
ustawiaîeô tego parametru, zostanie wyôwietlone domyôlne 40
wierszy, z czego na ekranie zobaczysz ostatnie 30).
TO.nnnn -- zmienia nazwë zbioru wynikowego na nnnn (domyôlnie
przyjëta jest nazwa taka, jakâ ma zbiór edytowany).
TP -- jak rozkaz TN, z tym ûe tekst wyôwietlany jest od poczâtku.
TR + -- wîâcza usuwanie koïcowych spacji (trailing spaces).
TR - -- wyîâcza usuwanie spacji na koïcu.
V + -- wîâcza weryfikacjë (czyli wypisywanie wyniku ostatniego
rozkazu). Przy pracy z klawiatury powinna byê ona wîâczona, chyba
ûe lubisz randkë z edytorem w ciemno.
V - -- wyîâcza weryfikacjë.
W -- zakoïczenie edycji z zapisem zbioru wynikowego.
Z nnnn -- ustawia znacznik koïca zbioru przed tekstem nnnn,
przykîad:
<l> EDIT df0:test VER PRT:OPT P10 W80
<txt> Jeôli po wprowadzeniu takiego rozkazu dokonamy poprawek w
zbiorze test, to po wyjôciu z edytora zostanie wydrukowane na
drukarce (nie zapomnij jej wczeôniej wîâczyê!) pierwsze 10
wierszy edytowanego zbioru. Kaûdy wiersz bëdzie liczyî 80 znaków,
a jeôli bëdzie dîuûszy, wówczas przy wyjôciu pojawi sië
komunikat, ûe wiersz ten zostaî obciëty. Jednak, wbrew pozorom,
komunikat ten nie zawsze bëdzie zgodny ze stanem faktycznym --
wszystko zaleûy bowiem od tego, czy nasz tekst zmieôciî sië w
caîoôci w buforze liczâcym n5 * n6 znaków (gdzie n5 i n6 to
odpowiednie parametry rozkazu EDIT).
Przy korzystaniu z edytora EDIT naleûy jeszcze zwróciê uwagë na
nastëpujâce sprawy:
-- EDIT nadaje zbiorowi tymczasowemu w T: nazwë takâ, jakâ ma
zbiór edytowany. Jeôli nie uûyjesz parametru TO z nazwâ zbioru,
jaki ma mieê on po edycji, wówczas mogâ wystâpiê pewne
komplikacje (to znaczy padniëcie edytora). Jeôli zatem chcesz,
aby wynik edycji zostaî zapamiëtany pod innâ nazwâ, zawsze uûywaj
opcji TO z nowâ nazwâ. Nie powinno sië takûe nadawaê za pomocâ
opcji TO zbiorowi wynikowemu takiej samej nazwy, jakâ ma zbiór
edytowany, zwîaszcza gdy zbiór wynikowy ma sië znaleúê na dysku.
W takim wypadku lepiej pominâê opcjë TO, a nastëpnie przegraê z
katalogu T: wyedytowany zbiór.
-- Pierwsze wersje systemu operacyjnego 2 (do 2.03) majâ bîâd
uniemoûliwiajâcy pracë wszystkich rozkazów, w których wystëpujâ
kropki.
-- Od systemu 2.0 w górë katalog T: jest tworzony przez EDIT
automatycznie (jeôli nie ma go w RAM-ie). Jeôli masz starsze
systemy, wówczas przed rozpoczëciem pracy musisz taki katalog
stworzyê.
<sr>ELSE (w innym wypadku)
<l>skîadnia dla systemów 1.2, 1.3, 2.0, 2.1 , 3.0 i 3.1: ELSE
<txt> Jest to klauzula dla rozkazu IF...THEN pozwalajâca na
wykonanie wariantu rozkazu bez speînienia warunku przy IF.
Rozkazu ELSE moûna uûywaê tylko w skryptach AmigaDOS (a nie w
rozkazach wprowadzanych "z rëki"). Rozkaz nie ma argumentów (i
stâd brak wzorca przy tym rozkazie). Przykîad:
<l>TYPE "Na dysku sâ gry Rambo i Superman"
ASK "Czy chcesz graê w Rambo (y/n)"
if warn
skip rambo
else
run df0:superman
endif
endcli
lab rambo
execute df0: rambo
<txt> Rozkaz ELSE moûe spowodowaê wykonanie kilku (a nie tylko
jednej) instrukcji. Aby to zobaczyê, stwórz za pomocâ edytora
dowolny zbiór, zawierajâcy kilka jakichkolwiek wierszy, w tym
miëdzy innymi (w dowolnym miejscu) wiersz:
<l> n=3*3
<txt>i zapisz go jako "RAM:test". A teraz wpisz poniûszy przykîad:
<l> IF n EQ 4
ECHO "OK, lecimy dalej"
SKIP DALEJ
ELSE
ECHO" Cos chyba nie tak"
TYPE ram:test
ECHO "Zobacz gdzie jest blad. Po minucie wrocisz do CLI, aby
poprawic zbior test"
ENDIF
WAIT 1 MIN
ENDCLI
LAB DALEJ
;tu dalszy ciag skryptu
<txt> Jeôli teraz zapiszesz taki skrypt na przykîad jako
ram:test1 i uruchomisz go przez execute ram:test1, zobaczysz, ûe
zostanâ wykonane wszystkie rozkazy umieszczone pomiëdzy ELSE a
ENDIF (bo nasze n nie jest równe 4).
Jeszcze innym przykîadem zastosowania ELSE jest umieszczenie go w
pëtlach zagnieûdûonych. W takim wypadku ELSE "przyczepi sië" do
ostatniego rozkazu IF. Przykîad:
<l> IF df0:test NOT EQ "test1"
IF EXISTS df0:test
ECHO "Znaleziono zbior test"
ELSE
ECHO "Nie znaleziono zbioru test"
ENDIF
ENDIF
<txt>Rozkaz ELSE jest opcjonalny, to znaczy, ûe rozkaz IF..THEN
zadziaîa i bez niego, niemniej brak ELSE odetnie Cië od kilku
moûliwoôci.
<sr>ENDCLI (zakoïcz CLI)
<l>skîadnia dla systemów 1.2, 1.3, 2.0, 2.1 , 3.0 i 3.1: ENDCLI
<txt>powoduje zakoïczenie aktualnego procesu CLI. Moûna jej takûe
uûywaê do zakoïczenia procesu Shella. Od systemu 1.3 wystëpuje w
AmigaDOS takûe rozkaz EndShell dziaîajâcy identycznie, majâcy
jednak nieco wiëcej moûliwoôci.