- PR -

ファイル読み込みに関する質問です

1
投稿者投稿内容
Boy
会議室デビュー日: 2007/01/20
投稿数: 7
投稿日時: 2007-03-08 22:01
お世話になっています。
大学での研究の一環で、非線形計画問題に着手しています。
目的関数の計算が大変複雑かつ高度なもので、外部の専用計算機に頼っていますが、
今の状態ではパラメタの更新を手動でやらなければならず効率が悪いです。

そこで、全てをオートで行えるようにしようとアルゴリズムを考えていますが、
計算結果の読み込みがうまくいかずここへやってきました。


1.あるパラメタ(数十成分)を与え、計算機を使って目的関数の値を求める
2.出力ファイルから目的関数の値を抜き出し、微分(成分毎の差分で代用)を求める
3.パラメタを更新する

アルゴリズム的には単純なものですが、2の部分がうまくいきません。
出力ファイルが半角英数字で構成される数百〜数千行のもので
そこのある一部分だけの数値を読み込みたいのですが・・・



簡単にいうと

#######RESULT###########
the final value1 -117.15
the final value2 -777.77
the final value3 -199.78



というファイルの中から「3行目の −777.77」だけを数値として取り出したいのです。
「ピンポイントで下から2行目のコード内の数値だけを読み込む」
という都合のいい方法は無いのでしょうか?
ランダムアクセスを使おうにも、数値は毎回桁も変わるため、該当箇所が何バイト目にあるかを指定する事が出来ません。

どうか知恵を貸してください。
よろしくお願いします。

引き続き自分でも色々と試してみます。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2007-03-08 22:53
JDK5ならjava.util.Scannerが向いているかと思います。
Javadocにサンプルが書いてありますので、参照してみるとよいでしょう。
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2007-03-08 22:59
引用:

Boyさんの書き込み (2007-03-08 22:01) より:
「ピンポイントで下から2行目のコード内の数値だけを読み込む」
という都合のいい方法は無いのでしょうか?



ひとつづつ読み込む処理ができるのであれば、前回の値を記憶しながら全部読み込むだけです。
コード:
int[] hoge;
int pre = 0;
int temp = 0;
for (i=0; i<hoge.length; i++) {
    pre = temp;
    temp = hoge[i];
}


みたいな処理があったとして、forループが終わった際にpreに残っているのは
最後から一つ前の値ですよね?
似たような方法でやればシーケンシャルなファイル読み込みで対応できますね。
Boy
会議室デビュー日: 2007/01/20
投稿数: 7
投稿日時: 2007-03-09 13:36
早速のレス、どうも有り難う御座います。

かつのりさん>
なるほど、ぜひ参照してみます。
ソフトによって出力ファイルがまちまちで、読み込みに本当に苦労していましたので。
どうも有り難う御座いました。


nagiseさん>
目からウロコ的な解です、それ。
今回は読み込む値の場所の相対位置が常に最後から2番目なのでそれでいけそうです!
有り難う御座いました。
1

スキルアップ/キャリアアップ(JOB@IT)