新新は第第円こ畆墨 人 、応、ん↓す。 CAPS MS•ISAM マルチセンター プログラム開発支援ツール 「 CAPS 」は、入力画面やファイルの設計作業を、画面上でのインタラクテイプな操作で行うことを実現。コー ティングすることなく MS ℃、 N88- BASIC のソースファイルが生成できることをはじめ、定義情報の簡単な変更 時にはパラメータファイル上で修正が行えます。煩雑な作業を大幅に省力化する、これまで待ち望まれていた プログラム開発支援ツールです。 ・対応機種 / NEC PC ー 9801 シリース・〇 S / MS ー D 〇 S Ver2.11 以上・メインメモリ / 640KB 以上 必要・ディスプレイ / 高解像度 ( 600X400 、ドット ) ・プリンタ / PC ー PR201 系・ FEP / AT 〇 K ・標準 価格 YI 28 , 000 索引順編成ファイル パソコンでは COBOL 以外に使用することができなかった ISAM を、 MS - DOS 上で使用可能にするのが 「 MS-ISAM 」です。 BASIC を標準言語としてサポートしていることをはじめ、 N88 ・日本語 BASIC(86) や IBM の漢字 BASIC 、 C 言語、 FORTRAN 等を強力にサポート。しかもキー部、テキスト部が完全に独立していま すので、データの共有化が可能になります。これからのプログラム開発に欠かせない、強力な開発支援ツール です。 ・対応機種 / 8086 系 CPU 、 MS-DOS(Ver 2.11 以上 ) 使用の機種・標準価格 Y50 , 000 パソコン通信ホスト局開局用ソフトウェア 「マルチセンター」は、多回線バソコン通信ホスト局をより使い易く、より簡単に開設するためのソフトウェア。階 層の深さやアーティクル数が無制限に設定できることなど、ホスト局開局のビギナーをはじめ、エキスパートの ーズにも的確に対応。さらに、く R : BASE 〉を使用した本格的なデータベース機能を搭載しており、データ べースによる多彩なサービスを可能にしました。しかも OS / 2 対応ですので高速レスポンスなシステムが構築で きます。 ・対応機種 / NEC PC ー 9801 シリーズ ( 80286 以上の CPU を搭載している機種 ) ・ハードティスク / 約 40MB 必要・ OS/MS-OS/2(Ver 1.1 以上 ) ・モテム / ヘインス AT コマンド準拠モデル・標準価格 Y600 , 000 ( 別途インストール費 Y200 , 000 ) 〒 910 福井市大島町前浜 409 会社′スアム・ 7 ホ福井電話 0776 ー 35 ー 5502 ( 代表 式 = FAX 0776 ー 35 ー 6286 ※表示価格には消費税は含まれておりません。 会社名および商品名は各社の商標または登録商標です。 く資料請求番り・ 1 6 /
ケーションが開発可能 ・ DOS システムコール以外にリアルモード 手続きの呼び出しやプロテクトモード割 り込みを行うための拡張システムコール を標準てサポート ・ 32 ビットオプジェクトと 16 ビットオプジ ェクトのリンクも可能なプロテクトモー ドて動作するリンカを搭載 ・ 80386 / 486CPU 完全対応のシンポリックデ バッガを搭載 く動作環境 > ・対応機種 PC ー 9801 / H98 シリーズ J ー 3100 / J -3300 シリーズ IBM PC/AT マシン DOS/V マシン AX マシン ・対応 OS MS-DOS Ver. 3.1 以上 ・必要メモリ 2M バイト以上のプロテクト モードメモリ などのツールが付属している。バーション アップにより強化されたおもな機能は以下 のとおり。 CodeCenter3.1 ・プリプロセッサをサポートし , INFORM IX, Oracle といったデータベースアプリ ケーション開発において , SQL を含んだ ソースコードの処理が可能 ・ Sun OS 上の Shared Library をサポート ・ GNU C コンパイラのオプジェクトコード をサポート ・ FORTRAN のオプジェクトコードをサポ ートし , C と FORTRAN のオプジェクト コードを混在させたプログラムが開発可 能 ObjectCenter1.1 ・ AT&TC 十十 Ver. 2.0 をサポート ・ CodeCenter3.1 の機能をすべて含み C 十十と C が混在したプログラムの開発が 可能 ・オプジェクト指向データベース ObjectSt ore,Verant とのインタフェイスをサポー CodeCenter3.1 く動作環境 > ト C MAGA ーズ ーズ く価格 > C0deCenter3.1 Obj ectCenter1.1 700 , 000 円 1 , 160 , 000 円 く価格 > 198 , 000 円 問い合わせ先テックソフト & サービス ( 株 ) 〒 273 千葉県船橋市本町 7 ー 11 ー 5 レランドセンタービル 5F TEL 0474 ( 22 ) 1322 「 CodeCenter3.1 」 「 ObjectCenter1.1 」 ( 株 ) アステック ( 株 ) アステックは , C 言語プログラム開 発 , 保守のための統合プログラミング環境 Saber-C をバージョンアップし , CodeCent er3.1 として 3 月末より発売を開始する。ま た , C 十十言語用の統合プログラミング言語 ObjectCenter1.1 は , 1 月より発売が開始さ れている。 C0deCenter3.1 , Obj ectCenter 1.1 ともにインタブリタによる静的工ラー 実行時ェラーの自動検出機能を搭載してい る。また , パッケージには編集ファイルを 再ロードするだけて , プログラムの再実行 を可能とするインクリメンタルリンカ , カ スタマイズが可能なソースレベルデバッガ ・対応機種 ・対応 OS Sun-3, SPARC シリ DECstati on HP9000 / 300 / 400 Sun OS4.1 以上 , JLEI. 1 以上 ULTRIX 3.1 以上 HP-UX 7.0 価格はそれぞれ 1 ライセンス当たりの価格 て、 1 年間のメンテナンス料が含まれている。 問い合わせ先 ( 株 ) アステック 〒 162 東京都新宿区南町 6 BR 市ヶ谷 TEL 03 ( 5261 ) 5972 「日本語工ラーファイル RESOURCE3(RC. EXE 3.00J 対応 ) 」 マイルドソフト ( 有 ) マイルドソフト ( 有 ) は , RC. EXE 対応の日 本語工ラーメッセージ表示ユーティリティ 「日本語ェラーファイル RESOURCE3 」を発 古した ノし、 0 同ソフトは , BORLAND C 十十 Ver. 2. 0 , Turbo PASCAL for Windows 1.0 , MS-Windows 3.0 SDK に含まれる RC. EX E に対応。同ソフトを利用することにより標 準ては英語て表示されるコンパイルエラー のメッセージを日本語て表示することが可 能となる。同ソフトはコマンドラインと統 ・対応機種 PC ー 9801 シリ く動作環境 > 表示される。 は画面下部のエラーメッセージ表示領域に ドライン上ては標準出力に , 統合環境上て 合環境の両方に対応 , 工ラー出力はコマン MS-Windows 3.0 SDK Turbo PASCAL for Windows 1.0 BORLAND C 十十 Ver. 2.0 ・対応ソフト ・対応 OS MS-DOS Ver. 3.1 以上 ・必要メモリ 8M バイト以上 ・対応機種 Sun-3, SPARC シリーズ ObjectCenter1.1 のコンパイラ ・必要ソフト K&RC, ANSIC サポート ノヾイラ C,ANSIC サポートのコン ・必要ソフト AT&T ℃十十 2.0 , K&R ・必要メモリ 12M バイト以上 ・対応 OS Sun 0S4.1 以上 , JLEI. 1 以上 く価格 > 2 , 900 円 問い合わせ先マイルドソフト ( 有 ) 〒 604 京都府京都市中京区蛸薬師堺町 西北角みよいビル内 TEL 075 ( 223 ) 5296 News Square 147
「印刷大王 ( 帳票開発支援ツール ) 」 システムボート ( 株 ) システムボート ( 株 ) は , 帳票開発支援ッ ール「印刷大王」を発売した。 同ソフトは , 自作のアプリケーションて 使用する帳票印刷関数を簡単に作成するた めのツール。印刷フォームの作成は従来の ような専用ェデイタによる作業てはなく , 使い慣れたワープロソフトて、作成したフォ ームをそのまま利用て、きる。印刷大王が常 駐し , ワープロソフトが出力する印刷コー ドを横取りして , C 言語のソースプログラム を作成するのてプリンタのコントロールコ ードを意識することなく , 罫線 , 飾り文字 などを使用した帳票印刷関数を作成するこ とがてきる。おもな特徴は以下のとおり。 ・飾り文字 , 罫線 , ロゴなどのほか , 図形 やイメージスキャナからの取り込みデー タも使用可能 ・シーケンシャルフィールド , 流し込みフ ィールドなど目的に応じたデータフィー ルドの指定が可能 ・各フィールド内てセンタリング , 右寄せ , 左寄せなどの指定が可能 ・ソースプログラム , デモプログラム付属 く動作環境 > ・対応機種 PC ー 9801 シリーズ ( ハイレゾモ ードを除く ) ・対応 OS MS-DOS Ver. 3.1 以上 (Ve r. 5 対応 ) ・対応コンパイラ MS-C Ver. 5.1 以上 C MAGA 作成を効率よく行うことがて、きる。おもな グラムの保守 , 管理のためのドキュメント ール。同ソフトを用いることによってプロ 係図などのドキュメントを自動作成するツ ス名一覧 , 関数名一覧 , 関数呼び出しの関 された書式に従って , C プログラムの , ソー CDOC は , ワープロ , 工デイタなどて、作成 ノし、 0 ネレータ CDOC 」を発志した ュメント自動生成ツール「ドキュメントジェ 日本コンヒ。ュータシステム ( 株 ) は , ドキ 日本コンピュータシステム ( 株 ) 「ドキュメントジェネレータ CDOC 」 可能 ・各関数の設計情報と SPD チャートを出力 抽出可能 文字列て始まるコメントを C ソース中から ・ユーザ登録コメントファイルに登録した 特徴は以下のとおり。 ・対応コンパイラ K&R または ANSI 規格 ・対応 OS MS-DOS Ver. 3.1 以上 J ー 3100 シリーズ ードを除く ) ・対応機種 PC ー 9801 シリーズ ( ハイレゾモ く動作環境 > 出力され , 工デイタなどて、修正可能 ・ドキュメントはテキストファイル形式て、 Re12.0 」を発売した。 AWK は , テキストファイル中からあるパ ターンを見つけ , それに対応したアクショ ンを行う処理系。 NAWK は , 米国 AT&T 社 よりリリースされている「 AWK 」 (). V. A ho , P. J. Weinberger, W. B. Kernighan 設計製作 ) を日本語に対応させたもの。パッ ケージにはインタブリタ処理系の NAWK の ほかに AWK プログラムを /usr/ucb/cc に対 応した C 言語ソースに変換するプログラム「 A WKCC 」が付属する。 く動作環境 > ・対応機種 SPARC シリーズ ・対応 OS Sun 0S4.1 以上 , JLEI. 1 以上 ・必要メモリ 3M バイト以上 ・供給メディアテープ ( QIC ー 150 フォーマ く価格 > 98 , 000 円 ・必要メモリ く価格 > に準拠した C コンパイ フ 640K バイト以上 88 , 000 円 ・対応プリンタ く価格 > Turbo C Ver. 1.5 以上 Turbo C 十十 Ver. 1 .0 BORLAND C 十十 Ver. 2 . 0 PC-PR201 系 ESC/P-J84 系 48 , 000 円 問い合わせ先日本コンピュータシステム ( 株 ) 〒 105 東京都港区芝公園 2 ー 4 ー 1 秀和芝パークビル A 館 TEL 03 ( 3433 ) 8172 「 NAWK/AWKCC Re12.0 」 (Sun OS 版 ) ( 株 ) 毎日コミュニケーションズ ( 株 ) 毎日コミュニケーションズは , Sun 0 S 版のパターン処理言語「 NAWK/AWKCC 間い合わせ先 ( 株 ) 毎日コミュニケーションズ 〒 100 東京都千代田区ーツ橋 1 ー 1 ー 1 TEL 03 ( 3211 ) 2568 「 38 引 TOOLBOX Ver. 4.0 」 テックソフト & サーピス ( 株 ) テックソフト & サービス ( 株 ) は , 80386 / 486CPU のプロテクトモード専用 DOS 工クス テンダ開発ツール 38 引 TOOLBOX を機能 強化し , Ver. 4.0 として発志した ノし、 0 386 ー TOOLBOX は DOS 工クステンダ , ア センプラ , リンカ , ライプラリアン , デバ ッガ , 仮想記憶マネージャなどを含む開発 ツールキット。同ソフトのアセンプラ , リ ンカ自体がプロテクトモードて、動作するた め , MS-DOS のメモリ , セグメントの制限 を受けることなく大きなプログラムを開発 することが可能となる。おもな特徴は以下 のとおり。 ・ DOS 工クステンダが DPMI (DOS Protec ted Mode lnterface) 環境と XMS 環境に 完全対応し , MS-Windows 環境のアプリ パレスサイドビル 146 問い合わせ先システムボート ( 株 ) 〒 015 秋田県本荘市美倉町 13 ー 1 TEL 0184 ( 24 ) 5592 C MAGAZINE 1992 3
応用 C 言語 C の道具箱 指定したファイルバターンと一致するファ イルがこれ以上ない場合に非 0 を返す。 Fig. 1 PC ー 9801 上で実行したサンプルプログラムの実行画面 [ 機能 ] myffirst て、指定したパス名 pathname のディ レクトリエントリを探し , 次に一致したフ ァイルの情報を DTA に格納する。 mysetdta ( ) 関数 ( CM920304 , List 7 ) ーー DTA の設定 [ 書式 ] #include "config. h" #include < stdio. h > #include < dos. h> #include regs2. h " #include curses. h #ifdef PROTOTYPE #include "cboxprot. h" #endif mysetdta (buf) char * buf ; く < ファイルの表示 EC. C I NT. C IR4. C ESH. C M . C N . C WATTROFF. C GETSTIME. C MYSETDTA. C FKEY. 日 PLDWN. H TEXTKE12. H INITSCR. C MID. C MYERROR. C PRINN. C SCLWIDCK. C WININITV. C WRSINUPD. C C 島 . C MVWGETCH. C WGETSTR. C WAffRON. C FLGATHER. C CBOXPROT. H INPUTVAR. H PLDWNVA2. H WINDOW. H DELW INKE MVWF MYPE REAL TEXT OV WSAV CURO MVWG MYDUMMY. C WATTRSET. C MYFFIRST. C CURSES. H INPUT. H MENURD. H CURON. C が選択されました WC . C CLEARBLK. C MYFNEXT. C FKEY 3. H KEYVAR. H REGS2. H INS VOID NWL REP SU CA CU CI Fig. 2 NEWS 上で実行したサンプルプログラムの実行画面 くくしリ : にヒ ) ) 碑亠丁罕 e•s# SC rc 叩 y を要 NO FIL 、を val.c cu r06. C . CShrc a. out CUR07. C CUR08. C Ⅲ P 町 . H ISSPCKEY. C Ⅲ田 NS. C 0 町 FO . C SPCTORU. C fkey. h TEST03. C TESTI. C [ 引数 ] buf ← DTA を設定する領域のアドレス [ 戻り値 ] s れ引い 0 引 半角英第字 - /bin/csh 正常終了の場合 0 を返す。 [ 機能 ] アドレス buf に新しい DTA (Disk Transfer Address) を割り当てる。 コンバイル 道具箱に追加された関数は , TurboCV er. 2.0 および MS ー CVer. 6.0 上てコンパイ ルすることがてきる (UNIX 用のものは SUN ワークステーションおよびその互換機てコ ンパイル可能のものて、ある ) 。いずれの場合 にも各プログラムは分割コンパイル用とし test. c CO cu r06 CS. BAT 側 R08. BAK test01 INPUTVAR. H KEWATCH. C Ⅷ DTORUP. C PL[MN. H STWP. TMP TEST02. C TESTI. BAK 日 y. a 応用 C 言語 107
応用 C 言語 C の道具箱 List 3 flgathe 「 ( ) 関数 ( CM920301 , List 1 ) - ー - 検索したファイル名の格納 [ 書式 ] #include "config. h #include < stdiO. h> #include < dos. h > #include < string. h > #include "regs2. h" #include " curses. h #ifdef PROTOTYPE #include " cboxprot. h " #endif sprintf(fIbufCcnt + + ], " %. 14S " , dp->d_name) : cnt 十十 ; 0 、 1 りな 00 -4- 0 8 9 0 if (cnt > 100 の { break ; closedir(dirp); chdir(curdir) ; *count cnt; return( の ; List 4 画面にファイル名を表示するプログラム ( 利 gathe 「 . tst) 1 : #include ” config. 2 : #define MYEXTERN 3 : #include く stdiO. h 〉 4 : #include く string. h> 5 : #include く curses. h> 6 : #include く locale. h> 7 : #ifdef PROTOTYPE h ” ” cboxprot. 8 : #include 9 : #endif 10 : struct Gmnstr2{ char m0jiC15]; 11 : int x; int y; 13 : 14 : 15 : #define ENTER ' *n' 16 : main ( ) 18 : char ch int opt, flpos , flmax, 1 inemax 19 : 20 : char flbufCFILENUMMAX] [ 15 ] ・ int count, i 21 : 22 : char *joken; 23 : struct Gmnstr2 mnCFILENUMMAX] ; 24 : WINDOW *mywin; flmax = 64 ; linemax = flmax / 4 ・ initscr(); 26 : mywin = newwin(10, 40 , 5 , 1 の : keypad(stdscr, TRUE) ; scrollok(stdscr, TRUE) ; 28 : noecho() ;raw() : setlocale(LC—ALL, " " ) ;clear() : 29 : flgather(). ” , flbuf, &count, ” *. * " ) ; 30 : for(i=O ; i く count : i + + ) { strcpy(mn[i]. moji, flbufCi]) 32 : = 20 * ( i % 4 ) + 4 ・ mn[i]. x 33 : = ((i/4) % linemax ) + 5 ・ mn[i]. y 34 : 35 : flpos = count く flmax ? count: flmax 36 : while((opt = fldsp(mn,flpos,"< くファイルの表示 > > " ) ) ! = 9999 ) { if(opt ー = 990 の { 38 : flpos = flpos 〉 count-flmax ? count: flpos + flmax; 39 : continue; 40 : 41 : if(opt = = 991 の ( 42 : if(flpos = count){ 43 : flmax ) { if(flpos > 44 : flpos = flpos-(flpos % flmax) : 45 : 47 : 48 : 49 : 50 : flgather (path, flbuf, count, joken) char * path char flbuf [ ] [ 15 ] int * count char * jOken ; [ 引数 ] ←検索するパス名 path ←ファイル名リストを格納するバ flbuf ッファ ←条件に一致したファイルの数 count ←ファイルバターン ( ファイル名 ) jOken [ 戻り値 ] 正常終了の場合 0 を返す。 FILENUMMAX は pldwn. h で定義 [ 機能 ] パス名 path を検索し , ファイルバターン jok en に一致するファイル名のリストをバッフ ァ flbuf に格納する。また条件に一致したフ ァイルの数を count に格納する。 myffirst( ) 関数 ( CM920302 , List 5 ) ーーファイル名の検索 ( 1 回目 ) [ 書式 ] #include "config. h" #define MYEXTERN extern #include < stdio. h> else{ flmax ) ( if(flpos 〉 flpos = flpos- flmax ・ 応用 C 言語 105
' 92 年 3 月号特別付録 ( 5 " 1.2M 8 セクタ / P を起動して読むことのてきる「そのほか注 はありますが ; 従来の TAKALITH と球を トラック MS-DOS フォーマット ) には , 次の 意事項について」をご一読ください。 六方最密充填て埋めていくゲムを統合化 プログラムが収録されています。ご使用に した , TAKA's 3-Dimension Enhanced S テキスト整形プログラム あたっては , 自動解凍圧縮ファイルの解凍 ystem というのが TAKA3DES< す。 「 Efjn 」 方法など , さらに詳しい説明を収録した付 X68000 に移植された Fin は MS-DOSC 、広く使われているテキス 録ディスクの README ( テキストファイル GNLJ C Compile 「⑩ ト整形プログラムて , その機能拡張したも ) を必ずご一読ください。今回は「特集ドキ のが Efin てす。特集て、紹介した Finfo が裏て 本誌「 GCC て、学ぶ 68 ゲームプログラミン ュメント作成支援システム」て紹介したソフ fin を起動していることから著作権者 ( syoh グ」の筆者 , 吉野智興氏のご好意により収録 トウェアを中心に収録いたしました。詳し ei Yamada 氏・ Youichi Kusakabe 氏・ Ta した XGCC のソースファイルて、す ( 実行ファ くは本誌特集および解凍後生成されるドキ kuma Yamada 氏 ) の了解を得て収録しまし イルは本誌 ' 91 年 5 月号て、収録。 gcc ccl. x の ュメントファイルを参照してください た。詳しくは解凍後生成されるドキュメン バグフィックス版を本誌 ' 91 年 7 月号て収録。 文芸的プログラミング支援 トファイルをご一読ください。 バージョンアップの差分修正ファイルを ' 91 システム「 WEB 」 年 10 月号および ' 92 年 1 月号て、収録 ) 。なお , info ファイル閲覧 D. E. Knuth が提唱した「文芸的プログラ ' 91 年 5 月号から収録を始めた XGCC のソース プログラム「 info 」 ミング」とは , ドキュメント中にソースコー ファイルは今回て、終了しました。 ドを入れ込むことによって , ソースとドキ info. exe は GNU ソフトウェアのドキュメ 「 ANSI C 言語入門講座」 ュメントの整合性を保つだけて、なく , 「作品 ンテーションのためのファイル形式 info を見 活用集⑩ として鑑賞て、きるプログラム」を作ることを るためのツールてす。 lnfo は元々は Emacs の 目的としたシステムだそうて、す。「 WEB 」 info ー mode というモードの中て、見るためのフ ようこそ BohYoh ( 「ばうよラ」と読みます / は , D. E. Knuth 作の配布制限なしのパプリ ァイル形式てすが , ⅲ fo. exe はスタンドアロ 本名てす ) ディレクトリへ ! 今月の BohY ックドメインソフトウェアて , 安田英之氏 ンて、 info をプラウズすることを可能にします。 oh ディレクトリには , ℃ : 98 ス一六一ライ が MS ー DOS 版に移植しました。詳しくは特 プラリ』の LSIC ー 86Ver : 3.3 試食版用ライ 「日本語 perl TeXinfo 」 集 Part1 「文芸的プログラミングと WEB 」 プラリを収録しました。 をお読みください 本誌掲載プログラム 日本語 perl TeXinfo は , 基本的に perl ハイバーテキストドキュメント 4.0 パッチレベル 19 のオンラインマニュアル 作成支援システム「 Fi n fo 」 を日本語訳し , そのセクション分けに対応 TOKUSYU : 特集ドキュメント作成・・・ Finfo とは , 小規模なコンヒ。ュータても T したノードに分割したものてす。作者 ( 高尾 : 実践アルゴリズム戦略 STRATE eXinfo を利用てきるように , GNU Emacs 直弥氏 ) の了解を得て収録いたしました。詳 DJGCC : djgcc 詳解講座 や TeX を使わずに info ファイル / プリントア しくは README をご一読ください : 新 MS-DOS 入門 MSDOS ウトを作成て、きるようにしたシステムてす。 ESSENCE : プログラミングの工ッセンス Visual File Administtation 詳しくは特集 Part2 「ハイバーテキストシ MEIKAI : 明解 ANSI C 言語入門 プログラムⅣ FA 」 ステム」をお読みください CPP : スタートアップ C 十十 ' 91 年 12 月号フリーソフトウェア最新レポ : 恥ずかしながらドジりました DOJI ハイバーヘルププログラム ートと本誌 129 頁て、紹介した VFA を著作権 OUYOU : 応用 C 言語 C の道具箱 「 TTHELP 」 者 ( 橋本健一氏 ) の了解を得て収録いたしま X68K : GCC< 学ぶ 68 ゲーム TTHELP は , 「さまざまな文字情報や図 した。 VFA についてはここて語るより一度 : 「 RTx86 』「 RT386 』 RT 形情報をて、きるだけカンタンな操作て、画面 試されたほうがよいて、しよう。カッコイイ : 「 GENIFA 』 GENIFA に表示させる」という考えの下に開発された のひとことてす。 : VFA—Z 生から仕組みまて、 ~ VFA ハイバーテキストのヘルプシステムてす。 : C マガ電脳クラブ PUZZLE 立体充墳ゲーム なお , TTHELP の著作権は , 戸田プロダク : 迷走プログラミング NIWA 「 TAKA3DES 」 ション ( その実体は戸田隆氏 ) が所有し , プ INFO : インフォメーション 本誌「 TAKA3DES 制作記」をご覧いただ ログラムはシェアウェアとなっています。 詳しくは , 特集 Part2 のコラムや TTHEL けたてしようか ? まだ試作段階のものて 10 ディスク内容のお知らせ 159
B 0 R ー A 0 The レⅲ O c ト O Programming TURBO PASCAL WIJH 08 」 ECTS ド袞 E E ! い 20 、 ー統 [ D ・ 51AN0 蘇 0 PA A ぼ 0 久 TURBO C TURBO PASCAL ・ 0 ー A N 0 ※写真のバッケージは、実際の製品とは異なります。 マスターピース 気軽に使える銘。 本当に良いものは、いつでもあなたの身近にありま魂 世界のベストセラー・コンパイラ「 TURBO C 十十 1.0 」 C + + を学習するための豊富なサンカレプログラ ■動作環境・・・適応機種 : NEC PC -98 シリーズ と「 TURBO PASCAL 6.0 」が、よりお求めやすい価 ム、そしてクラスライプラリを用意しました。 C コンヾイ ( ハイレゾモード対応、 LT は除く )/EPSON 286 / 386 格になりました。 TURBO シリーズの純粋な血統を受 ラとしても、充実したライプラリ関数や拡張された シリーズ・メモリ : 640KB 以上・ MS - DOS : バージョ け継ぎ、あらゆる層のプログラマーの方々に親しまれ 機能により、幅広いプログラミングに対応て、きます。 ン 2.11 以上・マウス : バスマウス てきた 2 つの開発環境。どちらもオプジェクト指向プ BTIJRBO PASCAL 6.0 ■価格 ログラミングや、開発に必要な編集・コンパイル・リン TURBO PASCAL 6.0 は、 MS ー DOS アプリケー TURBO C 十十 1.0 2nd Edition/TURB0 PASCAL 6.0 ク・テパッグ機能などを備えた使いやすいマウス対 ションを開発するためのオプジクト指向クラスライフラ 応オーバーラッブマルチウインドウの統合環境といっ リ「 Turbo Vision 」を提供します。オーバーラッフ。マル た、先進の機能群を搭載しています。素晴らしいも チウインドウ、カレダウンメニュー、マウスによる操作、 のだからこそ、より多くの人々に使っていただきた レクトリプラウザなど、先進のユーザインターフェース 私たちポーランドは、クオリティーとプライスに を備えた質の高いアプリケーションも、「 Turbo 絶対の自信を持って、最良の製品をお届けします。 Vision 」によってゼロからコードを記述する必要な ETURBO C 十十 1.0 2nd Edition しに作成てきるのて、す。事実、 TURBO PASCAL TURBO C + + 1.0 は、 C 言語の柔軟さを損なわず 6.0 の統合環境は「 Tur Vision 」を用いて作られ にオプジ三クト指向フ。ログラミング ( OOP ) を可能にした ています。また TURBO PASCAL は、 1990 / 1991 年 C + + 言語をサポートしています。もちろん、 ANSI と 2 年連続て、日経パソコンおよび日経バイト「読者が 準拠の C コンパイラとしてもお使いいただけます。 選ぶパソコン・ベスト・ソフト」の - ベスト評価賞を受賞。 ※ AII Borland products are trademarks 併 registered trademarks of Borland lnternational, lnc. C Borland lnternati onal, c. ※その他、商品名は一般に各社の商標です . ・製品に関するお問い合せは、ポーランド株式会社 TEL. 03-5350-9370 までお願いします。 \ 20000 ( 税別 ) TURBO PASCAL 6.0 PROFESSIONAL ¥ 39 , 800 ( 税別 ) ユーサ向け情報誌 LANGUAGE EXPRESS プレゼント . を 資料を請求していただいた方全員に、ポー ランド発行の情報誌「 LANGUAGE EXPRESS 」 をさし上げまの 孅物日リ / / ■この広告をこ覧になって、製品に関する ホーランド株式会社 〒 151 東京都渋谷区笹塚 1-64-8 笹塚サウスビル TEL. 03-5350-9370 代 ※移転いたしました く資料請求番号 001 〉
Fig. 10 List 7 の実行結果 49 16650 0 1 ('*n') の取り扱い Fig. 11 テキストモードでの改行文字 2 31 41 49 3 31 4 5 6 7 8 9 メモリ OA 書き出し 読み込み ファイル OD OA Fig. 12 List 7 の読み込み OD OA OA 41 Fig. 13 ファイルポジション ファイルポジション 現在読み書きを 行っている位置 読み込んだテータ ファイル 16 , 650 TabIe 3 fseek の機能概路 fsee k 形式 int fseek(FlLE * stream, long offset, int 0 「 igin) 解説 st 「 eam のファイルポジションを設定する。ファイルポジションは , 0 「 i in で指定する位置からの差を 一定されている以下のマクロのい SEEK¯END ファイルの終端 SEEK¯CU R 現在の位置 SEEK SET ファイルの先頭 すれかを指定する 0 幵 set に設定することによって指定する。 0 「 igin にはく stdio. h > に 12 く stdio. h> int main(void) 3 : #define MAX 1 : #include 任意のテータを読み込む fseek は , 成功した場合には 0 を , 失敗した場合には非 0 を返す List 5 : 9 : 10 : 11 : 12 : 13 : 14 : 15 : 17 : 18 : 20 : 22 : 23 : 24 : 26 : } FILE *fp; if ((fp = fopen("TEMP", "rb")) ! = NULL) { int no,• puts ( " 何番のデータ [ 0 ・・ 11 ] を読みますか ? " ) ; return ( の : fclose(fp) : puts ( " データの番号が正しくありません " ) : } else { printf("Xd 番のデータは % d です \ n " , no, data) : fread(&data, sizeof(int), 1 , fp); fseek(fp, sizeof(int)*no, SEEK—SET) ; int data; if ()o 〉 = 0 & & no く MAX) { scanf("Xd ” , &no) : 明解 IC 言ロロ 入門講座 字 ) て、、、 \ n 〃は 0x0A の値を持ちます。 MS-DOS 上の C 言語は , テキストファイル に対する読み書き時に , Fig. 11 に示すよう な変換を自動的に行っているのて、す。 これて、 , 実行結果が正しくない理由がわ かりましたね。 Fig. 5 からもわかるように 明解 AN C 言語入門講座 85 任意の位置のデータを読み書きて、きるはず て、した。ファイルポジションを設定すれば , ァイルの先頭から順に読み書きを行うもの これまて、示したプログラムはすべて , フ てファイルポジションが史新されます。 うに , 読み書きが成功すると , それに伴っ ます。 fread, fwirte の説明からもわかるよ ンは , 0 すなわちファイルの先頭に設定され ードて、のオープンを除き ) ファイルポジショ ファイルをオープンしたときは , ( 追加モ ョン』と呼びます。 けるために , 本連載て、は「ファイルポジシ す。前回説明したように , 用語の混乱を避 び , FILE 型のオプジェクト中に記憶されま ル位置指示子 (file position indicator) と呼 かを覚えています (Fig. 13 ) 。これをファイ ファイル中のどの位置を読み書きしている す。ファイルを読み書きするときは , 現在 イルポジション』という言葉を使っていま TabIe 2 の fread, fwirte の解説て、 , 『ファ ファイルポジション リモードでオープンする リモードで作成したファイルはバイナ テキストモードでオープンし , バイナ テキストモードで作成したファイルは 重要 ばならないことがわかります。 識し , 読み書きを同一モードて、行わなけれ ときには , テキスト / バイナリのモードを認 この例から , ファイルの読み書きを行う 読み込まれてしまったのて、す ( Fig. 12 ) 。 の 2 バイトが , 改行文字 ( 0A ) に変換されて , イルとしてオープンしたから , その OD ・ OA 41 ・ 31 となっています。これをテキストファ TEMP ファイルの最後の 4 バイトは , OD ・ ()A ・
A C 言語 入門講座 明解 柴田望洋 初級 9 級 8 級 7 級 6 級 5 級 4 級 3 級 2 級 1 級初段 2 段 入出力処理とライプラリ ( その 2 ) く最終回〉 いよいよ最終回です。前回は , 入出力処理を学習しなから , いろいろなライプラリ についても勉強しました。前回に引き続いて , 入出力処理やライプラリについて学 習しましよう。 List List 2 のデータを表示するプログラム 1 : #include く stdio. h 〉 まず簡単に前回のおさらいをしましよう。 3 : int main(void) List 1 のプログラムを見てください。このプ 5 : FILE *fp; ログラムは , List 2 のデータを読み込み , 集 6 : if ((fp ニ fopen("LIST2 ” , 7 : 計を行って整形出力するものて、す。データ fputs(" ファイルく LIST2 〉がオープンできません \ n " , stderr) : 8 : else { 9 : の各行は , 氏名・フリガナ・数学の点数・ / * 人数 * / 10 : int count / * 数学の合計点 * / int sm = 0 ; / * 英語の合計点 * / 英語の点数を並べたものて、す。プログラム int se ニ 0 ; 12 : 13 : フリガナ数学英語平均” ) : puts(" 氏名 の実行結果を Fig. 1 に示します。 14 : puts(" 15 : while ( 1 ) { 16 : fscanf は , scanf と同様に , 読み込みに成 char nameC40 17 : char kanaC40 18 : 功した項目の個数を返します ( 1991 年 6 月号 ) 。 int math; 20 : int eng; 23 行目の代入により , 読み込んだ項目数を int fld; 21 : 22 : fld に格納します。 fld = fscanf(fp, "XsXsXdXd", name, kana, &math, &eng) : 23 : if (fld く 4 ) break; 24 : 読み込みが成功すれば , fld は 4 となるはず 25 : count 十十 ; 26 : sm + ニ math ; て、す。もし何らかのエラーが発生したり , se 十ニ eng; printf("X3d % ー 12S % ー 12S % 5d % 5d % 5d \ n " , 28 : ファイルの終端に達したりしたのて、あれば , count, name, kana, math, eng, (math + eng)/2) ; 29 : 30 : fld の値は 4 未満となります。このチェックは puts( ”ー 31 : printf( ”合計 % 20S % 5d % 5d % 5d \ n ” 32 : 24 行目て、行っています。 fclose(fp) ; 33 : 34 : 16 行目から始まる while 文の ( ) の中は return ( の : 35 : 非 0 ( この場合は 1 ) て、すから , 無限に処理を 繰り返すことになります。このような無限 て、 , 無限ループて、あることがわかります。 一方 do 文を使用したものは , 判定を行う ループは , break 文や goto 文を使って明示的 } while ( 1 ) ; に脱出を行わないかぎり , 終了することは て、きません。このような無限ループは , Fi の箇所を読むまて、は , 無限ループて、あるこ g. 2 のように 3 種類の方法て、記述することが とがわかりません。 て、きます。 while や for を使うべきて、あることがわかり while 文と for 文は , 最初の行を見ただけ ますね。 List 成績テータ 0 っワな一 -0 0 9 8 9 れ 0 0 00 0 8 っ 0 0 9 ^ 0 9 叮ー 」ウ・・ 1 ′サ . ル ・磆人力「ー 洋彦史雅 望和隆隆満 田田田浦下 柴池池三山 , 1 り 00 4- 0 明解 ANSI C 言語入門講座 79
ald E. Knuth, The Computer Journa 1 , V01. 27 , No. 2 , 1984. ( 邦訳 : 「文 芸的プログラミング』 , 黒川利明訳 , bit V01. 17 , No. 4 , 1985. ) [Th86] "Experiences of 'Literate Prog ramming' using cweb (a variant Of Knuth' s WEB) " , H. ThimbIeby, T he Computer Journal, V01. 29 , NO. 3 , 1986. CLe87] "Web Adapted to C, Another Approach", Silvi0 Levy, TUGboat V01. 8 , No. 2 , 1987. CSe87] "How to MANGLE Your Soft ware : The WEB System for Modu la ー 2 " , E. W. (Wayne) Sewell, TU 八イノヾーテキスト ann, ACM SIGPLAN Notices V01. ian Avenarius and Siegfried Opperm mming System for Fortran8x", Adr CA090) "FWEB : A Literate progra 1. 9 , No. 5 , 1989. T. P. Baker, ACM Ada Letters, Vo on system for Ada", Y. C. Wu and CWB89] "A Source Code Documentati JuIy 1989. uter Science, Princeton University, rman Ramsey, Department of Comp CRa89] "A Spider User' s Guide", No Gboat V01. 8 , No. 2 , 1987. 25 , No. 1 , 1990. [ F090 ] "Webless Literate Programmi マの ng", Jim Fox, TUGboat V01. 11 , No. 4 , 1990. [Pa90] "Literate Programming for Re usability : A Queue Package Exam ple", T. L. Pappas, Proceedinds of the Eighth Annual Conference on Ad a Technology, Georgia, 1990. CKr91] "FWEB User' s Manual versio n 1 .22 " , John A. Krommes, Prince ton University, September 21 , 1991. CSS91] "An Annotated Bibliography o f Literate Programming", Lisa M. C. Smith and Mansur H. Samadzade h, ACM SIGPLAN Notices Vol. 26 , No. 1 , 1991. システム TeXinfo と finfo 斎藤靖 従来の一次元的・階層的な文書の概念を 拡張し相互参照関係を直接表現する手 段として , ハイバーテキストという方式 がある。ここではます , ハイバーテキス トの概念について述べる。さらに , これ をテキストべースで実現したといえる G NLJ の TeXinf0 システム , TeXinf0 に 近いシステムを MS - DOS 環境で実現し た finfo システムほかを解説する。 ソフ ェアの 従来 , ソフトウェアのドキュメントとは 紙 ( 本 ) に書かれたマニュアルて、あるという ことになっていましたが , 計算機の作業に 関する情報を計算機の上て、見ることがて、き ないというのはよく考えてみればおかしな ことてす。しかし , 最近になってようやく オンラインヘルプの重要性が認められたよ 34 C MAGAZINE 1992 3 う - て、 , マイクロソフトやボ、一ランドのプロ グラム言語開発環境がオンラインヘルプに かなりカを入れているのはたいへんにめて、 たいことて、す。 MS - DOS の先輩て、ある UNIX て、は , 昔か に、コマンドやライプラリなどのマニュアル は , 基本的にディスクの上にオンラインマ ニュアルとしてファイルの形て、置かれてい X の man ました。これらは UNIX の man というコマン ドて、検索て、きます。 UNIX のマニュアルは , roff というテキス ト整形システムの man マクロを用いて書か れています。 man ファイルを troff ( システム によっては別の名前かもしれませんが ) とい う整形プログラムに通すと , たとえば通常 の文章部分はローマン体て、 , コマンド名は 太字て、 , さらに単語間のスペースを適当に 調整して・・ といった整形を行ってプリ ンタに出力します。同じファイルを nroff と