プログラムを使うための知識 |
目 次 |
最低限の知識1 プログラムの動く環境:コマンドプロンプト 大事な注意:Windowsでは同じ名前のファイルをコピーしようとすると,「同じ名前のファイルがあります」という警告が出てきます。しかし,コマンドプロンプトではそのような親切はありません。同じ名前のファイルを作成すると,無条件に前のファイルの上に重ね書きされます。くれぐれもご用心ください。 コマンドプロンプト内では,大文字と小文字の区別はありません。例えば,AAA.datとaaa.datも同じ意味です。ただし,作る際には大文字で設定すれば大文字の,小文字で設定すれば小文字の名前でファイルが作られます。 1.1 コマンドプロンプトとは プログラムはWindows上ではコマンドプロンプトの上で実行されます。コマンドプロンプトはWindowsの前のOSであるMS-DOS時代のものですが,今も,用意されています。 スタートマークのメニューの中に があります。ここで,コマンドプロンプトを選択すると,次の画面が出てきます。 ただし,これからプログラムが実行できる環境になるまでには少し手間が掛かります。これについては,応用知識を見てください。以下では最も簡単な使い方のみを示します。 1.2 プログラムの保存場所 コマンドプロンプト上でコマンド(プログラム,ファイル名など)を入力するとコマンドプロンプトは,1)現在のフォルダ,2)Pathで指定した場所,を探しに行きます。つまり,現在のフォルダを探し,なければPathで指定した場所を探しに行くわけです。これ以外に,3)プログラムの入っている場所を実行時に指定する。という方法もあります。ここでは,一番簡単な,現在のフォルダ(一般には,データの入っているフォルダ)にプログラムの一緒にあるあることにします。 1.3 プログラムの実行 まだ,コマンドプロンプトを開く方法を示したわけではありませんが(3章参照),仮に開いていたとしての話です。 コマンドプロンプトで次のように入力します。 プログラム名<データファイル>出力ファイル たとえば,YUSAYUSA.exeを実行プログラムのファイル名として YUSAYUSA.exe<DATA.dat>OUT.out ここで,DATA.datは,マニュアルに説明してある入力データとなるテキストファイルです。またOUT.outは計算結果が出力されるテキストファイル名です(ファイル名は自由です。)。もし,この部分がなく, YUSAYUSA.exe<DATA.dat と入力すると,結果がコマンドプロンプトに表示されます。ただし,コマンドプロンプトは多くの行を記憶することができないので,出力が多すぎると最初の方が消えてしまうので,全くお勧めしません。また, YUSAYUSA.exe と入力すると,入力データはコマンドプロンプトで入力していく事になります。1~2行程度の入力データでしたらこれもありでしょうが,普通はお勧めしません。 ただし,現状では,この入力をするコマンドプロンプトを開くことができません。そこで,次に示すバッチファイルを作って実行します。 1.4 バッチファイル バッチファイルは,拡張子が「bat」であるファイルです。テキストファイルですが,実行形式のファイルという面白いファイルです。例えば,「GO.bat」というファイルを作るとします。テキストファイルですから,中身はテキストです。そこで,その中身を YUSAYUSA.exe<DATA.dat PAUSE の様に作ります。バッチファイルでは実行できるプログラムしか入力できません。実行プログラムを最初から順番に実行していくのがバッチファイルの役割です。この例では,YUSAYUSA.exeを実行し,終了後PAUSEを実行するというのがこの内容です。 エクスプローラ上でこのファイルをダブルクリックすると,コマンドプロンプトが自動的に開き,プログラムを実行し,終わった時点でコマンドプロンプトが動作を停止します。何かキーを押すとコマンドプロンプトが閉じます。 実は,PAUSEの行は必要というわけではありません。ただし,この行がないと,YUSAYUSA.exeの実行が終わるとコマンドプロンプトが閉じます。順調にプログラムが実行されているのなら問題がないのですが,エラーの表示があるときは,コマンドプロンプト上に表示されます。それを見るために,PAUSEを入れて,プログラムの実行が終わったときにコマンドプロンプトが閉じないようにしているわけです。 2 データの作り方(FORTRANのデータ) 2.1 FORTRANのファイル FORTRAN で用いられるファイルには,書式付きと書式なしがあります。 書式付きは ASCII コードで書かれているもので,いわゆるテキストファイルです。標準的な入出力ディバイスはもちろんこの形式です。入力データをWindowsのテキストエディターなどで作れば,自動的にこの形式になっているので,ユーザーは特に気にする必要はありません。 これに対して書式なしファイルはバイナリーで書かれているので,同じ内容を記述するのにファイルサイズは小さくなりますが,内容を直接見ることはできません。内容を取り出すには,書かれた書式と同じ書式で読みとる必要がああります。例えば,地震応答解析の時刻歴などはデータ量が膨大になりますので,この形式で出力されています。しかし内容を直接見ることはできません。内容を取り出すには,書かれた書式と同じ書式で読みとる必要がああります。私のプログラムでは,専用の読み込み,出力ファイルも用意しています。 Unix,Macなど,他のOSで作ったデータをコピーして使うときには,次の点に注意してください。 (1)ファイルの日本語コード (2)改行マーク このうち,日本語のコードはテキストで見れば異常かどうかがすぐわかります。一方,改行マークは目に見えません。使うのは, 文字コード:Shift-JIS 改行コード:CR+LF です。コードの変換は,多くの無料のソフトが公開されています。例えば,Vectorのサイト https://www.vector.co.jp/vpack/filearea/win95/util/text/conv/code/ に多く紹介されています。 なお,改行コード,CRはキャリジリターン,LFはラインフィードの意味で,昔の英語のタイプライターから来ています。CRは同じ行で前の方にタイプ位置を動かす,LFは1行送るという意味です。従って,CR+LFは改行してタイプ位置を先頭に持ってくると言う意味です。しかし,現在のテキストファイルでは両方を指定する必要はない(CRに相当する操作がない)ので,他のOSではLFだけで改行を表していることもあるので,注意が必要なのです。 2.2 FORMAT FORTRAN では,書式付きファイル(テキストファイル)に書かれている内容を判断するために,FORMAT という特殊な方法でデータの種類を指定します。つまり,プログラムが要求するデータに合わせるように,指定された場所に指定されたデータを用意する必要があります。例えば,整数が要求されているところに,文字や実数を入力してはいけないのです。 プログラムではFORMATという形式で読み込むデータの種類と数字を書く場所を指定しています。 例えば,(I5, 2X, F6.0, 2F7.3, A9)とプログラムでFORMATを指定したとき(これは,入力マニュアルにも書いてあります),行の左から,5桁の整数,2桁のスペース,6桁の実数,7桁の実数二つ,9桁の文字の入力が必要となります。例えば次のような入力をしたとします ___56__5.64__2.65489_5.016__data_qqq (_はブランクを表す) すると,56,5.64,2.65489,5.016という数字ととdata_qqqという文字が入力されます。 マニュアルには,何桁目から何桁目に入力するという様にも書いてありますので,間違えないでください。なお,整数は右寄せ,文字は(ブランクも意味があるので)左寄せで入力するのが約束です。また,実数は小数点があれば,どこに書いてあっても構いません。 |
3 コマンドプロンプトの使い方 3.1 コマンドプロンプトの開き方 Windows10からコマンドプロンプトは標準ではなくなり,PowerShellが標準になりました。そちらでも同じことはできますが,コマンドプロンプトの常識がほとんど通用しなくなります。もちろん,最初にも書いたように,コマンドプロンプトは今でも使えます。ただし,最初に書いた方法では,c:\ユーザー\ユーザー名が開きますので,それから,データの入っているフォルダに移動する必要があります。cdというコマンドを使えばできますが,結構やっかいです。そこで,エクスプローラのフォルダ名を右クリックし「コマンドウインドウをここで開く」というメニューを出して,それをクリックすればそのフォルダが開くようにしておけば便利です。 多くのWebサイトに方法が載っています。ただ,レジストリーをいじるので,結構やっかいです。ところが, このサイト にそれらを自動でしてくれるregファイルがアップされていました。こちらを右クリックして名前を付けてリンク先を保存で保存していただくと,それをダブルクリックするだけで可能になります。レジストリーをいじるので,自己責任でと書いてあります。私はあちこちで使っていますが,問題は起きていません。ただ,ドライブのルートではこの機能は働きません。メニューはあるのですがエラーメッセージが出てきて,動きません。それ以下のフォルダでは問題なく動いています。 ただし,この方法では,レジストリーを変更する必要があります。それがいやだという人には,もうちょっと手間が掛かりますが,次の様な方法もあります。
|