Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP2990701B2 - ファイル編集方式 - Google Patents
[go: Go Back, main page]

JP2990701B2 - ファイル編集方式 - Google Patents

ファイル編集方式

Info

Publication number
JP2990701B2
JP2990701B2 JP20165289A JP20165289A JP2990701B2 JP 2990701 B2 JP2990701 B2 JP 2990701B2 JP 20165289 A JP20165289 A JP 20165289A JP 20165289 A JP20165289 A JP 20165289A JP 2990701 B2 JP2990701 B2 JP 2990701B2
Authority
JP
Japan
Prior art keywords
file
input
read
updated
record
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.)
Expired - Fee Related
Application number
JP20165289A
Other languages
English (en)
Other versions
JPH0363820A (ja
Inventor
研司 松井
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.)
NEC Corp
Original Assignee
Nippon Electric Co 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 Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP20165289A priority Critical patent/JP2990701B2/ja
Publication of JPH0363820A publication Critical patent/JPH0363820A/ja
Application granted granted Critical
Publication of JP2990701B2 publication Critical patent/JP2990701B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はファイル編集方式に関する。
〔従来の技術〕
ここでは、入力されたファイルを編集するプログラム
をエディタと呼ぶ。
一般的なエディタ2は、第6図に示すようにファイル
1をファイル入力部3で入力し、ファイルの内容を画面
出力部6によってコンソール9に出力する。このコンソ
ール9からの操作指示入力を操作指示入力部4から入力
し、編集部5で編集処理を行う。また、編集部5の編集
結果に従って、ファイル出力部7で更新結果を更新結果
ファイル8に出力する。このエディタの走行するホスト
マシン21は、第7図に示すように、ユーザの入力するエ
ディタの操作指示コマンドを受付け、編集結果を表示す
るコンソール22、エディタの処理を行う演算装置23、お
よびファイルを格納する外部記憶装置24をもつ。
エディタは、ファイルを論理的に管理する。言語処理
プログラム用のソース・ファイルを編集するエディタで
は、ファイルを行単位に管理している。行の区切りとし
ては、特定の終了文字(例えばラインフィード文字)ま
でを行とする方式や、ファイル中で各行の長さを管理す
る方式などがある。また、言語処理プログラム用のソー
ス・ファイルでは文法により、言語処理プログラムの指
示情報が表される。
従来のエディタでは、入力ファイルのもつ指示情報に
関係なく、起動されると入力ファイルを読込み、操作指
示入力に応じ全内容をコンソールに表示する。
〔発明が解決しようとする課題〕
課題の説明にあたり、ファイルとして言語処理プログ
ラム用のソース・ファイルを例にして説明する。言語処
理プログラム用のソース・ファイルを編集するエディタ
では、ファイルを行単位に管理するものとし、また指示
情報は言語処理プログラムの文法により表示されること
とする。
言語処理プログラムでは、プログラム開発時にディバ
グ情報を埋込んだり、複数用途のプログラムの管理の一
本化のために、条件コンパイルという機能をもつものが
多い。これは、あらかじめ言語処理プログラムで規定さ
れた文法を表す指示子に従ってファイルの特定の行のみ
を入力する機能である。例えばC言語処理プログラムで
は、#i−fdef,#endifなどの指示により、ファイル中
の特定の行を判別し、特定の行のみを入力する。
従来のエディタでは、ファイル中にこうした指示子が
あった場合にもこの指示子を認識しないため、エディタ
は言語処理プログラムが読込みを行わない行に対しても
ホストマシンのコンソールに対しファイルの内容を表示
する。このため、指示子が使われている場合、言語処理
プログラムが読込む箇所を判別した上でファイル中の編
集したい箇所を見つけるのに時間がかかったり、言語処
理プログラムが読込まない箇所を誤って編集したりし
て、開発効率が低下するという問題点があった。
本発明の目的は、入力ファイルのもつ指示情報に従っ
て、入力ファイルの特定部分のみをコンソールに表示で
きるようにしたファイル編集方式を提供することにあ
る。
〔課題を解決するための手段〕
本発明の機能は、ファイルを外部記憶装置から入力す
る入力手段、コンソールからの操作指示情報を入力する
キー入力手段、前記操作指示情報をもとにファイルを編
集する手段、この編集結果をコンソールに出力する出力
手段および前記編集結果によって更新されたファイルを
外部記憶装置に出力するファイル出力手段を有するファ
イル編集方式において、入力ファイルのもつ指示情報に
従ってファイルの特定部分を読込む処理部と、前記特定
部分の読込み内容を前記コンソールに表示する処理部
と、前記4特定部分の読込み部の更新結果と読込みを行
っていない部分とを結合して更新ファイルを前記外部記
憶装置に出力する処理部とを設けることにより、入力フ
ァイルがもつ指示情報に従ってこの入力ファイルの特定
部分のみを前記コンソールに表示することを特徴とす
る。
〔実施例〕
次に、図面を参照して本発明を説明する。本実施例
は、入力ファイルとしてC言語処理プログラム用のソー
ス・ファイルを用い、そのファイル編集を行うプログラ
ムとしてファイルを行単位に管理するエディタを用い、
また指示情報はC言語処理プログラムの文法により表さ
れることとする。
C言語では、#define指示子のオペランドに名標を記
述することにより名標を定義する。この#define指示子
とオペランドは空白で区切られ、また特定の行群の範囲
付けを#ifdef指示子と#endif指示子で指定する。これ
ら指示子の文法を第1表に示す。
#ifdef指示子のオペランドとして名標を記述し、こ
の名標が定義されていない場合または値0が定義されて
いる場合、これ以降の行を#endif指示子を読込むまで
無視する。C言語処理プログラム用のファイルの例を第
2表に、このファイルのうちC言語プログラムが処理対
象とする部分を第3表に示す。以下の説明では本発明の
要点を鮮明にするため、#ifdef指示子はネスティング
しないものと仮定する。
第 2 表 #define DEBUG 0 b=a; #ifdef DEBUG printf(“a=%d\n",a); #endif c=b; 第 3 表 #define DEBUG 0 b=a; c=b; 第1図は本発明の一実施例の構成を示すブロック図で
ある。編集部には、入力ファイルの持つ文法に従って入
力ファイル内の特定行を読み込む特定部分読み込み部11
0と、前記特定行を表示する特定部分表示処理部111と、
非読み込み部と更新部分の結合する更新結果ファイル作
成部112をもっている。本実施例ではエディタの使用時
#define演算子を追加したり、#define演算子のオペラ
ンドをエディタ使用者が変更しないものとする。これは
エディタ使用上の制限事項とする。前記追加や変更をエ
ディタ使用者が行いたい場合、エディタ使用者は、#de
fine演算子を追加したり、#define演算子のオペランド
を変更後エディタの使用を一旦終了させ、エディタを再
起動させれば前記追加や変更は可能である。
次に、本実施例で従来例に対し追加した特定部分読込
み部の処理を、第2図のフローチャートにより説明す
る。ここでは、入力ファイルを順方向にのみ読込むもの
とする。入力ファイルをランダムに読込む場合には、入
力ファイルの読込んだ位置に対応するようにワーク・フ
ァイルを作成する処理を編集部5が行えばよい。このラ
ンダムに読込んで入力ファイルの読込んだ位置に対応す
るようにワーク・ファイルを作成する処理は、従来のエ
ディタで一般的である。
本実施例の特定部分読込み部の処理として、まずステ
ップ101で入力ファイル、更新ワーク・ファイルおよび
非更新ワーク・ファイルをオープンする。次に、ステッ
プ102で1行読み込み、ステップ103で入力ファイルから
行がなくなるまで以下の処理を繰り返す。読込んだ行の
先頭が#define指示子であるかステップ104で比較し、
#define指示子と一致した場合は、次にステップ105で
名標の値が0かの判定をする。その値が0でない場合#
define指示子のオペランドに記述された名標をエディタ
内部の名標テーブルに登録し(ステップ106)、次に1
行読み込む(ステップ102)。
入力ファイルの最後まで読込み、名標テーブルへの登
録が終わったら、ステップ114で入力ファイルの先頭か
ら再び読込む準備をする。次に、115で1行読込み、入
力ファイルから行がなくなるまで以下の処理を繰り返す
(116)。
読込んだ行の先頭が#ifdef指示子であるか否かの判
定をステップ108で行い、#ifdef指示子と一致した場
合、これらの指示子のオペランドに記述された名標に関
し、前記名標テーブルを検索し、一致する名標があるか
否かを調べる(ステップ109)。名標がある場合その行
以降を#endif指示子があるまで更新ワーク・ファイル
に行の内容を1行1レコードとして出力する(ステップ
110)。一致する名標がない場合、更新ワーク・ファイ
ルに非更新部管理ブロック番号を示す(この場合1)レ
コードをステップ111で出力する。
一方、非更新ワーク・ファイルにまず、非更新部管理
開始ブロック番号を示す(この場合1)レコードをステ
ップ112で出力する。次に名標があった行以降を#endif
演算子があるまで非更新ワーク・ファイルに行の内容を
1行1レコードとして出力し、非更新部管理終了レコー
ドを出力する(113)。ステップ108にて読込んだ行の先
頭が#ifdef指示子でない場合、更新ファイルに行の内
容を1レコードをステップ107として出力し、次にステ
ップ115で1行を読込む。
こうして、第1表の入力ファイルに対して生成される
更新ワーク・ファイル/非更新ワーク・ファイルの内容
を第4表(a),(b)に示す。
第4表(a)更新ワークファイル #define DEBUG 0 b=a; 非更新部管理レコード(1) c=b; 第4表(b)非更新ワークファイル 非更新部管理開始レコード(1) #ifdef DEBUG printf(“a=%d\n",a); #endif 非更新部管理終了レコード(1) 次に、特定部分表示処理部では更新ワーク・ファイル
を読込む。ここで、非更新部管理レコードを読込んだ場
合、ここから画面上表示されていない部分があることを
示す表示をコンソールに表示する。この処理を第3図の
フローチャートで示す。
まず、ステップ201で更新ワーク・ファイルを1レコ
ード読込み、ステップ202で更新ワーク・ファイルから
レコードがなくなるまで以下の処理を繰返す。次に、ス
テップ203でまず読込んだレコードが非更新部管理レコ
ードであるかを確認する。非更新部管理レコードである
場合、#ifdef部分を読み飛ばしたことを示す記号、例
えば“**** SKIP #ifdef ****”をコンソ
ールに表示する(204)。また、非更新部管理レコード
でない場合、読込んだレコードの内容をコンソールに表
示する(205)。
こうして第4表の更新ワーク・ファイルに対してコン
ソールに表示される例を第5表に示す。
第 5 表 #define DEBUG 0 b=a; **** SKIP #ifdef **** c=b; 最後に、更新結果ファイル作成部には、更新ワーク・
ファイルと非更新ワーク・ファイルの結合部をもってい
る。ここでは、更新ファイルの内容を更新結果ファイル
に複写する。ここで更新ワーク・ファイル中の非更新部
管理レコードを読み込んだ場合、非更新ワーク・ファイ
ルの対応するレコード番号の非更新埋管理開始レコード
の直後以降、非更新部管理終了レコードの直前までの内
容を更新ファイルに追加する。次に再び、更新ファイル
の内容を更新結果ファイルに複写する。この処理を第4
図のフローチャートに示す。
まず、ステップ301で更新結果ファイルをオープン
し、ステップ302で更新ワーク・ファイルを1レコード
読込む。次に、303で更新ワーク・ファイルからレコー
ドがなくなるまで以下の処理を繰り返す。まず、読込ん
だレコードが非更新部管理レコードであるかをステップ
304で確認する。これが非更新部管理レコードである場
合、ステップ305で更新番号に対応する非更新部管理開
始レコードを非更新ワーク・ファイルからサーチし、ス
テップ306で非更新部管理終了レコードの直前まで非更
新ワーク・ファイルの内容を更新結果ファイルに出力す
る。ステップ304において非更新部管理レコードでない
場合、ステップ307で更新ワーク・ファイルの内容を更
新結果ファイルに出力する。更新ワーク・ファイルがな
くなったら、ステップ308で入力ファイル、更新ワーク
・ファイル、非更新ワーク・ファイルおよび更新結果フ
ァイルをクローズする。こうして、コンソールには入力
ファイルの特定部分のみ表示させながら入力ファイルを
更新することができる。
第5図は本発明の第2の実施例の特定部分表示処理部
の処理を示すフローチャートである。本実施例2も第1
の実施例と処理の概要は同じであるが、編集部5の特定
部分表示処理部11において、入力ファイルから読み込ん
だ行に行番号をつけて表示する機能をもっていることが
第1の実施例と相違している。
まず、ステップ401で行番号を記憶するカウンタを1
に初期化し、次にステップ402で更新ワーク・ファイル
を1レコード読込む。さらにステップ403で、更新ワー
ク・ファイルからレコードがなくなるまで以下の処理を
繰返す。まず、読込んだレコードが非更新部管理レコー
ドであるかをステップ404で確認する。非更新部管理レ
コードである場合、ステップ405で更新番号に対応する
非更新部管理開始レコードを非更新ワーク・ファイルか
らサーチし、ステップ406で非更新部管理終了レコード
の直前の行数をカウントし、その分行番号カウンタを加
算する。ステップ404において非更新部管理レコードで
ない場合、ステップ407で行番号カウンタの番号とレコ
ードの内容をコンソールに表示し、ステップ408で行番
号カウンタを1加算する。こうして第2表の入力プログ
ラムがコンソールに表示される例を、第6表に示す。
第 6 表 00001:#define DEBUG 0 00002:b=a; 00006:c=b; 〔発明の効果〕 以上説明したように、本発明を用いたエディタでは、
入力ファイルのもつ指示情報に従って、入力ファイルの
特定部分のみをコンソールに表示させるので、入力ファ
イル中で着目したくない部分をコンソールに表示しなく
なり、次の効果がある。
(1) 着目したくない部分を誤って編集することがな
くなる。
(2) 編集したい箇所を探し易くなる。
(3) 着目したい部分のみ表示されるため、入力ファ
イルの内容を理解しやすくなる。
こうして、入力ファイルの編集効率を上げることがで
きる。
【図面の簡単な説明】 第1図は本発明の一実施例を説明するシステムのブロッ
ク図、第2図,第3図,第4図はそれぞれ第1図の特定
部分読込み部、特定部分表示処理部および更新結果ファ
イル作成部の各処理を説明するフローチャート、第5図
は本発明の第2の実施例の特定部分読込み部の処理を説
明するフローチャート、第6図は従来のファイル編集シ
ステムの一例のブロック図、第7図は第6図のシステム
の走行するホストマシンのブロック図である。 1……入力ファイル、2,2a……ファイル編集プログラ
ム、3……ファイル入力部、4……操作指示入力部、5
……編集部、6……画面出力部、7……ファイル出力
部、8……更新結果ファイル、9……コンソール、10…
…特定部分読み込み部、11……特定部分表示処理部、12
……更新結果ファイル作成部、21……ホストマシン、22
……コンソール、23……演算装置、24……外部記憶装
置、101〜113,201〜205,301〜308,401〜408……処理ス
テップ。

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】ファイルを外部記憶装置から入力する入力
    手段、コンソールからの操作指示情報を入力するキー入
    力手段、前記操作指示情報をもとにファイルを編集する
    手段、この編集結果をコンソールに出力する出力手段お
    よび前記編集結果によって更新されたファイルを外部記
    憶装置に出力するファイル出力手段を有するファイル編
    集方式において、入力ファイルのもつ指示情報に従って
    ファイルの特定部分を読込む処理部と、前記特定部分の
    読込み内容を前記コンソールに表示する処理部と、前記
    特定部分の読込み部の更新結果と読込みを行っていない
    部分とを結合して更新ファイルを前記外部記憶装置に出
    力する処理部とを設けることにより、入力ファイルがも
    つ指示情報に従ってこの入力ファイルの特定部分のみを
    前記コンソールに表示することを特徴とするファイル編
    集方式。
