JPH05250352A - 文字処理方法 - Google Patents

文字処理方法

Info

Publication number
JPH05250352A
JPH05250352A JP5032050A JP3205093A JPH05250352A JP H05250352 A JPH05250352 A JP H05250352A JP 5032050 A JP5032050 A JP 5032050A JP 3205093 A JP3205093 A JP 3205093A JP H05250352 A JPH05250352 A JP H05250352A
Authority
JP
Japan
Prior art keywords
indent
cursor
block
data
key
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP5032050A
Other languages
English (en)
Inventor
Katsumi Masaki
克己 正木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP5032050A priority Critical patent/JPH05250352A/ja
Publication of JPH05250352A publication Critical patent/JPH05250352A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Document Processing Apparatus (AREA)

Abstract

(57)【要約】 【目的】 文書編集にあたり、固定文字の位置を保持す
ることができる文書処理方法を提供することにある。 【構成】 固定文字を含む文書情報に対して、挿入、削
除等の文書編集の指示がある場合、前記指示に基づく、
編集処理に先立って前記固定文字の位置を把握し、前記
編集処理にあたり、把握された前記固定文字の位置が保
持される様に処理を行うこと。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は文字の編集処理を行う文
字処理方法に関する。
【0002】
【従来の技術】従来罫線を部分パターン化し、文字と同
等の取扱いを行うことによって罫線付の文書データ等を
作成し、プリント出力する装置があった。
【0003】しかしながら罫線部分パターンの連なりを
データとして作成するにあっては部分パターンの数に相
当するだけの複数個の入力手段が必要であったり、ある
いは罫線の始点と終点とを指定し、それを部分パターン
の連なりデータに変換するといった操作が必要であった
りした。
【0004】また、従来、あらかじめ設定された特定枠
内に文字等を入力し編集を行うことのできる文字処理装
置があった。例えば新聞のコラムへの電算機による入力
編集システム等はその例である。かかる固定化された枠
組みの大きさを変更しうるようにするために本出願人は
文字処理装置(特開昭55−135543号公報、本願
の図34、図35、図36を参照のこと)を提案してい
る。
【0005】ここでは枠組みが左マージンマーク
【0006】
【外1】 右マージンマーク
【0007】
【外2】 インデントマーク“◇”によって形造られている。ここ
での枠組みの定義は以下のようになっている。 左右方向:インデントマーク、左マージンマーク、右マ
ージンマーク等で囲われる最も小さな領域 上下方向:1左右マージンマークのみで枠組みされてい
る行の場合 ・文字等情報(スペースコードは除く)又はカーソルが
存在している行が連続して続く範囲 2インデントマークのみあるいはインデントマークと左
右マージンマークで枠組みされている行の場合 ・左右マージン、インデントが桁方向において同一に設
定されている範囲
【0008】しかし、まだまだ改良の余地があり、出力
を行う以前に、表示画面上で高品位に密やかに編集でき
操作性のすぐれた装置を提供することが望まれていた。
【0009】
【目的】以上の点に鑑み、本願発明の目的は、固定文字
を含む文書情報に対して編集を行う場合、編集処理に先
立って、固定文字の位置を把握することができ、編集処
理にあたり、固定文字の位置を保持することができる文
字処理方法を提供することにある。
【0010】
【実施例】次に本発明による実施例を述べる前に本実施
例で用いられる用語の説明をまず行う。 1.インデントコードInd CRT上に“◇”のマークで表示される。文字等をキー
ボードから入力するにあたって、あらかじめこのインデ
ントコードにより、枠組みが作られる。 2.左マージンコードLMM CRT上に
【0011】
【外3】 のマークで表示される。キーボードから入力可能な最左
端を表示する。 3.右マージンコードRMM CRT上に
【0012】
【外4】 のマークで表示されるキーボードから入力可能な最右端
を表示する。 4.インデントブロックInb インデントマーク、左マージンマーク、右マージンマー
ク等で枠組みされた領域をさす。正しくは、次のように
定義される。 左右方向:インデントマーク、左マージンマーク、右マ
ージンマーク等で囲われる最も小さい領域 上下方向:マージン、インデントの設定位置が同一であ
る範囲。インデントブロックの定義を換言するならば、
インデントマークあるいは左マージンマーク、あるいは
右マージンマークによって囲まれる横方向で最も小さい
領域が段差なく上下に続く領域である。
【0013】図2の(a),(b),(c)はCRT上
に表示されるインデントブロックの例を示すものであ
る。
【0014】キーボードから入力された文字等はこのイ
ンデントブロックInbという枠内で処理される。この
インデントブロックInbは作表等のフォーマッテイン
グされた文章を作成する上で重要な役割をはたす。
【0015】本実施例においては、CRT上に表示され
たカーソルCMが存在する位置以降に対して、インデン
トブロックInbの各種処理を行うため、前述した定義
によるインデントブロックInbの内カーソルCMが存
在する行以降に対してインデントブロックInbという
表現をしているところがある。 5.枠組コード インデントコードInb、左マージンコードLMM、右
マージンコードRMMの3種のコードの総称。これらの
コードは、枠組パターン
【0016】
【外5】 ◇と対応ずけられる(図3の(a)参照)。
【0017】枠組みは下記により定義される。 左右方向:インデントマーク、左マージンマーク、右マ
ージンマーク等で囲われる最も小さい領域 上下方向:マージン、インデントが桁方向に同一である
状態が連続する範囲。(別の言い方をすると、段差なく
マージンあるいはインデントが上下に続く範囲)
【0018】図33の(b),(c)に上記定義による
枠組みの例を示す。一点鎖線で囲われた領域が枠組みで
あり、この定義によれば、前述のような枠組みの判断に
おける混乱を解消できることになる。 6.罫線コード 罫線部分パターンを図形文字としてコード化したもの。
図3の(a)で示す如く、11種の罫線パターンが罫線
コードと対応づけられている。
【0019】次に本発明による1実施例による概要を説
明する。
【0020】実施例に示す装置はキーボード、処理部の
表示装置及びプリンタから成る。
【0021】すべての操作はキーボード上にある文字キ
ーあるいはファンクションキーにより実行する。
【0022】まずイニシャライズキーによりすべての状
態を初期化し、本実施例の各機能が実行可能な状態とな
る。
【0023】イニシャライズキーを押すことにより、表
示装置上には、左右マージンマークLMM、RMMが表
示され、他はすべてクリアされる。カーソルCMは、最
上行の第2コラム目に位置し、キーボードからの文字等
の入力が可能となる。入力モードである挿入とオーバー
ライトとの選択は、挿入キーあるいはオーバーライトキ
ーを用いることにより行う。キーボードから入力された
文字等は、挿入モードあるいはオーバーライトモードに
於て、表示装置上でカーソルCMが表示されている位置
に入力される。カーソルCMはキーボードからの文字等
の入力に従って、1つずつ歩進する。誤入力を行ったと
き、削除キーを用い削除することができ、その場合後続
する文字列は1つずつ前につめられる。削除しょうとす
る文字はカーソルCMで指定する。カーソルCMはカー
ソルキーにより1つずつ歩進させることができる。入力
が終了した文字列はプリントキーを押下することにより
プリンタに出力させることができる。以上説明した入出
力制御は公知の技術で容易に実現することができる。
【0024】以下本発明における機能についてその操作
方法を述べる。
【0025】まずインデントブロックInbを形成する
方法について述べる。インデントブロックInbは、イ
ンデントキーを用い表示装置上にインデントマークIn
dをオーバーライト又は挿入することにより形造ること
ができる。一度インデントブロックが出来上がった後
は、キーボードから入力された文字等の情報は、すべて
このインデントブロックInb内で処理されることにな
る。これにより、作表等のフォーマッティングされた文
章の作成は、容易に行えるようになる。又このインデン
トブロックInbは横方向に自由に拡大、縮小ができ
る。この様子を図4の(a),(b),(c)を用い説
明する。
【0026】図4の(a)にように、インデントブロッ
ク内に複数個の文字が既に入力されていたとする。カー
ソルキーを用いカーソルCMを第1行目第8桁目の位
置、即ち、Bの位置に移動した上でインデント右移動キ
ーを押下すると、カーソルCMが存在したインデントブ
ロックは、横方向に縮小され、その分縦方向に拡大さ
れ、図4の(b)のようになる。次に図4の(b)のよ
うにカーソルCMをインデントマークIndの位置にお
きインデント右移動キーを押下すると、カーソルCMの
位置より左側に数えて2番目のインデントブロックIn
bが拡大し図4の(c)のようになる。
【0027】即ち図4の(a)においてインデント右移
動キーを1回押下すると、図4の(b)のようになり、
図4の(a)においてインデント右移動キーを2回押下
すると図4の(c)のようになる。
【0028】図4の(b)のようにカーソルCMをイン
デントマークIndの位置におき、インデント右移動キ
ーを押下した時のことをもう一度考察する。この例にお
いてはカーソルのすぐ左側に存在するインデントブロッ
クはすべてスペースコードであった。従ってカーソルの
位置より左側に数えて2番目のインデントブロックが拡
大してもそれによって喪失する文字(スペースは除く)
は存在しない。しかしながら、カーソルのすぐ左側に存
在するインデントブロックに既に文字が存在している場
合も有る。この時にはカーソルの位置より左側に数えて
2番目のインデントブロックが拡大すると文字等の喪失
が発生することが起こり得る。そこで、文字等(スペー
スコードを除く)の喪失が発生する可能性が有る時はイ
ンデントブロックの拡大は行わず、文字等(スペースコ
ードを除く)の喪失が発生する可能性のない時、インデ
ントブロックの拡大を行うものとする。
【0029】図4の(b),(c)におけるインデント
ブロックの拡大は、関係する二つのインデントブロック
の縦サイズが等しい時における例であるが、さらに図3
6の(a),(b)に関係する二つのインデントブロッ
クの縦サイズが異なる場合の例を示す。この場合拡大す
るインデントブロックInb1の縦サイズより拡大を受
けるインデントブロックInb2の縦サイズの方が大き
いために、インデントブロックInd1の拡大によって
影響を受けるインデントブロックはインデントブロック
Inb2に限られることになり、インデントブロックI
nb2内に有効情報(本実施例においてはスペースコー
ド以外の情報)が存在しない限り、インデントブロック
Inb1の拡大は可能である。しかしながら、もし拡大
するインデントブロックの縦サイズ(行方向の大きさ)
が拡大を受けるインデントブロックの縦サイズより大き
い時は、拡大を受けるインデントブロックは複数個とな
るため、処理が複雑となるためその処理は行わないもの
とする。
【0030】インデント左移動キーを用いて、インデン
トマークIndの移動を行った時も以上の説明と類似の
動作を行う。
【0031】次にインデントブロックInb内に文字等
の入力を行った時について図5の(a),(b),
(c)を用い説明する。図の(a)のように、インデン
トブロックInb内に文字等が入力され、カーソルCM
がインデントブロックInbの最後に位置していたとす
る。図5の(a)において文字“L”をオーバーライト
モードで入力したとすると、図5の(b)のようにな
る。即ちインデントブロックは縦方向(矢印A)に自動
的に拡大され、次に入力される文字等に格納エリアの準
備を行う。
【0032】図5の(b)でさらに“MNOP”と入力
を続行すると図5の(c)のようにさらに同じ拡大を続
ける。
【0033】図5の(b)で、さらにインデントブロッ
クを拡大しょうとすると、下方に隣接するインデントブ
ロックInbを1行ずつ下方にずらさねばならなくな
る。図5の(c)がその例である。
【0034】次にインデントブロック内の文字の削除方
法について説明する。図6の(a)のようにインデント
ブロックInb内に文字が入力され、カーソルCMっが
“W”の下に位置していたとする。削除キーを押下する
ことにより、以下に続く文字は1つずつ前につまる。そ
の結果今まで“Y”という文字が存在していた行はスペ
ースコード、左マージンコード、右マージンコード、イ
ンデントコードのみから成る行となってしまう。本実施
例においては該行Lを自動的に削除し、以下に続く行を
すべて1行ずつ繰り上げるものとする。
【0035】図6の(b)がその結果である。
【0036】次にインデントマークIndを削除する方
法について述べる。
【0037】一つは削除キーを用いる方法であり、イン
デントマークはスペースコードに置きかわる。
【0038】次にインデントマークと罫線パターンとの
切換機能について説明する。今図3の(b)のようにイ
ンデントブロックInbが形成されているとする。ここ
でインデント罫線変換キーを押下すると、図3の(c)
の如く、変換される。又図3の(c)において罫線イン
デント変換キーを押下すると図3の(b)の如く変換さ
れる。このようにしてインデントマークIndと罫線パ
ターンRPMとの相互変換が可能となる。この機能を用
いることにより、インデントマークIndで枠組された
領域に文章を入力し、然る後罫線パターンに変更するな
らば、極めて容易に罫線パターンKPMを有する文章を
作成することができる。これは、作表する上で非常に便
利である。
【0039】インデントマークの罫線パターンへの変換
は上述の如く、罫線インデント変換キーを用いればワン
タッチで行うことができるが、インデントマークが罫線
パターン変換される範囲は、下記の如く規定される。
【0040】即ちカーソルが存在する行以降、インデン
トマークが存在する行が連続して続くところまでの範囲
とする。これによってより単純なインデントマークの連
なりから複雑な罫線パターンの連なりに変換することが
できる。図35にその例を示す。
【0041】図35の(a)においてカーソルを第2行
の位置に持ってきてインデントマークを罫線パターンに
変更すると図35の(c)が得られる。一方図35の
(a)においてカーソルを第6行の位置に持ってきてイ
ンデントマークを罫線パターンに変更すると図35の
(b)が得られる。さらに図35の(b)においてカー
ソルを第2行目に持ってきてインデントマークを罫線マ
ークに変換するならば、図35の(c)が得られる。こ
のようにインデントマークを罫線パターンに変更するに
あたって、カーソルによって範囲指定を行うことができ
るので、より自由な罫線パターンが得られる。さらには
インデントマークを罫線パターンに変換する最終領域を
インデントが存在する行が連続して続くまでの範囲と規
定したため、やはり、より自由な罫線パターンを得るの
に役立っている。
【0042】一方一度インデントマークを罫線パターン
に変換した後罫線パターンが存在する近傍に文字等の入
力を行ったり、挿入削除等の編集を行うならば、折角作
った罫線パターンの配列に乱れが発生することになる。
そこで、一度罫線パターンに変換した文書に対し入力あ
るいは編集を行おうとする時は、罫線インデント変換キ
ーにより再び罫線パターンをインデントマークに変換し
た後行うようにする。
【0043】図3の(d)に具体的にインデントパター
ンを罫線パターンに変更する時の対応テーブルを示す。
なお本実施例においては、文字の入力、インデントの移
動削除、キャリッジリターンキー入力等の機能を実行さ
せるにあたって、カーソルがインデントブロック単位で
キャリッジリターンコードが存在する行の右側に位置さ
せることはないものとする。
【0044】以上入力編集を行った文書は、プリントキ
ーをおすことによりプリンタに出力される。
【0045】図1は、本発明による文字処理装置の一実
施例を示すブロック図である。以下各構成要素を説明す
る。KBは文書入力用キー(例えばJIS鍵盤に配列さ
れているキー群)及び本装置にそなわる種々機能を実現
するためのファンクションキー群より成るキーボードで
ある。上記ファンクションキー群は下記のファンクショ
ンキー即ち、インデントを設定するためのインデントキ
ー、インデントを右方向に移動するためのインデント右
移動キー、インデントを左方向に移動するためのインデ
ント左移動キー、これから入力する文字の挿入、削除、
オーバーライトを指示するための挿入キー、削除キー、
オーバーライトキー、CRT上のカーソルを移動するた
めのカーソルキー、カーソルをインデントブロック単位
に逆方向に移動させるバックスペースキー、仕事の開始
を指示するイニシャライズキー、改行を指示するキャリ
ッジリターンキー、インデントマークを罫線マークに変
換するインデント罫線変換キー、罫線マークをインデン
トマークに変換する罫線インデント変換キー及びプリン
トを指示するプリントキーから成る。キーボードKBは
エンコーダ機能を有し、後述する処理部CPUにより打
鍵されたキーの情報が読み取られる。
【0046】CRはカーソルレジスタである。後述する
処理部CPUにより、カーソルレジスタCRの内容を読
み、書きすることができる。後述するCRTコントロー
ラCRTはここに蓄えられたアドレスに対応する表示装
置CRT上の位置にカーソルを表示する機能を有する。
カーソルレジスタCRに蓄えられる情報は1〜128ま
でのシリアルナンバーとし、CRTコントローラCRT
Cは、このシリアルナンバーを行数、桁ナンバーに変更
し、表示することになる。
【0047】WBはワークバッファで、インデントブロ
ックInb内の情報を一時的に蓄えるためのバッファで
あり、バッファのヘッダ部には7Wのパラメータが配置
される。容量は16×9W+αの大きさとする。後述の
処理部CPUにより自由に読み、書きできる。
【0048】DBuFはデータバッファで、キーボード
KBより入力された文章情報を蓄えるためのメモリであ
り、後述するCRTコントローラCRTCによってここ
に蓄えられた情報が表示装置CRT上に表示される。表
示装置CRT用のリフレッシュメモリとして使用され
る。CPUにより自由に読み書きできるものとする。デ
ータバッファDBuFは16×9Wの容量を有し、その
うち前半の16×8Wのみが表示装置CRT上に表示さ
れるものとする。
【0049】CRTCはCRTコントローラでデータバ
ッファDBuFに蓄えられた情報に従って文字等を表示
装置CRTに表示し、カーソルレジスタCRに蓄えられ
た情報に従って表示装置CRT上にカーソルを表示する
コントロールを行う。
【0050】文字等の表示は横16文字、縦8行の表示
とし、データバッファDBuFの内容と順に対応づけら
れているものとする。
【0051】文字等の表示にあたっては、後述するキャ
ラクタジェネレータCGを参照し、文字コードを文字パ
ターンに変更することを行う。具体的方法は公知であ
る。
【0052】CRTは表示装置であり、CRTコントロ
ーラCRTCにより文字とカーソルを表示できる。
【0053】CGはキャラクタジェネレータであり、表
示装置CRTへの文字表示やプリンタPRTへの文字出
力のために使用される。CRTコントローラCRTC、
及び後述するプリンタコントローラPRTCにより用い
られる。
【0054】PRTCはプリンタコントローラであり、
後述する処理部CPUからの文字コード情報をキャラク
タジェネレータCGを参照することによりパターンに直
し、該パターンをプリンタPRTに出力する。
【0055】プリンタコントローラPRTCは、罫線コ
ードを罫線パターンに変換し出力することができる。好
ましくはパターン出力にあって行間、文字間をも連続す
る直線でうめる機能を有していた方がなお一層望まし
い。
【0056】PRTはプリンタであり、プリンタコント
ローラPRTCからの情報に従って文字等をプリントア
ウトする。
【0057】CPUはマイクロプロセッサであり、演
算、論理判断等を行う。後述するAB,CB,DBをコ
ントロールする。
【0058】ABはアドレスバスで制御対象を指示する
信号を転送する。
【0059】CBはコントロールバスで各種制御対象に
制御信号を印加するものである。
【0060】DBはデータバスで各種データを転送す
る。
【0061】ROMは制御メモリで、図7以降に示す制
御手順等を記憶するものである。
【0062】RAMはランダムアクセスメモリで、各種
データノ例えばキャリッジリターンフラッグCRFG、
オーバライトフラッグOWFG、新データ行数レジスタ
NDLカーソルセーブレジスタCSR一時記憶に用いら
れる。
【0063】次に本実施例の動作説明を行う。
【0064】本実施例は、電源投入時に自動的にキーボ
ード処理が動作するように構成されているものとする。
以下各処理につき具体的に図7以降のフローチャートを
参照し、説明を行う。
【0065】まずキーボードKB上のキーが操作される
と以下の順序に従って操作キーが判別され、それぞれの
キーに対する処理が行われ、キー待ちの状態となる。
【0066】ステップKBIでキーボードKBから入力
があったかを判別する。入力がなければ、キー待ちにも
どり、入力があればステップKB2に移りキーボードK
Bからのデータを取り込む。ステップKB3で、取り込
んだデータがキャリッジリターンキーか否かを判別す
る。YESであれば、キャリッジリターン入力処理を行
い、ステップKB5でフラッグCRFGを1にセット
し、キー待ちにもどる。一方ステップKB3でNOであ
れば、ステップKB6でフラッグCRFGをOにリセッ
トし次のキー判別ステップに移る。ここでステップKB
4のキャリッジリターンキー入力処理についてさらに述
べる。
【0067】図8はキャリッジリターンキー入力処理に
ついての詳細を示す図である。かかる処理の各ステップ
の処理を以下に示す。 ステップ4.1 CR FGセットされているか ステップ4.2 現カーソル位置はインデントマークの
すぐ右隣か? ステップ4.3 現カーソル位置はすぐ左隣のインデン
トマークをスペースコードに変更する。 ステップ4.4 カーソルを現カーソル位置より左に存
在しかつ最も近いインデントマークあるいは左マージン
マークの直ぐ右隣の位置に移動させる。(カーソルを移
動させるにはカーソルレジスタに該当数値を記入す
る。) ステップ4.5 文字キー入力処理16
【0068】上述の如く本発明に於てはキャリッジリタ
ーンキーにより枠組の変更を行うようにしているが、他
のキーにその機能をもたせるようにしても良い。
【0069】ここで再び図7のキーボード処理の説明に
移る。
【0070】ステップKB6でフラッグCRFGをリセ
ットした後、ステップKB7に移り、インデントキーが
操作されたかを判別する。YESであれば、ステップK
B8のインデントキー入力処理を行う。即ちインデント
マークを現カーソルが存在する位置に書き込む。かかる
処理が終了すれば、キー待ちにもどる。
【0071】図9はインデントキー入力処理についての
詳細を示す図である。各ステップの処理を以下に示す。 ステップ8.1 現カーソルが存在している位置に対応
するデーターハッファDBuF内の位置にインデントコ
ードを書き込む ステップ8.2 カーソルを一つ歩進させるためにカー
ソルキー入力処理(14)を行う。詳細は後述する。
【0072】ここで再び図7のキーボード処理の説明に
もどる。ステップKB7でNOであれば、ステップKB
9に移り、オーバライトキーが操作されたかを判別す
る。キー操作があれば、ステップKB10でオーバライ
トフラッグOWFGを1にセットし、(図10)キー待
ちに戻る。もしNOであれば、ステップKB11に移
り、挿入キーが操作されたかを判別する。
【0073】YESであれば、挿入キー入力処理を行
う。即ち、オーバライトフラッグOWFをリセットし、
(図11)キー待ちに移る。
【0074】NOであれば、ステップKB13に移り、
カーソルキーが操作されたかを判別する。YESであれ
ば、ステップKB14(図12)に移り、カーソルCR
T画面上順次歩進させる。なおカーソルが最終行最終桁
に来た時、左上の位置に再び戻す。
【0075】かかる処理は以下のステップで行う。 14.1 カーソルレジスタCRインクリメント 14.2 カーソルレジスタCRの値は128を越える
か? 14.3 カーソルレジスタCRの値を1にする かかる処理が終れば、キー待ちにもどる。もしNOであ
れば、ステップKB15に移る。かかるステップで文字
キーが操作されたかを判別し、YESであれば、ステッ
プKB16(図13の(a))に移り以下の制御を行
う。 16.1 現カーソルの位置にインデントマーク、左右
マージンマークは存在するか? 16.2 インデントブロックSAVE処理 16.3 オーバーライトモードか?(オーバーライト
フラッグ参照) 16.4 オーバーライト処理 16.5 挿入処理 16.6 インデントブロックRESTORE処理
【0076】上述の各ステップは以下の内容を行ってい
る。 16.1 文字キー入力処理はカーソルがインデントブ
ロック内に存在している時のみ有効とする。即ち、イン
デントマーク及び左右マージンマークの位置にカーソル
がある時は本処理は無処理とする。 16.2 入力処理はすべてワークバッファWB内で行
うためカーソルが存在するインデントブロック内情報を
すべてワークバッファWB内に移す。(但し処理はすべ
てカーソルが存在する行より後とする。又その際ワーク
バッファWBのHEADER部に各種パラメータを設定
しておく。この説明から明らかな様に、編集を行う場合
を考えると、編集処理に先立って、固定文字を把握する
こととなる。 16.3〜16.4 オーバーライトモードであるなら
ワークバッファWB内でオーバーライト処理を行う。 16.5 挿入モードであるならワークバッファWB内
で挿入処理を行う。 16.6 文字入力処理を終了したワークバッファWB
内の情報をもとのインデントブロックにもどす。
【0077】上述の処理をさらに説明する。
【0078】図13の(b)は文字のオーバーライトの
例である。16.0で示す図をデータバッファDBuF
内の初期状態とする。ここでは紙面の都合で横8桁、縦
4行のデータバッファDBuFが表示装置CRTに表示
されている様子を示している。16.2のステップを実
行したのが16.2で示すデータバッファDBuFとワ
ークバッファWBの様子である。データバッファDBu
F内のデータは、ワークバッファWBに移されている。
次にステップ16.4によるオーバーライト処理によ
り、ワークバッファWB内でのオーバーライト処理が行
われる。16.2と16.4で示すワークバッファWB
内の違いは文字Cの後ろに文字Dが加わったことワーク
バッファWBの第1W(DATA LENGTH)がイ
ンクリメントされたことと、ワークバッファWBの第4
W(カーソルアドレス)がインクリメントされたことで
ある。ステップ16.4ではワークバッファWBに蓄え
られた情報が欠落なく該当インデントブロックにすべて
もどせるか否かを判断する。この場合16.0で示すイ
ンデントブロックの容量が2characterであり
ワークバッファWBに蓄えられている情報量はカーソル
が移動したために3characterに増加してい
る。そのためインデントブロックを縦方向に拡大し、ワ
ークバッファWB内の情報がすべて格納できるようにし
たのが16.4で示すデータバッファDBuFの様子で
ある。ステップ16.6では、拡大されたインデントブ
ロックにオーバーライト処理後のワークバッファWBの
情報をすべてもどすことを行う。16.6で示す図がそ
の様子を示している。
【0079】上述の処理に於いてステップ16.2のイ
ンデントブロックセーブ処理について図14の(a)を
用いてさらに説明する。かかるステップは以下の事を行
う。 16.2.1 ワークバッファWBのデータ格納エリア
をすべてスペースコードでうめる。 16.2.2 カーソルが存在するインデントブロック
内のカーソルが存在する行以降のデータバッファDBu
Fの内容を、ワークバッファWBに移す。(但し、キャ
リッジリターンコードに続くスペースコードは除く) 16.2.3 該インデントブロックをすべてスペース
コードで埋める。 16.2.4 ワークバッファWBのHEADER部に
下記のパラメータを記入する。 1.ワークバッファWBに書き込んだデータの長さ。但
しカーソルが存在する位置までは必ず含めるものとす
る。 2.該インデントブロックの横巾 3.該インデントブロックの縦巾(インデントブロック
の行数) 4.カーソルレジスタに対応するワークバッファ内のア
ドレス 5.該インデントブロックの先頭のデータバッファDB
上での桁ナンバー 6.該インデントブロックの先頭のデータバッファDB
上での行ナンバー 7.データ行数(縦巾から最後に連続して続くスペース
行数を除く)
【0080】上述の各ステップは以下の目的を有する。 16.2.1 ワークバッファWBをスペースコードで
イニシャライズする。 16.2.2 インデントブロック内の情報をワークバ
ッファWBに移す。 16.2.3 移し終わった後のインデントブロックは
すべてスペースコードで埋める。 16.2.4 該インデントブロックの特徴をすべてワ
ークバッファWBのHEADER部に記入しておく。こ
のHEADER部のパラメータは各種処理においてワー
クバッファWBの内容に変更を加えた時に、同時に変更
され又、ワークバッファWBの内容をデータバッファD
BuFに戻す時に役立つものである。
【0081】上述のステップ16.2.2はさらに次の
ステップに分かれる。(不図示) 16.2.2.1. カーソルが存在するインデントブ
ロックの範囲を認識する。(認識は下記のようにして行
う。現カーソルが存在している行を本処理におけるイン
デントブロックの先頭行とする。現カーソルをはさむ現
カーソルに最も近いインデントマークあるいは左右マー
ジンマークをさがし、それを該インデントブロックの横
方向範囲とする。第1行目の横方向範囲が段差なく縦方
向(行方向)に続くまでを該インデントブロックの縦方
向の範囲とする。以上のようにして該インデントブロッ
クの形状を認識する。インデントブロックの範囲の認識
は後述するインデントブロックを扱う処理において、そ
のたびに利用するが、そこでの説明は省略する。) 16.2.2.2. ステップ16.2.2.1で認識
されたインデントブロック内の情報をワークバッファW
Bに移す。
【0082】図14の(b)は、本処理における例を示
すものである。16.2.4においてワークバッファに
セーブするパラメータは次の通り。 第1W データの長さ ワークバッファに書き込んだデータの長さ。但し、キャ
リッジリターンコードに続くスペースコードは除く。又
該インデントブロックの最後に続く、スペースコードも
除く。又カーソルが存在している位置は例えそこにスペ
ースコードが存在していても、スペースコード以外のコ
ードがそこに存在していると見なすものとする。 第2W 横巾 該インデントブロックの横巾 第3W 縦巾 該インデントブロックの縦巾 第4W カーソル 現カーソルが示すDATAがワークバッファWBに格納
されている位置を示す。最小値1であり最大値は第1W
と同じ値となる。 第5W 該インデントブロックの先頭桁 該インデントブロックが存在するデータバッファDBu
F上の位置を規定する。該インデントブロックの先頭文
字がデータバッファDBuFの何桁目に存在しているか
を示す。 第6W 該インデントブロックの先頭行 該インデントブロックが存在するデータバッファDBu
F上の位置を規定する。該インデントブロックの先頭文
字がデータバッファDBuFの何行目に存在しているか
を示す。 第7W データ行 インデントブロック内で、最後に連続し続くスペース行
を除いた縦巾。但しカーソルが存在している位置に、ス
ペースコードが存在していても該位置は文字コードが存
在していると同等と見なす。最小値は1、最大値は第3
Wと同じ値となる。
【0083】またステップ16.4のオーバーライト処
理(図15)の制御手順を以下に示す。 16.4.1 ワークバッファWB第4W(カーソル)
の示すワークバッファWB内DATA位置にオーバーラ
イトすべきDATAをオーバーライトし、ワークバッフ
ァWBの第4W(カーソル)の値を更新する。 16.4.2 ワークバッファWB第4W(カーソル)
の値は、ワークバッファWBの第1W(DATA LE
NGTH)より大きいか? 16.4.3 ワークバッファWBの第1W(DATA
LENGTH)の値をワークバッファWBの第4W
(カーソル)の値に置き換える。
【0084】上述の各ステップをさらに説明する。 16.4.1 ワークバッファWBの該当位置にデータ
を書き込む。又カーソルを進ませるためにワークバッフ
ァWBの第4Wの値を更新する。 16.4.2〜16.4.3 カーソルの位置がワーク
バッファWBの第1Wのデータレングスより大きい場合
には、カーソルの値即ちワークバッファWBの第4Wの
値をワークバッファWBの第1Wに移す。即ちカーソル
の位置のスペースもデータに含めてデータレングスを決
定するものとする。
【0085】前述のステップ16.5の詳細を図16を
参照しさらに説明する(挿入処理)。
【0086】かかるステップはワークバッファWBの第
4W(カーソル)の示すワークバッファWB内のデータ
位置に挿入すべきデータを挿入し、ワークバッファの第
1W(DATA LENGTH)、第4W(カーソル)
の値を更新(+1)する。
【0087】かかるステップによりワークバッファWB
内で挿入処理を行い、ワークバッファWBの第1W(D
ATA LENGTH)と第4W(カーソル)との値を
インクリメントする。
【0088】次に図13の(a)に示すインデントブロ
ック再記憶処理(リストア処理)16.6をさらに説明
する。図17はそれを示す図である。 16.6.1 横巾をワークバッファWBの第2Wの値
とした時のワークバッファWBの第1Wで指定されたD
ATA量のDATAを格納するのに必要な行数を求め、
それを新DATA行数とする。途中CRコードが存在し
た時は改行による行数増加を考慮しなければならない。
(新DATA行数レジスタNDRに新DATA行数をセ
ーブする。) 16.6.2 新DATA行数はワークバッファWB第
3W(縦巾)より大きいか? 16.6.3 インデントブロック拡大処理 16.6.4 新データ行数レジスタNDRの新DAT
A行数は、ワークバッファWBの第7W(DATA行
数)より小さいか? 16.6.5 インデントブロック縮小処理 16.6.6 データバッファDBuF書き込み処理
【0089】上述のステップ16.6.1〜16.6.
5についてさらに説明する。 16.6.1 ワークバッファのHEADER部を参照
してワークバッファWB内データをデータバッファDB
uFに格納するに必要な行数を求める。
【0090】行数を求めるにあたってはワークバッファ
WBの第2Wに格納されているインデントブロック横巾
の値を参照する。
【0091】又キャリッジリターンCRコードが存在し
た時は改行による行数増加を考慮する。 16.6.2〜16.6.3 求めた行数ともとのイン
デントブロックの縦巾を比較して、その行数が縦巾を越
える時はインデントブロックの縦方向の拡大を行って、
データエリアを確保する。 16.6.4〜16.6.5 求めた行数ともとのデー
タの行数(もとのインデントブロックの縦巾でなく、縦
巾から最下行に連続して続くスペース行の数を差し引い
たもの)とを比較し、その行数がもとのデータ行数を下
回る時、その分だけインデントブロックの縦方向の縮小
処理を行う。 16.6.6 新しく作り直したインデントブロックに
ワークバッファの内容を移す。その際ワークバッファの
HEADER部のパラメータを参照することにより行
う。
【0092】上述のステップ16.6.3のインデント
ブロック拡大処理についてさらに図18の(a)を用い
て説明する。 16.6.3.1 行挿入処理 16.6.3.2 SPACE 行移動処理 16.6.3.3 〔新DATA行数−ワークバッファ
第3W(縦巾)〕の大きさの分だけ繰り返したか?のス
テップ制御を行う。各ステップの目的は以下に示す。 16.6.3.1 カーソルが存在している行にいわゆ
る行挿入を行う。この際挿入される行DATAは左マー
ジンマーク、右マージンマークはもちろん伴なっている
が、1つ上の行と全く同じようにインデントマークがセ
ットされているものとする。他はスペースコードがうま
っているものとする。 16.6.3.2 行挿入の結果、今まで連続して続い
ていた文字列が切断され、文章としてのつながりが保て
なくなる。そこでインデント単位に挿入された行以降の
データを1行ずつくり上げることを行う。 16.6.3.3 インデントブロックを拡大する行数
分だけステップ16.6.3.1と16.6.3.2を
くり返す。
【0093】上述の処理によるデータの配列を図18の
(b)に示す。
【0094】図18の(b)は、インデントブロック拡
大処理の例である。16.6.3.1で示す図では、行
挿入が行われた様子が示されており又16.6.3.2
で示す図ではインデント単位に挿入されたスペース行を
下にずらした様子が示されている。16.6.3.2の
図でわかるように、結果として、スペース行は、各イン
デントごとに、ばらばらの位置に配されることになり、
一行にまとまることはなくなる。この結果各インデント
ブロック単位に文章の連続性が保たれた形でインデント
ブロックの拡大が行われる。
【0095】前述のステップ16.6.3.1の行挿入
処理についてさらに図19(a)を用いて説明する。か
かる処理は以下の各ステップから成る。 16.6.3.1.1 データバッファ内でカーソルが
存在する行以降すべての行を1行下げ新しく発生した行
にスペースコードをうめる。 16.6.3.1.1 新しく発生した行に、前行の左
マージンコード、インデントコード、右マージンコード
を、同じ位置にコピーする。
【0096】上述のステップにより現カーソルが示す位
置にスペースコードだけから成る行を挿入し、然る後左
マージンマーク、右マージンマーク、インデントマーク
を前行と全く同じ位置に記入する。
【0097】前述のステップ16.6.3.2のスペー
ス行移動処理についてさらに説明する。かかる処理は図
20の(a)に示す各ステップを行う。 16.6.3.2.1 カーソルが存在する行の最左端
のインデントブロックを捜す。 16.3.3.2.2 インデントブロックは存在した
か。 16.6.3.2.3 該インデントブロックの先頭に
カーソル移動(カーソルの移動は横方向のみ) 16.6.3.2.4 該インデントブロックのカーソ
ルが存在している行はすべてスペースコードか?(イン
デントブロック単位で調べる) 16.6.3.2.5 該インデントブロック内でカー
ソルが存在している行を削除して、すべて1行繰り上げ
る。該インデントブロックの最後まで実行し、最下行は
スペースコードで埋める。 16.6.3.2.6 右方へ次のインデントブロック
を捜す。
【0098】上述のステップを実行することにより例え
ばステップ16.6.3.2.1、16.6.3.2.
2、16.6.3.2.6によりインデントブロックご
とに左方から順に処理を実行し、すべてのインデントブ
ロックに対して処理が終了するまで続ける。
【0099】ステップ16.6.3.2.3〜16.
6.3.2.5により各インデントブロック単位でスペ
ース行を、各インデントブロックの最下行に移動させ
る。この処理はインデントブロック単位で実行するた
め、最下行に移動したSPACE行の位置はインデント
ブロックごとに異なる。図20の(b)に例を示す。
【0100】前述のステップ16.6.5のインデント
ブロック縮小処理の詳細を図21に示す。各ステップに
ついて説明する。 16.6.5.1 該インデントブロックの最終行に左
マージンマーク、右マージンマーク、スペースコード、
インデントコード以外のものが存在するか?(全体で調
べる) 16.6.5.2 該インデントブロック最終行を削除
し、それ以降に続くDATAをすべて、1行分につめ
る。(インデントブロック単位でない) 16.6.5.3 データバッファDBuFの最終行に
対応する位置にすべてスペースコードを埋める。 16.6.5.4 データバッファの最終行に左マージ
ンコード、右マージンコードを埋める。 16.6.5.5 〔ワークバッファ第7W(DATA
行数)−新DATA行数〕の大きさの分だけ繰り返した
か? 上述のステップ16.6.5.1〜16.6.5.5を
実行して以下の目的を実現する。 16.6.5.1 該インデントブロックの最終行にお
いて、隣接するインデントブロックも含めて、すべて、
左マージンコード、右マージンコード、インデントマー
ク、スペースコード以外のものが存在していなかった
ら、次のステップに進む。 16.6.5.2 16.6.5.1でチェックした行
を削除し、後続する行を上へ繰り上げる。(インデント
ブロック単位でなく、左右マージンを含めて実行するも
のとする) 16.6.5.3〜16.6.5.4 最終行に対応す
るデータバッファの位置、左右マージンコード、とスペ
ースコードを埋める。 16.6.5.5 縮小の必要なだけ縮小を繰り返す。
【0101】前述のステップ16.6.6のデータバッ
ファ書き込み処理について図22を参照して説明する。 16.6.6.1 ワークバッファWBのHEADER
部パラメータに従ってワークバッファ内DATAをデー
タバッファに移す。(但し途中にCRコードが存在した
場合改行を行う)インデントブロックをオーバーした分
は捨てさる。 16.6.6.2 ワークバッファの第4W(カーソ
ル)に対応するDATABUFFER内アドレスをカー
ソルレジスタに記入する(但し、その値が128を越え
る時は1とする)。
【0102】上述のステップ16.6.6.1〜16.
6.6.2を実行し、以下のことを行う。 16.6.6.1 ワークバッファの内容をデータバッ
ファに移す。移すべきデータの長さは第1Wに移すべき
インデントブロックの横巾は第2Wに、移すべきインデ
ントブロックのデータバッファDBuF内位置は第5
W、第6Wに示される。第5Wは、桁番号で第6Wに行
番号であり、この位置該インデントブロックの先頭文字
が来ることになる。 16.6.6.2 カーソルレジスタへカーソルアドレ
スを書き込むワークバッファWB第4Wにカーソルの存
在すべきアドレスが記入されている。この値を実際のデ
ータバッファ上でのアドレスに変換し、カーソルレジス
タCRに記入する。
【0103】上述の処理が終了すると図7に示すステッ
プKB16の文字処理が終了しキー待ちにもどる。もし
NOであれば、ステップKB17に移り、該ステップK
B17で削除キーの操作があったかを判別する。YES
であれば、図23の(a)に示す削除キー入力処理制御
を行う。各ステップの内容は以下の通りである。 18.1 現カーソル位置にインデントマークは存在す
るか? 18.2 現カーソル位置に対応するアドレスの内容を
スペースコードに変更する。 18.3 インデントブロックセーブ処理(16.2) 18.4 削除処理 18.5 インデントブロックリストア処理(16.
6)<注>この処理はカーソルが左右マージン上にある
時は機能しないものとする。
【0104】上述のステップにより以下の事を実行す
る。 18.1 カーソルがインデントマーク上にある時はス
テップ18.2カーソルがインデントマーク上にない時
はステップ18.3へ進む。 18.2 カーソルが存在する位置のコードをスペース
コードに変更する。 18.3 該インデントブロックのワークバッファへの
セーブを行う(16.2) 18.4 ワークバッファ上で削除処理を行う。 18.5 削除処理されたワークバッファWBの内容を
データバッファDBuFに戻す。
【0105】図23の(b)は上述の削除キーの入力処
理の例である。各処理に対して処理のステップ番号が付
されている。18.3のインデントブロックセーブ処理
と18.5のインデントブロックリストア処理について
はそれぞれステップ16.2、16.6で述べた。1
8.4がワークバッファWB上での削除処理である。
【0106】かかる削除処理は図24に示す如く3ステ
ップよりなり各ステップを以下に示す。 18.4.1 ワークバッファWB第4W(カーソル)
の示す内DATAを削除する。(即ち該位置以降に存在
するDATAをすべて1つずつ前につめる。 18.4.2 ワークバッファWB第4W(カーソル)
の値と第1W(DATALENGTH)の値とは等しい
か? 18.4.3 ワークバッファWB第1W(DATA
LENGTH)を1減ずる。
【0107】上述の各ステップにより以下の事を行う。 18.4.1 ワークバッファWB第4Wの示すワーク
バッファWB内のデータを削除し後続するデータをすべ
て前へつめる。 18.4.2〜18.4.3 削除処理においてはカー
ソルの位置は移動しないものとする。従ってワークバッ
ファWB第1W(DATA LENGTH)の値を、ワ
ークバッファ第4W(カーソル)の値より小さくならな
い範囲で1を減ずるものとする。
【0108】上述の処理が終了すれば、キー待ちに移
り、NOであれば、ステップKB19に移る。ステップ
KB19でインデント右移動キーかを判別する。もしY
ESであれば、図25の(a)に詳細を示すインデント
右移動キー入力処理を行う。 20.1 現カーソル位置をセーブする。 20.2 現カーソルは、インデントコードの位置にあ
るか? 20.3 インデントブロックセーブ処理(16.2) 20.4 インデントブロック横縮小処理 20.5 現カーソルよりさらに左方に別のインデント
コードが存在し、かつ、現カーソルより左方に隣接して
インデントブロックが二つ存在するか否かを調べる。
(インデントブロックを認識する方法はステップ16.
2.2.1に説明した通りである。) 20.6 (ステップ20.5で認識した二つのインデ
ントブロックの内右側は拡大する方のインデントブロッ
クであり、左側は、拡大を受けるインデンロブロックで
ある。)このステップでは、拡大するインデントブロッ
クの縦方向(行方向)の大きさと拡大を受けるインデン
トブロックの縦方向(行方向)の大きさとを比較し、前
者が後者より小さいかあるいは等しいかを調べる。又拡
大を受けるインデントブロックに有効データが存在して
いないことを調べる。両方とも成立するならばステップ
20.7に進む。否ならリターンする。(なお縦方向の
大きさを比較するにあたっては、各インデントブロック
の行数を調べ、かつ、その行数を比較することにより行
う。)又拡大を受けるインデントブロック内に有効デー
タがあるか否かを調べるにはステップ20.5で認識し
た拡大を受ける方のインデントブロック内の情報を先頭
から末尾まで1文字ずつ、有効情報(スペースコード以
外の情報)であるか否かを判断し、1つでも有効情報が
存在したなら該インデントブロックに有効データが存在
したと判断する。(なお本実施例ではスペースコード以
外のデータと判断したが、他のコード例えばデータがそ
こには存在しないことを示すコード以外のコードをすべ
て有効データと判断しても良い。本出願人が既に出願を
行っている文字処理装置(特願昭54−139556
号)における白紙コードもその一例である。) 20.7 現カーソルを第2のインデントブロックの最
左端に移す。 20.8 インデントブロックセーブ処理16.2) 20.9 インデントブロック横拡大処理 20.10 インデントブロックリストア処理(16.
6) 20.11 現カーソル位置をセーブしておいたカーソ
ル位置にもどす。 〈注〉インデントキーは左移動キー入力処理22は上記
説明で左と右をすべて逆にしたものと同じである。 〈注〉本処理はカーソルが左右マージン上にないものと
する。
【0109】上述の各ステップの目的は以下の通りであ
る。 20.1 現カーソルの位置をカーソル位置セーブレジ
スタにセーブする。 20.2 カーソルが文字上にある時はステップ20.
3へカーソルがインデント上にある時はステップ20.
5に進む。 20.3 インデントブロックをSAVEする(16.
2) 20.4 ワークバッファ上でインデントブロックの縮
小処理を行う。ステップ20.10へ進む。 20.5、20.6 カーソルが存在する位置より左側
にインデントブロックが二つ存在し、かつカーソルのす
ぐ左隣のインデントブロックの縦巾がさらに左のインデ
ントブロックの縦巾より小さく(等しくても良い)かつ
カーソルから1つ置いて左隣のインデントブロック内の
情報の中に有効データが存在しない時ステップ20.7
に進む。(換言するならば、拡大するインデントブロッ
クの縦サイズより拡大を受けるインデントブロックの縦
巾の方が大きく(等しくても良い)拡大を受けるインデ
ントブロック内に有効データが存在しなければステップ
20.7に進む。) 20.7 2つのインデントブロックの左側のインデン
トブロックの先頭文字の位置にカーソルを移動する。 20.8 インデントブロックセーブ処理(16.2) 20.9 ワークバッファ内でインデントブロックの拡
大処理を行う。 20.10 インデントブロックのリストア処理(1
6.6) 20.11 カーソル位置セーブレジスタCSRにセー
ブしておいたカーソル位置アドレスをカーソルレジスタ
CRにもどす。
【0110】図25の(b)はカーソルが文字の上にあ
る時の例である。この場合インデント右移動キーによっ
て、インデントブロックは横方向に縮小される。20.
4で示す図がワークバッファWBを使用してインデント
ブロックの縮小を行ったところの例である。
【0111】図26はカーソルがインデント上にある時
の例である。この場合インデント右移動キーによってイ
ンデントブロックは横方向に拡大される。20.9で示
す図がワークバッファWBを使用してインデントブロッ
クの拡大処理を行った例である。
【0112】上述のステップ20.4をさらに説明する
と、図27に示す如くステップから成る。 20.4.1 現カーソルが存在しているインデントブ
ロックを、現カーソルが存在している位置にインデント
コードを縦方向に書き込むことにより、縦方向に2等分
する。 20.4.2 現カーソルの位置を右方向に1つずら
す。 20.4.3 ワークバッファWB第2W(横巾)に新
しく出来た現カーソルが存在するインデントブロックの
横巾を記入する。 20.4.4 ワークバッファWB第4W(カーソル)
の値を1に変更する。 20.4.5 ワークバッファWB第5W(インデント
ブロック先頭桁)を新しく出来たインデントブロックの
先頭桁番号に変更する 〈注〉インデント左移動22.4の記述の内右を左と変
更する。
【0113】上述の各ステップについてさらに説明す
る。 20.4.1 まずデータバッファの該インデントブロ
ックを2等分することで縮小されたインデントブロック
の作成を行う。(縦方向に2等分したインデントブロッ
クの右側に今までそこにあった情報が押し込められるこ
とになる。) 20.4.2 現カーソルを右方向に1つずらす。その
位置が新しいインデントブロックの先頭文字の位置にな
る。 20.4.3〜 20.4.5 ワークバッファWBの
HEADER部のパラメータを新しいインデントブロッ
クのパラメータに置き換える。
【0114】上述のステップ20.9のインデントブロ
ック横拡大処理について図28を参照して説明する。 20.9.1 カーソルが存在しているインデントブロ
ックの右側端を決定しているインデントマークをすべて
スペースマークに変更する。 20.9.2 ワークバッファWB第2W(横巾)に新
しく拡大したインデントブロックの横巾を記入する。 のステップから成り、かくステップは以下のことを行
う。 20.9.1 まずデータバッファのインデントブロッ
クにおいて右側端のインデントマークを取り除くこと
で、インデントブロックの拡大を行う。 20.9.2 ワークバッファWB第2W(横巾)の値
を変更する。
【0115】上述の処理が終了すれば、キー待ちに移
る。もしNOであれば、ステップKB21のインデント
左キーかを判別する処理に移る。該ステップでYESな
らば、ステップKB22の入力処理に移る。
【0116】かかる処理は図25の(a)において、図
の説明文中の右と左とを入れ換え、かつ数字20を22
に置き換えたものと同等である。
【0117】またインデントブロック横縮小処理は巾図
27において図の説明文中の右と左とを入れ換え、かつ
数字20を22に置き換えたものと同等である。
【0118】さらにインデントブロック横拡大処理につ
いて述べる。
【0119】かかる処理は図29に示すステップから成
り、かくステップについて説明する。 22.9.1 カーソルが存在しているインデントブロ
ックの左側端を決定しているインデントマークをすべて
スペースマークに変更する。 22.9.2 ワークバッファWB第2W(横巾)に新
しく拡大したインデントブロックの横巾を記入する。 22.9.3 ワークバッファWB第5W(該インデン
トブロック先頭桁)を、新しく拡大したインデントブロ
ックの先頭桁に変更する。
【0120】上記各ステップは以下の目的を実行する。 22.9.1 まずデータバッファにおける該インデン
トブロックの左側端のインデントマークを取除くことに
よりインデントブロックの拡大を行う。 22.9.2、22.9.3 ワークバッファWB第2
W(横巾)、ワークバッファWB第5W(先頭桁)を新
しいインデントブロックに対応する値に変更する。
【0121】上述の処理が終了すれば、キー待ちに移
り、NOであれば、ステップKB23に移る。ステップ
KB23はインデント罫線変換キーかの判別ステップで
ある。かかるステップKB23でYESとなれば、ステ
ップ24のインデント罫線変換キー入力処理に移る。図
30の(a)はその詳細を示すフローである。各ステッ
プの内容を以下に示す。 24.1 カーソル位置セーブレジスタGSRに現カー
ソル位置即ちカーソルレジスタCRに対応する値をセー
ブする。 24.2 現カーソルが存在する1行手前の行までデー
タバッファの内容を順にすべてワークバッファWBに移
す。 24.3 現カーソルが存在する行のデータバッファの
内容を変換テーブル図3の(d)を参照し、インデント
コードを罫線コードに変換しながらワークバッファWB
に移す。 (変換テーブルを参照するにあたっては、変換しようと
しているインデントコードの上下左右に隣接して存在す
る文字コードあるいはインデントコードの状態により異
なることに注意しなければならない。具体的な対応は、
図3の(d)に示す通りである。
【0122】但し、上に隣接して存在するコードをチェ
ックする時は注意しなければならない。即ち周辺状況を
チェックする範囲は最初にカーソルが存在した行以降に
限るものとする。なお最初にカーソルが存在した行は、
カーソル位置セーブレジスタCSRにセーブされてい
る。) 24.4 カーソルレジスタの値に1行分の文字数の値
を加える。 24.5 カーソルレジスタの値が128を越えるなら
ステップ24.7に進む、否ならステップ24.6に進
む。 24.6 現カーソルが存在する行にインデントコード
が存在するならばステップ24.3に進む、否ならステ
ップ24.7に進む。 24.7 データバッファDBの内容でまだワークバッ
ファWBに移していないデータがあったらすべて順にワ
ークバッファに移す。 24.8 ワークバッファに蓄えたデータをすべて順に
データバッファDBに戻す。 24.9 カーソル位置セーブレジスタに蓄えられたカ
ーソル位置の情報に対応する値をカーソルレジスタCR
に蓄える。
【0123】図30の(b)は、インデント罫線変換の
例である。
【0124】上述の処理が終了したら、キー待ちにもど
る。もしNOであれば、ステップKB25に移る。ステ
ップKB25に於いて罫線インデント変換キーが操作さ
れたかを判別する。もしYESであれば、ステップKB
26に移り、図31に示す処理を行う。 26.1 現カーソルが存在する行以降の罫線コードを
すべて変更する。
【0125】上述のステップによりデータバッファ内に
おいて現カーソルが存在する行以降をすべて罫線コード
からインデントコードへの変更を行う。
【0126】罫線コードは、図3の(b)に示すように
11種のコード(B1〜B11)であるが、インデント
コードは1種のコード(α3)であり、一義的にインデ
ントコードを定めることができるため容易に変換を行う
ことができる。
【0127】上述の処理が終了すれば、キー待ちとな
る。もしNOであれば、ステップKB27に移る。ステ
ップKB27で、イニシャライズキーが操作されたかを
判別する。YESであればイニシャライズ処理を行う。
図31はそのフローを示す。
【0128】1.データバッファにすべてスペースコー
ドを埋める。
【0129】2.データバッファの左右マージン位置に
相当する場所に左マージンコード、右マージンコードを
埋める。
【0130】上述のステップによりデータバッファに初
期値を設定することにより、CRT上に表示される文字
列のイニシャライズを行う。これにより左右マージンが
CRT上に表示され残りはすべてスペースが表示され
る。すべての入力はまずこのINTキーを押すことによ
り始めることができる。
【0131】上述の処理が終了すれば、キー待ちとな
る。もしNOであれば、ステップKB29に移る。ステ
ップKB29はプリントキーが操作されたかを判別す
る。もしYESであれば、図33に示すプリントキー処
理のステップKB30に移る。かかるステップは以下の
処理を行う。
【0132】データバッファの内容をプリンタに出力す
る。
【0133】上述の処理によりデータバッファの内容を
すべてプリントアウトする。縦横プリントの機能を持っ
ているとなお望ましい。
【0134】上述の処理が終了すれば、キー待ちとな
る。もしNOであれば、ステップKB31に移る。ステ
ップKB31はバックスペースキーBSが操作されたか
否かを判別する。もしYESであれば、図37の(a)
に示すバックスペースキー処理のステップKB32に移
る。かかるステップは以下の処理を行う。 32.1 カーソルレジスタCRをデクリメントする。 32.2 カーソルレジスタCRは0以下であるならス
テップ32.3に進む。 否なら32.4に進む。 32.3 カーソルレジスタCRに128をセットす
る。リターンする。 32.4 カーソルが存在している位置に対応するデー
タバッファ内の内容が、右マージンコードであるならば
リターンする否ならステップ32.5に進む。 32.5 カーソルが存在している位置に対応するデー
タバッファ内データの内容が、左マージンコード、イン
デントコードのいずれでもなければリターンする。否な
らステップ32.6に進む。 32.6 カーソルが第1行目に存在しているならリタ
ーンする。否ならステップ32.7に進む。 32.7 カーソルレジスタの値から1行分の文字数の
値(本実施例では16)を減じる。このことによりカー
ソルを1行上に上げる。 32.8 カーソルレジスタの値をインクリメントしカ
ーソルを1つ右にずらす。 32.9 カーソルが存在している位置に対応するデー
タバッファの内容がインデントコード又は右マージンコ
ードであるならステップ32.10に進む。否ならステ
ップ32.8に進む。 32.10 カーソルレジスタの値を1減じることによ
りカーソルを左方に1つずらす。
【0135】各ステップの意味をさらに述べる。 32.1 カーソルを左シフトするためにカーソルレジ
スタCRから1減じる。 32.2、32.3 もしカーソルレジスタの値が0以
下であるならカーソルがデータバッファ枠内をはみ出す
ことになるので、データバッファの末尾にカーソルがく
るようにする。 32.4 もしカーソルが右マージン位置に来たとする
なら、そのまま処理を終了する。 32.5 カーソルの位置のデータがインデントコード
あるいは左マージンコードでないなら処理を終了する。 32.6 カーソルが1行目に存在していたならその上
の行はもはや存在しないので処理を終了する。 32.7〜32.10 今カーソルが存在している前の
行における該当インデントブロックの末尾にカーソルを
移動させる。
【0136】以上の処理を終了するとキー待ちになる
が、もしNOであるならやはりキー待ちにもどる。
【0137】このように、本発明はプログラムを実行す
ることにより達成するものであるが、システム或いは装
置がそのプログラムを有し、本発明が達成される場合に
も適用できることは言うまでもない。
【0138】1.本実施例においては、文字列の途中に
出現するスペースコードは有効データ見なし文字列の最
後に連続して続くスペースコードは無効データあるとい
う解釈により、文字処理を実行した。しかしながら、ス
ペースコードを含む文字コードをすべて有効データとし
て文字処理を行ってもよい。
【0139】又他の例として無効データを表現する特殊
コードを新たに設け、そのコード以外はすべて有効デー
タであると判断し、文字処理を行っても良い。又この特
殊コードを本実施例で説明したスペースコードと同じ役
割をはすようにさせても良い。
【0140】2.本実施例においては、インデントブロ
ックの横方向の拡大を行うにあたって次の二つのことを
条件とした。即ち一つは拡大するインデントブロックの
縦方向の大きさと拡大を受けるインデントブロックの縦
方向の大きさとを比較し、前者の大きさが後者の大きさ
より小さいか又は等しいことである。他の一つは拡大を
受けるインデントブロック内に有効データが存在してい
ないことである。この後者の条件を次のように緩和して
も本発明の主旨を損ねるものではない。
【0141】即ち拡大を受けるインデントブロックの上
から特定行数だけ有効データが存在しなければ良いもの
とする。ここで特定行数とは拡大するインデントブロッ
クの縦巾の行数分のことである。
【0142】3.本実施例においては、インデントブロ
ックの領域定義を有効データがそこに存在している時も
存在していない時も同一と見なした。しかしながら本実
施例で説明したインデントブロックの内、有効データが
存在している行あるいはカーソルが存在している行が連
続して続く範囲のみをインデントブロックと考えても本
発明の主旨を損ねるものではない。
【0143】
【発明の効果】以上詳述した様に、本発明により、固定
文字を含む文書情報に対して編集を行う場合、編集処理
に先立って、固定文字の位置を把握することができ、編
集処理にあたり、固定文字の位置を保持することができ
る文字処理方法を提供することが可能となった。
【図面の簡単な説明】
【図1】本発明による1実施例を示すブロック図。
【図2】インデントブロックを説明する図。
【図3】インデントマークと罫線パターンの変換を説明
する図。
【図4】枠組の変更を説明する図。
【図5】枠組の変更を説明する図。
【図6】枠組の変更を説明する図。
【図7】キー処理を示す制御手順を示す図。
【図8】キャリッジリターン処理を示す図。
【図9】インデント入力処理を示す図。
【図10】オーバライトキー入力処理を示す図。
【図11】挿入キー入力処理を示す図。
【図12】カーソルキー入力処理を示す図。
【図13】文字キー入力処理、文字のオーバライト処理
を示す図。
【図14】インデントブロックセーブ処理、データの流
れを示す図。
【図15】オーバライト処理を示す図。
【図16】挿入処理を示す図。
【図17】インデントブロックリストア処理を示す図。
【図18】インデントブロック拡大処理、データの流れ
を示す図。
【図19】行挿入処理、データの流れを示す図。
【図20】スペース行移動処理、データの流れを示す
図。
【図21】インデントブロック縮小処理を示す図。
【図22】データバッファ書き込み処理、データの流れ
を示す図。
【図23】削除キー入力処理、文字の削除のデータの流
れを示す図。
【図24】削除処理を示す図。
【図25】インデント右移動キー入力処理、データの流
れを示す図。
【図26】データの流れを示す図。
【図27】インデントブロック横縮小処理を示す図。
【図28】インデントブロック横拡大処理を示す図。
【図29】インデントブロック横拡大処理を示す図。
【図30】インデント罫線変換キー入力処理、データの
流れを示す図。
【図31】罫線インデント変換キー入力処理、データの
流れを示す図。
【図32】イニシャライズ処理を示す図。
【図33】プリントキー入力処理を示す図。
【図34】インデントブロックの縮小を示す図。
【図35】インデント罫線切換えを示す図。
【図36】インデントブロックの拡大を示す図。
【図37】バックスペースキー処理の手順、バックスペ
ース処理を説明する図。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 固定文字を含む文書情報に対する挿入、
    削除等の文書編集の指示がある場合、 前記指示に基づく、編集処理に先立って前記固定文字の
    位置を把握し、 前記編集処理にあたり、把握された前記固定文字の位置
    が保持される様に処理を行うことを特徴とする文字処理
    方法。
JP5032050A 1993-02-22 1993-02-22 文字処理方法 Pending JPH05250352A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5032050A JPH05250352A (ja) 1993-02-22 1993-02-22 文字処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5032050A JPH05250352A (ja) 1993-02-22 1993-02-22 文字処理方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP56010713A Division JPS57125482A (en) 1981-01-27 1981-01-27 Character processing device

Publications (1)

Publication Number Publication Date
JPH05250352A true JPH05250352A (ja) 1993-09-28

Family

ID=12348042

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5032050A Pending JPH05250352A (ja) 1993-02-22 1993-02-22 文字処理方法

Country Status (1)

Country Link
JP (1) JPH05250352A (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5543633A (en) * 1978-09-22 1980-03-27 Toshiba Corp Document production device
JPS641819A (en) * 1987-06-23 1989-01-06 Daicel Chem Ind Ltd Soil cement continuous wall method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5543633A (en) * 1978-09-22 1980-03-27 Toshiba Corp Document production device
JPS641819A (en) * 1987-06-23 1989-01-06 Daicel Chem Ind Ltd Soil cement continuous wall method

Similar Documents

Publication Publication Date Title
JPH0143338B2 (ja)
US5276792A (en) Word processor permitting modification of a preset frame
JPH05250352A (ja) 文字処理方法
JPH0324701B2 (ja)
JPH0361197B2 (ja)
JPH0361198B2 (ja)
JPH0143339B2 (ja)
JPH0254588B2 (ja)
JPH0427586B2 (ja)
JPH0254589B2 (ja)
JPH04218866A (ja) 文書処理装置
JPH0427585B2 (ja)
JPH04218865A (ja) 文字処理方法
JPH0254590B2 (ja)
JPS58129676A (ja) 文字処理装置
US5930812A (en) Word processing apparatus which adjusts character output position
JP2572441B2 (ja) 帳票固有図形作成装置
JP3035126B2 (ja) 情報処理装置
JPH038065A (ja) 文字処理装置
JPH0573548A (ja) 文書整形装置
JP2698348B2 (ja) 文字処理装置
JPS59229684A (ja) 文字処理装置
JP2001043214A (ja) 自動作表方法
JPH0815795B2 (ja) プリンタの印刷制御方式
JPH0749851A (ja) 文書整形装置