JPH05342013A - 文字処理方式 - Google Patents

文字処理方式

Info

Publication number
JPH05342013A
JPH05342013A JP15166092A JP15166092A JPH05342013A JP H05342013 A JPH05342013 A JP H05342013A JP 15166092 A JP15166092 A JP 15166092A JP 15166092 A JP15166092 A JP 15166092A JP H05342013 A JPH05342013 A JP H05342013A
Authority
JP
Japan
Prior art keywords
character
read
input
buffer
storage device
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.)
Withdrawn
Application number
JP15166092A
Other languages
English (en)
Inventor
Yoshio Fukuhama
美穂 福濱
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.)
KOBE NIPPON DENKI SOFTWARE KK
NEC Software Kobe Ltd
Original Assignee
KOBE NIPPON DENKI SOFTWARE KK
NEC Software Kobe Ltd
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 KOBE NIPPON DENKI SOFTWARE KK, NEC Software Kobe Ltd filed Critical KOBE NIPPON DENKI SOFTWARE KK
Priority to JP15166092A priority Critical patent/JPH05342013A/ja
Publication of JPH05342013A publication Critical patent/JPH05342013A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【目的】 文字処理が高速に行なえるようにし、バッフ
ァの内容を記憶装置に反映してもデータの内容が書き換
わることがなく、読み戻し以後の文字の解釈を誤らせて
しまうことはないようにする。 【構成】 記憶装置1はデータを格納する。入出力バッ
ファ2は記憶装置からデータを入力し、また記憶装置に
出力する際に用いる。文字バッファ3は読み戻された文
字を格納する。読み戻しフラグ4は読み戻しが行なわれ
たかどうかを判定するためのものである。解析部5は読
み込んだ文字列を解析する。解析部5では、入出力部6
から1文字ずつ文字を受け取って解析を行なってトーク
ン(文字列)を切り出す。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、文字処理方式に関し、
特に、その解釈のために1文字先読みする場合にその読
み込んだ文字をもう一度読み込むために読み戻す文字処
理方式に関する。
【0002】
【従来の技術】記憶装置に格納されたデータの解析を行
なうには、入出力バッファ(記憶装置へのアクセス回数
を減らすために一度に多くの文字を読み込んで、そねを
保持しておくための領域として入出力バッファを備えて
いる)に1入出力バッファ分データを入力し、そこから
順に1文字ずつ読み込み文字列を解析していくが、1つ
の文字列の終りは終りの次の1文字を読んで、それが区
切り文字であることを確認して始めて分かる。たとえ
ば、図5のようなデータを解釈する場合、まず最初に
“x”という1文字を読み込む。英文字は区切り文字で
はないのでこの文字列が1文字で終るのか後ろに文字が
続くのかはこの時点では分からない。つぎの1文字を読
み込むと“=”という文字は区切り文字なので“x”は
1文字の文字列であることがわかる。このときには
“=”を読み込んでしまっているが、これは読み終えた
“x”とは関係がなく、“=”は次の文字列の先頭の1
文字にあたるので、次の文字列を処理するときに文字列
の先頭から読み込めるように読み込む前の状態に戻す必
要がある。この1文字を戻す処理を「読み戻し」と呼
ぶ。
【0003】あるシステムにおいて、入出力バッファに
直接読み込んだ1文字を読み戻すためには、入出力バッ
ファの現在の入力位置から読み込んだ文字のバイト数分
(日本語文字のように複数バイトで文字が構成されてい
ることもあるので)入力位置を戻し、その位置に読み込
んだ文字を書き込み、もう一度その文字のバイト数分入
力位置を戻す処理が必要になる。
【0004】コンピュータに入力されるデータが、1文
字が1バイトで表せない日本語文字や韓国語文字などを
扱う場合1文字が1バイト以上になる。扱うデータがこ
のような多バイト文字のとき、読んだ文字が入出力バッ
ファの終端にまたがる場合、その文字を読み戻す処理は
複雑になる。
【0005】入出力バッファの最後の1バイトから始ま
る多バイト文字を読み込むとその読み込んだ1バイト分
だけではどの文字であるか判定できないためさらにもう
1バイト分文字を読み込む必要があり、そのため多バイ
ト文字を読み込だ時点で入出力バッファの内容は次のデ
ータによって更新されてしまうことがある。この場合1
文字を読み戻すためにはまず入力位置を戻すために入出
力バッファに前のデータを記憶装置から入力し、入出力
位置を最後の1バイトに位置付ける。その位置に読み戻
す文字の1バイト目を書き込み、次の1バッファ分のデ
ータを記憶装置から入力する。その先頭に読み戻す文字
の2バイト目以降を書き込み、再び前のデータを入出力
バッファから入力し、入出力位置を最後に1バイトに位
置づけるという操作が必要である。
【0006】
【発明が解決しようとする課題】記憶装置と入出力バッ
ファ間の入出力は記憶装置が磁気ディスク装置などアク
セス時間が遅いものであれば時間がかかる。また、読み
戻す文字が指定できるシステムにおいて入出力バッファ
に直接読み戻すと、バッファの内容が記憶装置に反映さ
れてデータの内容が変更されるため、もし本来ならば、
日本語文字のような多バイト文字を読み戻すべきところ
に英文字のような1バイト文字を読み戻すと、その読み
戻した文字以降が正しく日本語文字の並びと解釈できな
くなってしまうという問題もある。例えば、図6のよう
なデータを解釈するとき“日”という文字を読み込んだ
時点で“a”という文字を読み戻すと入出力バッファの
内容は図7のようになる。これを記憶装置に反映すると
データ自体が変更されてしまい、以後このデータを解析
するときは読み戻した“a”は英文字と認識できるが、
次の1バイトはそれだけでは文字と認識できないため、
さらに次の“本”という文字の1バイトを読み込み認識
しようとし、同じように以降のデータも正しく認識され
ない。
【0007】
【課題を解決するための手段】本発明の文字処理方式
は、記憶装置からデータを読み込むための入出力バッフ
ァと、読み戻した1文字を記憶する文字バッファと、読
み戻しが行なわれたどうかを判定するための読み戻しフ
ラグを備え、文字の読み戻しが行なわれた場合にその文
字を前記文字バッファに格納することを特徴とする。
【0008】
【実施例】次に、本発明について図面を参照して説明す
る。
【0009】図1は本発明の一実施例を示す説明図、図
2はこの実施例の読み込みおよび読み戻しの動作を説明
するフローチャート、図3はこの実施例の読み込みの動
作を説明するフローチャート、図4はこの実施例の読み
戻しの動作を説明するフローチャートである。
【0010】図1を参照すると、記憶装置1はデータを
格納するもの、入出力バッファ2は記憶装置からデータ
を入力し、また記憶装置に出力する際に用いるもの、文
字バッファ3は読み戻された文字を格納するもの、読み
戻しフラグ4は読み戻しが行なわれたかどうかを判定す
るためのもの、解析部5は読み込んだ文字列を解析する
ものである。解析部5では、入出力部6から1文字ずつ
文字を受け取って解析を行なってトークン(文字列)を
切り出す。
【0011】まず図2を参照して、初期化処理について
説明する。読み戻しフラグはオフに設定し(ステップS
201)、文字バッファは0でクリアする(ステップS
202)。まず記憶装置1からデータを入出力バッファ
2に入力し(ステップS203)、入力が終了したかど
うか調べ(ステップS204)、終了している場合はす
でに記憶装置1から入力すべき文字が存在しないことを
意味するので、処理を終了する。もし入力文字があれ
ば、入出力バッファ2の文字入力位置が終端したかどう
か調べ(ステップS205)、文字入力位置が終端に来
ていたら、記憶装置1から新しいデータを入力する(ス
テップS203)動作から繰り返す。文字入力位置が入
出力バッファの終端に位置していないときは読み込み動
作により1文字を読み込む(ステップS206)。そし
て読み込んだ1文字がトークンの切れ目を示す区切り文
字に当たるかどうか調べ(ステップS207)、区切り
文字でなければステップS205からの読み込み動作を
繰り返す。もし、読み込んだ1文字がトークンの切れ目
の区切り文字である場合は、その文字は次の解析処理に
必要なので読み戻し動作を行ない(ステップS20
8)、それまでに読み込んだ文字列を解析部5に渡しト
ークンとして解析する(ステップS209)。入力デー
タが終了するまで、ステップS204からステップS2
09までの処理を繰り返す。
【0012】次に図3を参照して、読み込み動作につい
て説明する。読み戻しが行なわれたかどうかを読み戻し
フラグ4によって調べる(ステップS301)。読み戻
しフラグがオフであれば読み戻しが行なわれていないの
で、入出力バッファ2の入力文字位置は読み込もうとし
ている文字に位置付けられているのでその位置から1バ
イト読み込む(ステップS302)。読み込んだデータ
が1バイト文字かどうか調べ(ステップS303)、1
バイト文字なら読み込み動作を終了する。1バイト文字
でなければ多バイト文字と判断して以降のバイトを繰り
返し読み込み(ステップS302〜303)、読み終れ
ば動作を終了し、その文字を返却する。
【0013】もし読み戻しフラグがオンになっており読
み戻しが行なわれていたら、文字バッファ3に読み戻さ
れた文字が格納されているので文字バッファ3から1文
字読み込み(ステップS304)、読み戻しフラグ4を
オフにし(ステップS305)、読み込んだ文字を返却
値として処理を終わる。読み戻しが行なわれていると、
入出力バッファ2の入力文字位置は読み込もうとしてい
る次の文字に位置付けられているので、次の文字はその
位置から読み込むことができる。文字バッファから読み
込むときは、文字バッファ3に格納されているのは1バ
イト文字、多バイト文字にかかわらず1文字分なので、
1バイト文字か2バイト文字かを意識する必要はなく、
文字バッファから読み込んだ1文字をそのまま返す。読
み込み時に、入出力バッファ2から読み込むときは1バ
イト文字と2バイト文字が混在しているので、常に文字
が何バイトから構成されているかを認識する必要がある
が、読み戻した文字を文字バッファから読み取るときは
文字として認識されたものを必ず読むので、それが1バ
イト文字か多バイト文字かという判定は行なわなくても
よい。その分、処理の高速性が得られることになる。
【0014】図4によって読み戻し動作について説明す
る。まず、読み戻しフラグ4を調べ(ステップS40
1)、読み戻しフラグ4がオンになっていればすでに文
字バッファ3に読み戻す文字が格納されていると判断し
て何もしないで終了する。これは連続して複数の文字を
読み戻すことができないことを意味する。プログラム言
語の仕様としては1文字を読み戻すことを可能にするこ
とを要求されることは当然だが、2文字、3文字前に読
み込んだ文字までをも読み戻すことを必須とされること
はない。したがって仕様的には本実施例に問題はない。
ただし、読み戻す文字をどの1文字にするかは各システ
ムの解釈上の問題となる。本実施例は最も以前に読み戻
したものが優先されるが、最も最近に読み戻したものを
優先するようにもできる。この場合、ステップS401
で読み戻しフラグ4のチェックを行なわずに常に文字バ
ッファへの上書きをするようにすればよい。
【0015】もし読み戻しフラグ4がオフなら、読み戻
しフラグ4をオンにして(ステップS402)、読み戻
す文字を文字バッファ3に格納し(ステップS40
3)、動作を終了する。文字バッファに読み戻す際には
1バイト文字か多バイト文字かの区別を考慮する必要が
なくその上、入出力バッファの読み戻す位置の取得、読
み戻した後の読み込むための文字位置の更新作業が不要
になり、読み戻し動作が高速になる。入出力バッファ2
の入力文字位置は変更されず読み戻す文字の次の文字に
位置付けられたままになっているが、次に読み込みを行
なうときには必ず文字バッファ3に格納された文字を読
み込み、そのときに入出力バッファ2の文字入力位置を
進めないので入出力バッファ2の入力文字位置は変更す
る必要がない。
【0016】また、文字を文字バッファに格納するとき
は1文字として読み戻す。したがって、それが1バイト
文字であるか多バイト文字であるかの区別を行なわずに
文字バッファへと格納する。このために、次の入力が行
なわれるときは1文字が取得できることになり、上述し
たような読み込み時の効率が得られる。
【0017】また、読み戻す文字を指定する場合、読み
戻し時に読み戻す文字を直接入出力バッファに書き込む
ときは、入出力バッファの内容を更新する際に現在の入
出力バッファの内容を記憶装置1に反映するので、読み
戻しによって入出力バッファ2の内容が変更されている
ときは、今度読み込むデータ自体が書き換わってしまっ
ているので、そのため本来多バイト文字が格納されてい
たところに1バイト文字を読み戻すと多バイト文字の2
バイト目以降は文字と認識できなくなり以後の文字の並
びが解釈できなくなることがあったが、文字バッファ3
に読み戻すときは、入出力バッファ2の内は変更され
ず、記憶装置1上のデータを変更することもなく、後の
読み込みで文字の並びが認識できなくなるという問題も
回避できる。
【0018】
【発明の効果】以上説明したように、本発明によれば、
記憶装置の入出力バッファ間の入出力を行なうことな
く、読み戻しを行なえるようになるので文字処理が高速
に行なえるようになる。また、読み戻す文字が指定でき
るようなシステムにおいても、入出力バッファに直接読
み戻さないのでバッファの内容を記憶装置に反映しても
データの内容が書き換わることがなく、読み戻し以後の
文字の解釈を誤らせてしまうことはない。
【図面の簡単な説明】
【図1】本発明の一実施例を示す説明図である。
【図2】図1の実施例の読み込みおよび読み戻しの動作
を説明するフローチャートである。
【図3】図2の実施例の読み込みの動作を説明するフロ
ーチャートである。
【図4】図2の実施例の読み戻しの動作を説明するフロ
ーチャートである。
【図5】読み戻しを説明するための入出力バッファを表
した図である。
【図6】読み戻しの問題点を説明するための入出力バッ
ファを表した図である。
【図7】読み戻しの問題点を説明するための入出力バッ
ファを表した図である。
【符号の説明】
1 記憶装置 2 入出力バッファ 3 文字バッファ 4 読み戻しフラグ 5 解析部 S201 読み戻しフラグ初期設定ステップ S202 文字バッファ初期設定ステップ S203 入出力バッファ入力ステップ S204 入力終了判定ステップ S205 入出力バッファ終端判定ステップ S206 読み込み動作ステップ S207 区切り文字判定ステップ S208 読み戻し動作ステップ S209 文字列解析ステップ S301 読み戻しフラグ判定ステップ S302 1バイト入力ステップ(文字バッファか
ら) S303 終了判定ステップ S304 1文字入力ステップ(文字バッファから) S305 読み戻しフラグオフ設定ステップ S401 読み戻しフラグ判定ステップ S402 読み戻しフラグオン設定ステップ S403 1文字出力ステップ(文字バッファに)

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 記憶装置からデータを読み込むための入
    出力バッファと、読み戻した1文字を記憶する文字バッ
    ファと、読み戻しが行なわれたどうかを判定するための
    読み戻しフラグを備え、文字の読み戻しが行なわれた場
    合にその文字を前記文字バッファに格納することを特徴
    とする文字処理方式。