JP20165289A 1989-08-02 1989-08-02 ファイル編集方式 Expired - Fee Related JP2990701B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP20165289A JP2990701B2 (ja) 1989-08-02 1989-08-02 ファイル編集方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP20165289A JP2990701B2 (ja) 1989-08-02 1989-08-02 ファイル編集方式

Publications (2)

Publication Number Publication Date
JPH0363820A JPH0363820A (ja) 1991-03-19
JP2990701B2 true JP2990701B2 (ja) 1999-12-13

Family

ID=16444644

Family Applications (1)

Application Number Title Priority Date Filing Date
JP20165289A Expired - Fee Related JP2990701B2 (ja) 1989-08-02 1989-08-02 ファイル編集方式

Country Status (1)

Country Link
JP (1) JP2990701B2 (ja)

Also Published As

Publication number Publication date
JPH0363820A (ja) 1991-03-19

Similar Documents

Publication Publication Date Title
JPH07200358A (ja) ソフトウェア・アプリケーションの自動テスト方法
JP2990701B2 (ja) ファイル編集方式
JP2000207246A (ja) デバッグ支援装置及び方法並びにデバッグ支援用ソフトウェアを記録した記録媒体
JP2998674B2 (ja) 設計作業における文書作成支援装置
JP2752827B2 (ja) デバッガ処理方式
JPH0358225A (ja) ファイル編集方式
JP2639349B2 (ja) 誤修正行検索装置
JPH05307472A (ja) プログラム部品情報再利用装置
JPS62186339A (ja) テキストエデイタにおけるコンパイルエラ−表示方式
JP3105546B2 (ja) アセンブラのシンボル・デバッグ情報処理方式
JPH11327887A (ja) 自動部品化機能付コンパイラシステムおよび記録媒体
JP3886726B2 (ja) プログラム仕様書作成装置及びプログラム仕様書作成方法並びにプログラム仕様書作成プログラムを記録した記録媒体
JPH05181661A (ja) 利用者別汎用メニューシステム
JPWO2000050988A1 (ja) プログラム仕様書作成装置及びプログラム仕様書作成方法並びにプログラム仕様書作成プログラムを記録した記録媒体
JP2834032B2 (ja) 同一属性帳票の個別出力方式
JPH06324853A (ja) オブジェクト指向プログラミング言語を対象とした原始プログラム編集装置
JP2001134462A (ja) プログラムデバッグ装置
JPH01237834A (ja) ロードモジュールの編集表示方式
JPH05189224A (ja) 処理方法管理方式
JPH03260828A (ja) 情報処理装置
JPH06309319A (ja) 文書処理装置
JPH03282844A (ja) データベース情報の出力装置
JPH02151931A (ja) 中間言語テキストの再利用方式
JPH06259278A (ja) デバッグ情報の獲得方式
JPS638837A (ja) スキヤンデ−タ表示方式

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees