关于一般指令
☆☆一般指令☆☆
線上輔助說明。
執行 UNIX SHELL 指令
顯示每個 FILESYSTEM 剩館可用的空間
產生標題字元
Ex: BLOCK.TERM Harry Smith
如用BLOCK.PRINT
則會將所產生的標題字元直接秀在印表機上
離開 UniData 環境,與LO 、QUIT
一樣。
清除目前所在的UniData account ˍPH ˍ、HOLD ˍ的資料。Urica 系統有5大 Account : UP, UD, US, URICA 以及TOP.TABLE.
建立一歷史檔記錄使用者送到終端機的輸入與輸出,此歷史檔為_PH_
的0_record.name。
action :ON 開啟一個新como output record
OFF 關閉 como record
DELETE 刪除 como record
LIST 列出 _PH_ 所有 como record
APPEND
開啟一個先前已存在的COMO 檔案,並將新資料加在此檔案之後
顯示目前系統的日期、時間
將日期格式轉換為歐洲格式:DD/MM/YY,直到離開UniData 環境。
Unix 一般為美國格式:MM/DD/YY(UniData初始值)
顯示message 至螢幕。
分為 Pick 、Unidata 兩種,基於與MD 機器的一致性,所以使用Pick 。
顯示 user number 、 user name 、 user id 。
Ex:
: GETUSER
USER NUMBER=3702
USER NAME =urica
USER ID
=701
顯示liscensed 和目前線上使用者
Ex:
: LISTUSER
Max Number of Users UDT SQL TOTAL
~~~~~~~~~~~~~~~~~~~ ~~~ ~~~ ~~~~~
16 1 0 1
UDTNO USRNBR UID USRNAME USRTYPE TTY TIME DATE
1 3702 701 urica udt pts0 10:37:21
Aug 30 200
進入UniData 會自動執行此指令,指令內容user 可自定。
離開 UniData 會自動執行此指令,指令內容user 可自定。
account.name 可為絕對路徑或相對路徑
顯示目前此 account 所有的檔案名稱
顯示目前此account 所有檔案的相關資料,與在Unix 下:ls -1 相同
送訊息(
text.string )給某個port 、使用者或全部(*)
顯示使用者的port number 、日期、時間
命令某程序在背景(background )執行,process.name 為ECL command 或可執行且有catalog 的程
式。
@USER.TYPE=0→一般程序
=1→背景程序
在UNIX 下亦可執行,語法:
udt PHANTOM process.name
沉睡 ss 秒
沉睡 hh:mm 才甦省
0:以數值排序,非數值資料被指定為0。
1:以最前面兩個字元比較。
2:以 ACCII code 比較。
顯示目前所有使用者及 filesystem 的空間。
等於是
WHO 和A V AIL 合併使用。
等待
ss 秒後,若無任何input 則離開UniData 的環境。
顯示UniData 系統版本。
顯示UniData 系統資料。
顯示目前account 的路徑。
顯示目前所有使用者的: user id 、port number 、time of login
轉換十六進位為十進位。
☆☆終端機控制☆☆
清除螢幕
ON :任何訊息均不顯示在螢幕上
OFF :顯示在螢幕上
改變目前終端機的設定,類似UNIX stty指令
-BREAK (ON/OFF):設定使用者是否可中斷程序
-DISPLAY :顯示目前終端機設定
-ERASE "char" :設定倒退鍵的字元
-KILL "char" :設定消除鍵的字元
-NOXFF :disable XON/XOFF的功能,即CTRL_S和CTRL_Q不作用
-XOFF :enable XON/XOFF的功能
設定終端機型態
A. 每行顯示的字元數
B. 每頁顯示的行數
C. 印表每行可印的字元數1-256
D. 印表機每頁可印的行數
☆☆檔案管理指令☆☆
檢查目前account 的檔案是否已overflow ,並列出建議值,QFILE 不check 。
DATA :清除data 層的資料
DICT :清除dictionary 層的資料
FORCE :清除前不提示警告訊息
與DELETE.FILE 不同的是在於CLEAR.FILE 僅會清除資料,而不會刪除目錄結構。
建立檔案,module 須為質數,若不是系統會自動給一個大於它的質數
Ex:
: CREATE.FILE AAA
modulos for file AAA=4
4 is not a prime number, modulo changed to 5.
Create file D_AAA, modulo/1,blocksize/1024
Hash type = 0
Create file AAA, modulo/5,blocksize/1024
Hash type = 0
Added "@ID", the default record for UniData to DICT AAA.
刪除檔案,會順道清除其DICT 檔以及檔案內容與架構。
Ex:
:DELETE.FILE AAA FORCE
Deleting file D_AAA.
Deleting file AAA.
先詢問filename ,然後顯示此檔案的狀態:
module 、overflow 、
item 及byte 數。
顯示建立一個新檔案所能佔用最大的系統空間,以BLOCK 為單位,1block=1024 bytes,此值為
UNIX
系統所設定。
顯示某檔案所有module 質佔用的byte 數及item 數。
顯示某檔案所有的DICT 。
找出等於或大於number 的質數。
改變檔案的大小:
若輸入一個module ,則DICT 的module 為defaule 值1。
若輸入兩個module ,則第一個為DICT 的module ,第二個為DATA 。
old.filename TO new .filename
[DICT] filename old.rec.id,new.rec.id..........
[DICT]filename old.rec.id TO new.rec.id
改變檔案或item 名稱,改變檔案時DICT 名稱會一起改變。
TO :[()[DICT] [other.filename]new.rec.id1 new.rec.id2.......
複製某檔案資料到另外(或本身)檔案:
Option 前須加 "(":
D :複製後刪除原本的item 。
O :覆蓋已存在的item 。
若COPY 至另一檔案則在TO :後面須加(filename 。
Ex:
COPY CUSTOMER TO CUST.SAVE (O
顯示某一資料內容,且不會鎖住資源。
刪除某一資料,不會有任何警告訊息。
建立一當案指標指向某一檔案,tree.name 可為絕對相對路徑。
☆☆Select Lists ☆☆
開啟某檔案選擇資料的動作,執行後會出現" >" 的提示符號,等待下一動作。
與SELECT 一樣,但有排序的功能。
將某些資料儲存在list 中,必須在">"指示符號下才可使用。
list 將儲存在SA VEDLISTS file中,每個item 以32K 為限,
id 為list.name000、list.,name001........ 。
編輯某一儲存在SA
VEDLISTS 中的list 。
排序某一儲存在SA
VEDLISTS 中的list 。
啟動一 list 在等待下一動作的狀態">"。
清除LIST 內容。
Ex:
: SELECT MAIN
226 records selected to list 0.
>CLEARSELECT
:
刪除
list
複製 list
-D :複製後刪除原本的list 。
-O :覆蓋已存在的item 。
-T :顯示在螢幕上。
Ex:
:SELECT MAIN
226 records selected to list 0.
>SAVE.LIST AAA
: EDIT.LIST AAA
: COPY.LIST AAA
TO: BBB
利用某筆資料的內容開啟一等待下動作的狀態">"。
利用某些資料的某attribute 啟動等待下一動作狀態">"。
即把Attribute 中之內容成為一list ,與SELECT 最大的不同在於SELECT 僅搜尋,BSELECT 則會根據你所下的條件形成清單。
Ex: BSELECT MAIN WITH @ID
尋找檔案中符合某些條件的item 。
Option 前須加"(":
A :須符合所有條件(AND )。
N :不符合所有條件(NOT )。
I :找到的資料同時會顯示在螢幕上。
S :找到資料後只顯示item.id ,不在等待下一動作的狀態">"。
☆☆UniQuery
☆☆
計算某檔案的item 數。可用以計算許多資料的總數,更可以配合限制條件來計算。 Ex:
: COUNT MAIN
226 record(s) counted.
: COUNT
顯示檔案中attribute 的內容,並可用來輸出報表。但在列印報表之前必須先取得報表編號。 : SP-ASSIGN HS
JOB NOMBER #1
: LIST [DIR] [FILE] WITH/BY [Selection criteria]
與LIST 一樣,但有序的功能。
計算檔案中attribute 的總和。
☆☆Locks ☆☆
顯示被
UniBasic 或ECL command 所lock 的資料。
顯示被系統lock 的資源。
鎖住系統資源,編號為0-64
解除 lock.num 的lock 。
Ex:
: LOCK 13
: LIST.LOCKS
UNO UNBR UID UNAME TTY FILE NAME INBR DNBR RECORD ID M 1 3702 701 uricapts0 semaphore -1 0 13 X : CLEAR.LOCKS 13
: LIST.LOCKS
解除usernumber 的
lock ,可利用LIST.LOCKS 顯示。
解除
usernumber 的lock ,可利用LIST.READU 顯示。
解除由UniBasic 的READU 、MATREADU 、READVU 所造成lock 。 TIME
DATE 2000 10:46:01
☆☆UniBasic ☆☆
Compile UniBasic 的程式,object code 為_prog.name,option 加-D 才有除錯的功能。 Option : -D → Create an cross reference table for use with the UniBasic debugger.
-G → Profile
-Z
→ Create an symbol table for use with the UniBasic debugger.
Ex: BASIC BP TEST -D
使用何種型態的compiler :
Option U :UniBasic
P :Pick basic
R :Reality basic
M :McDonnell Douglas
公司考量與MD 的相容性,所以選用M 。
catalog 可執行程式。可將UniBasic 中之編譯程式複製到所指定的檔案。 Option: DIRECT → 會產生VOC 檔。
FFORCE → 強制覆蓋(即系統不會出現警告訊息即直接覆蓋。)
Ex: CATALOG BP.UTIL CUST.XREF FORCE
Check 所定的dict 是否正確,若正確@SYSTEM.RETURN.CODE傳叵0,反之則
1。
刪除 catalog 的資料。
重建_MAP_file,並顯示內容,_MAP_是記錄
catalog 程式的相關資料。
改變游標被UniBasic PRINT 控制時移動方式:
0:游標先移至每行,再移至新位置。
1:游標直接新位置。
執行程式,有如-E 則若有error 會當到!下,以便除錯。
Check catalog 的object code 與檔案object code 是否一致。
常使用編輯器(AE)指令的摘要
在UniData 指令層提示號(:)使用指令‘ED ’進入Alternate Editor (AE) ★ ED filename record.id
ex: ED BP TEXT
★ 如何離開編輯器 ---
EX 離開目前記錄而不存檔
Q 結束目前記錄 (同 EX)
FI 存檔 (登錄) 目前記錄
FD 刪除記錄 (小心地使用)
★ 最常使用編輯器指令的摘要 ---
P 顯示1頁的行
G100 到行 100
G 顯示目前行
T 到記錄頂端
B 到記錄底端
+N 往下移N 行
-N 往上移N 行
U12 往上移12行
N99 往下移99行
? 顯示關於目前項目和設定的資訊
A (Append)
A/abc 新增”abc ”到目前行(加在後面)
A12/0 新增12行, 且值為0
A 重複最後的新增指令
B/ (Break), BD/ (BreakDelete), BN/ (BerakNext)
B/IS 在第一個’IS ’ 的地方拆成兩部份
Ex. THIS IS THE TEST
:B/IS
==>THIS IS
THE TEST
BD/IS 同上, 但刪除’IS ’以後的字串(THE TEST刪除)
B12/end 在目前行以下的12行, 若有’end ’則折行(同B/end) BA 再拆行:重複最後拆行指令
C (Change)
C/abc/xyz 在目前行修改第一個abc 為xyz
C/a/k/* 若加/* , 則將本行有a 全替換為k
C12/0/1 在12行內修改第一個0為1
C 重複最後的Change 指令(或SEQ 指令) COL 在行上面顯示列號碼
CLEAR 清除一記錄全部內容
D (Delete)
D 刪除目前行
D9 刪除9行
D9/000 刪除包含000的行直到有9行
DELETE 刪除目前記錄, 同FD
E (EDIT) 再實行編輯器, 當做完時回到原來記錄 EX 送出目前記錄, 沒有修改被存檔
FI (FILE) 存檔, 並離開
FIB 存檔, 編譯
FIBR 存檔, 編譯, 執行
FD(FileDelete) 刪除目前記錄
F (FIND)
F/CRT 找尋下一行開始有”CRT ”的字串行
F999/CRT 找尋到999行為止開起始有”CRT ”的行
FL (FindLabel) 在程式內找尋下一LABEL
FOR (FORmat) 格式化一basic 程式
I (Insert)
I 新增一行
I100/0 插入100行的0
I12/ 插入12行空白行
IA 重複最後的插入
IB 同插入, 但放置資料在目前行的上面
J (Join)
J 結合目前和下一行成一行
Jn 結合目前和下n 行成一行
L (List) 顯示行
Ln 列出下n 行
L/ (Locate) & LA/ (LacateAbove)
L/abc 找尋下一行包含abc 的位置
L999/abc 在下999行找尋abc 的位置
R (Replace)
R 對目前行請求替換
R5 對下5行請求替換, 一次一行
R3/aaa 以”aaa ”取代3行
R10/ 以Null 取代下10行
RA 重複最後的取代指令
R/EW/AA/11-12 取代指定位置的字串(先下 COL)
V (Version) 顯示這編輯器的版本號碼, 和其它版本資訊 W (Where) 顯示關於正被編輯的資訊
^ 顯示ascii 值, 恢復則再鍵入一次
★ 特殊指令
ME(Merge) 在目前記錄COPY 某幾行到目前記錄內的另一位置LD(LoaD) 從其它記錄、或其它檔案載入資料到目前記錄 OO(OOps) 還原之前指令的結果
★ 如何鍵入Multi-value 、Sub-value
在EDIT 下:
ex1. 若要鍵入multi value 值:AA]BB]CC
STEP1) 先鍵入AA
* -:AA
STEP2) 再鍵入^253(此即為multi-value 的ascii code) STEP3) 以此類推..
*--:AA]BB]CC
ex2. 若要鍵入SUB VALUE值則同EX1. 只是code 值改為^252 ★ 批次修改
1) GET.LIST list-id
2) > ED filename
3) *--: =1 2`R`字串1`字串2`FI`=1
4) *--: =1