JP15166092A 1992-06-11 1992-06-11 文字処理方式 Withdrawn JPH05342013A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP15166092A JPH05342013A (ja) 1992-06-11 1992-06-11 文字処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP15166092A JPH05342013A (ja) 1992-06-11 1992-06-11 文字処理方式

Publications (1)

Publication Number Publication Date
JPH05342013A true JPH05342013A (ja) 1993-12-24

Family

ID=15523437

Family Applications (1)

Application Number Title Priority Date Filing Date
JP15166092A Withdrawn JPH05342013A (ja) 1992-06-11 1992-06-11 文字処理方式

Country Status (1)

Country Link
JP (1) JPH05342013A (ja)

Similar Documents

Publication Publication Date Title
US5140521A (en) Method for deleting a marked portion of a structured document
US7508985B2 (en) Pattern-matching system
CN1153169C (zh) 用于识别通过触摸屏输入的字符的装置及其方法
JPH03266039A (ja) フリーフォーマットデータリンク処理方式
JPH0525342B2 (ja)
JPH08212106A (ja) システム試験支援装置及びシステム試験支援方法
JPH05342013A (ja) 文字処理方式
JPH02208716A (ja) 文字図形出力装置
JPS5998362A (ja) メモリカセツトの識別装置
JP3459049B2 (ja) 文字列検索方法およひ装置
JP2731047B2 (ja) プログラムのオペランドチェック方式
US7765502B1 (en) ASIC functional specification parser
JP3210183B2 (ja) データ圧縮方法及び装置
JP2606658B2 (ja) 論理シミュレータおよび制御方法
JPH11161666A (ja) ドキュメントデータ検索方法および装置、並びにドキュメント編集装置
JP2720770B2 (ja) 自動事後処理方式
JP3061880B2 (ja) 文章入力装置
JP3387582B2 (ja) 文字処理装置
JPS6125168B2 (ja)
CN114281257A (zh) 一种光盘文件的快速预览方法、计算设备及存储介质
JP3237709B2 (ja) 文書処理装置及び文書処理方法
JPH06162083A (ja) 文字列検索装置
JPH10187699A (ja) 文書処理装置及びその方法
JPS6036614B2 (ja) 情報処理装置
JPH03186933A (ja) 言語処理システムのシンボル処理方式

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 19990831