= 簡易表計算
TC 式 [オプション] [NX] [Zero] [行ラベル1 行ラベル2]
[行ラベル3 行ラベル4]
(DOS版ではサポートされません)
式 :[[opd3=]opd1]opc[opd2][{/key[/grade]|//count}]
.5 種類の形式があります。
-1項計算(合算以外)
TC [opd1]{++|--|=|/conv-type}
-1項計算(合算)
TC [opd1]+[{/breakkey[/grade]|//count}] [option]
行数をカウントするだけの場合特別にopd1に"1"を
指定できます。例)tc 1+/10-16!
-2項計算
TC [opd1]{+= | -= | *= | /= | %= | == | ~= | =}[opd2]
-3項計算
TC opd3=opd1{+ | - | * | / | % | ~ | ==}opd2
-表の列の桁整列
TC FMT [[fieldno[-fieldno]]{R|L|P}[F][C][N][O] ...]
[D[delimiter]] [C][N][O] [S[R]outdelm] [H] [Q[d][s]]
opd1/2/3:[type]{column1-column2|定数}または [type]:fieldno
type:データタイプ。
d(10進数),x(16進数),o(8進数),t(時間),
z(コンマ区切りの10進数)
時間は hhmmss,hh:mm:ss,hh.mm.ssの形式
指定のないときはhh:mm:ssまたはhh.mm.ss形式の
ときは 時間、それ以外は10進数とみなします。
column1/2:オペランドとなるファイル上の表データの
カラム位置を指定します。
データタイプ d/tでは小数点もOK。
タイムスタンプ定数は hh:mm:ss.xxx の形式です。
代入(=),比較(==)で使用する文字列定数は二重引用符で
囲みます。
例)tc 1-10*=60 tc 1-10+=01:10:29 tc 1-2=10-14=="abcde"
fieldno :1桁でフィールド番号を指定する
10以上は a から z を使用。
事前に "TC FMT H" コマンドでフィールド番号
ガイドラインを挿入すること。
opc :四則演算子
+ :合計の計算。オプションで平均、最大最小も表示。
小計行を明示指定する(項が'='で始まる行を置く)
か或いは、breakkey,count指定により小計も出力。
小計の出力位置はオプションで指定します。
= :-オペランド3の指定がないとき。
表位置をカット&ペーストで指定したあと、
これを第1オペランドとする時に使用します。
例。 TC =
-オペランド3の指定があるとき。
=の左のオペランドが第3オペランド(結果の
設定先)であることの指定になります。
例。 TC t10-19=t30-39+50-55
=の右に指定がない時は第一オペランドの指定になります。
例。 TC 10-20=
-複写操作でも使用します。
opd3=opd2 [INS] [RJust]
データタイプを指定しない場合はopd2を
スペーストリムして文字列複写。
データタイプを指定すれば変換操作が可能。
opd2を文字列定数とするときは opd2は "xyz"
のように指定する。
例 tc 1-8="total=" ins; tc 20-30="";
tc z1-8=x10-18;
++:その行までの合算で項目を置換します。
例。 TC x10-19++
--:前の行との差分で 項目を置換します。
例。 TC o10-19--
+=,-=,*=,/=,%=,~=
:各行オペランド1とオペランド2の演算結果を
オペランド1にセットします。
例。 TC 10-19*=20-21
~ :"並存数"をカウントします。
例えば、オペランド1,2がそれぞれ開始時刻/終了時刻
のとき開始時刻に何件のレコードが並存している
(終了時刻に達してない)かをカウントする。
開始時刻=終了時刻のレコードを開始時刻のレコード
としてカウントする場合はcountEQを指定する。
opd1にデータタイプT(時刻)を指定すればopd2は
秒数指定(間隔)でもよい。そうでない場合は
比較はすべて文字列比較となる。
例。 TC 10-13=30-41~50-51
==:比較。データタイプを指定しない場合は各行
オペランド1とオペランド2の大文字小文字区別有比較
opd1==opd2 形式の場合
不一致行の行番号欄との区切り位置に印をつける。
この行は *L 指定でFindできる。
opd3=opd1==opd2 形式の場合
比較結果(-1,0,1)をopd3に設定。
結果を1/0、0/1で設定するときはそれぞれ
TF、FT オプションを指定する。
/conv-type:データの型変換をする。
conv-type:O:8進,X:16進,T:時刻,D:10進,
Z:FMT(コンマ分離)10進,
U:符号無10進,UZ:符号無FMT10進,
L:TimeStamp-->時刻
FMT:表の列をスペースを列の区切り文字として桁整列。
R :右詰め。フィールド番号のみのときの省略値。
L :左詰め。
P :小数点をあわせて右詰め。
フィールド番号を付けないと"O"の指定があるまで
以降の省略値となる。
R/L/Pの指定なしとみなしたフィールドは
フィールド間隔が保持される。
5フィールドある場合の例では次の様になる。
tc fmt ==> r r r r r
tc fmt r l r o ==> r l r - -
tc fmt r 3l ==> r r l r r
tc fmt r 3l l ==> r r l l l
tc fmt 3r ==> - - r - -
N :数値フィールドとそれまでの全フィールドは
1つのフィールドとみなし数値フィールドの
ところで整列する。
A :"N"指定をリセットする。
C :以降のフィールドすべてその間のスペースを
1スペースに圧縮して結合する。
ただし、NC指定のときは数値フィールドまで結合する。
O :以降のフィールドは整列しない。
H :フィールド番号ガイドラインの挿入。
D[delimiter]:フィールド分離文字
省略値はD" ",DのみはD","の意味。
複数指定可能。例えば D" ,"。
エスケープ文字指定もOK
例えば D"\t\xa0\xff" は
0x09,0xa0,0xff のすべてが分離文字
unicodeは 例えば D\u00c1 のように措定する
S[R][outdelm]:出力用フィールド間分離文字。
R :入力の分離文字は削除する。
outdelm:フィールド間に挿入する分離文字
省略値は" "
エスケープ文字は\t=0x09いがいはOK
複数文字指定はその文字列を出力,DBCSもOK
unicodeは 例えば D\u00c1 のように措定する
例。 TC fmt 1-3f 2r
breakkey :[type]column1-column2[>|!|<]
opcode=+(合計の計算)のときに小計を表示する。
区切りを指定します。
>(昇順、省略値)、<(降順)のとき表はソートされて
いる必要があります。! キーは不一致で小計をとる。
type,columnはキー項目のタイプ,桁位置を指定する。
gradeの指定がなければこの桁位置の値が変わる毎に
小計が表示されます。
例。 TC 10-19+/1-4 TC10-19/1-4!
grade :breakkey(この場合数値でなければなりません)の値が
gradeの値の整数倍になる毎に小計を表示する。
例。 TC 10-19+/1-4/1000 :Col.1-4 が <=1000, <=2000, ...になる毎に小計を取る
count :count指定の行数毎に小計を表示する。
例。 TC 10-19+//100 :100 行毎に小計を取る。
filedno :右詰め(R)、左詰め(L) をフィールド番号で指定
省略値は右詰め、フィールド番号(1開始)を省略
すると以降のフィールド全てに有効となります。
例。 TC FMT 3L ; TC FMT R L; TC FMT 1-4L 5-6L;
オプション:スペースを置いて複数指定できます。
ign :既存の小計行(項の先頭に "="がある行)を無視する。
aft|bef|top|end|las:小計、合計行の挿入位置。それぞれ表の
前後、ファイルの最初最後の指定。
省略値はキーブレークの位置
-Ofilename :小計、合計行の別ファイル出力指定。
ワイルドカードを使用して現ファイル名
からの改名形式で打鍵の簡略化も可能。
ave|minmax|maxmin|amm:小計、合計行の追加オプション。
平均、最大最小、両方の追加指定。
NX :非表示行を対象外とする指定。
Zero :桁幅まで前に"0"をパディングする。
V[n]R :出力の小数点以下桁数を指定する。R:四捨五入。
INS :結果をopd3の位置に挿入する。
opd3は挿入位置と挿入桁数を表す。
RJ :文字列複写でopd3とopd2の幅が異なるとき右づめ:
RightJustifyする。
(省略値は左詰め:LeftJustify)。
countEQ:"~"(並存数カウント)操作で開始=終了時刻のレコード
をカウントUp対象(ACTIVE)とする。
指定がないと開始=終了のレコードはINACTIVEとみる。
Q[d][s]:FMTで引用符を考慮する(引用符内は1フィールド)。
d:二重引用符(")、s:一重引用符(')。
dもsも指定しない場合2重/1重引用符両方考慮。
TF :==(比較演算)の結果をopd3に1(一致)/0(不一致)でセット。
FT :==(比較演算)の結果をopd3に0(一致)/1(不一致)でセット。
行ラベル :表の開始、終了行行ラベルで指定します。
2対の時はそれぞれopd1,opd2用。1対のときは
opd1/2両方の行範囲指定になります。
ラベルが数字の場合は行番号指定とみなします。
例。 TC 10-19+ .a .b ; TC 10-19+ .100 .200
-opcodeが "+"(合計の計算)のときの小計行の扱い。
ブレーク指定(breakkey,count)がある時。
既存の小計行は ign 指定がなければ削除され、ign指定が
あれば無視されます。そしてブレーク指定に従った新たな小計行
が挿入されます。挿入位置はオプション指定(aft,bef,top,end,
las)がなければブレークの位置です。
ブレーク指定がない時。
オペランド1の先頭に"="をおくとそこで小計が取られます。
挿入位置オプションは合計行に対して効果を持ちます。
-カット&ペーストを使用した表指定。
第1オペランド,第2オペランドが異なるファイルの時は、
カット&ペーストでブロック指定します。
Alt+F7でブロックを指定した直後に続いてもう一度Alt+F7を
おすことで第1オペランドが決定されます。
或いはブロック指定の後の"TC ="コマンドでも第1オペランドの
決定になります。
この後のカット&ペーストでのブロック指定が第2オペランドの
指定を意味します。第2オペランドを指定したら、桁位置指定の
無いTCコマンドを入力します。例えば"TC +="、"TC 1-9=+。
(異なるファイルの場合コマンドは第2オペランド側で入力する)
桁位置以外のオプションは同様に指定できます。
例えば "TC t+=t/4-5"。
複写には使用できません。
使用例