- ベストアンサー
外部ファイルから読み込んだデータを配列変換したい!
Japanese 72 99 40 Math 88 48 32 English 13 77 96 というデータファイル(test.dat)があります。数字は省略しましたが各200ずつ計600で、データ数はJapanese・Math・Englishの行含め全部で603です。上から順に出席番号1番2番・・・となりますので200人分の成績データということになります。 これら数値データを用いて各教科ごとの平均点を出したり、成績順に並べ替えたりしたいのです。 そのためにこのデータファイルの数値の部分だけ配列にしたいのですが、外部のファイル、しかも数値と文字が混じったデータを配列に変換するにはどうすればよいでしょうか。 [00],[01],[02]・・・・・・・・(以下200人分) [10],[11],[12]・・・・・・・・ [20],[21],[22]・・・・・・・・ というのをイメージしているのですが(列は出席番号・行は各教科)、他に良いアイデアはありますでしょうか。 申し訳ありませんが、ご教授願います。
- みんなの回答 (7)
- 専門家の回答
関連するQ&A
- 読み込んだデータを配列へ代入する方法
---ここから--- 1,2 3,4 ---ここまで--- このようなファイルを読み込んでデータを配列へ格納するには, $pathname="D://data.txt"; open MYFILE, "$pathname"; @list=<MYFILE>; for($i=0;$i<2;$i++){ @dat=split(/,/,$list[$i]); print @dat; } close MYFILE; といったようなforあるいはwhileで1つの配列(上の場合だと@dat)に1行のデータを繰り返し入れていく方法しか思い浮かびません。できれば1行目のデータは@dat1という配列へ,2行目のデータは@dat2という配列へ,といったように行ごとに別々の配列へ代入させたいのですが良い方法はないでしょうか。 もしくは@dat=([1,2],[3,4])のような2次配列の形にでもできれば最高なのですが、、、
- ベストアンサー
- Perl
- 固定長ファイルを配列に!
5行まで違うデータが入っていて 6行目から 347.44 14832 616 4.15 といったようなデータになっています。 この数値だけを配列に入れようと思うんですが どうすればよいでしょうか? ちなみに・・・ 1行ずつ文字列として配列に入れて 6行目に当たる配列から substrを使ってそれぞれ分けようと思ったのですが 小数点がない真ん中の二つのデータが うまくとれないんです。 わかる方よろしくお願いします。
- ベストアンサー
- PHP
- 連想配列(ハッシュ)のファイルへの書き込み方
連想配列(ハッシュ)のファイルへの書き込み方と、 そのファイルからの読み込み方で困っています。 たとえば以下のような連想配列(ハッシュ)があって %colorFile = ( 'red'=>'5', 'green'=>'10', 'blue'=>'3' ); この情報をサーバーの color.dat ファイルに書き込んで保存し、 変更があったときにファイルからデータを読み込むには どのようにしたらいいのでしょうか? 連想配列(ハッシュ)のまま保存すると color.datの中身が green10blue3red5 のようになってしまい、 読み込んだときに連想配列(ハッシュ)に復元できません…。 よろしくお願いします。
- ベストアンサー
- Perl
- ファイルからデータを読み込んで、配列に格納する方法
データファイル grep.dat があり、その中は 12345 67890 ABCDE (EOF) となっています。 このファイルの中身を読み込んで、配列 P[0]の 中に("12345","67890","ABCDE") に格納したい のですが、どのように記述すればよいでしょうか。
- ベストアンサー
- Perl
- 配列の並び替え
下のように5つの配列がA~E列まであって、2、3行目にデータが入っています。このときに、2行目の値が3行目の値より小さい配列で、かつ、2行目の値が小さい順に並べる。その後に、3行目より、2行目の値の方が大きい配列を3行目の値が大きい順に並べるマクロコードを教えてください。 A B C D E←列 1 1 2 3 4 5←配列番号 2 4 9 8 6 2 3 1 5 7 10 3 ↑ 行 ↓ A B C D E 1 5 4 3 2 1 2 2 6 8 9 4 3 3 10 7 5 1
- ベストアンサー
- Visual Basic
- ファイルの中の配列データの変更
以下の内容のファイル A.datがあります。 "34"-"情報処理" "87"-"会計" "99"-"社会学" [EOF] いま、"87"と"医学"という値がPerlの引数で与えられたとして "87"-"会計" → "87"-"医学" というふうに置き換えたいのです。 "87"と一致する行を配列に読み込むことはできました。 "87"-"会計"の"会計"も読み出せます。"87"-"医学"にも置換でき ます。しかし、それを元のファイルA.datにそこの部分だけを 変更して書き戻すことができません。 どのようにしたらよいのでしょうか。
- 締切済み
- Perl
- 配列を変更しファイルに書き込むとなぜか古い配列も・・・
WEB上のCGIで、 ファイル(file.dat)から配列@lineを読み込み、 @line=(01,02,03) となっているときに、配列を操作して @newline=(01,03) とし、この @newline を open(OUT,">file.dat"); print OUT @newline; close(OUT); と処理したところ、なぜか、その中身は 01 03 01 02 03 となってしまいます。つまり、新しいデータ以外に古いデータも書き込まれるのです。 いろいろ試しました。書き込みの前後で@newlineの中身を画面に表示するなどして 確かめましたが、そこには異常はありません。 また、いろいろ変えていくと、場合によっては、ファイルの中身は 01 03 00001 01 02 03 などという訳の分からないことになってしまいます。 追加書き込みの可能性はありません。 試しに @newline の中身を空にして書き込みしてみると、 この場合は ファイルの中身も空になっています。 つまり、 @newlineの中身が有るときは、 画面上には正しく表示されるのに、ファイルに書き込まれるときには、 古いデータ(場合によっては変なデータも)も一緒に出力されていると言うことです。 こういう現象の原因として何が考えられますでしょうか? 今まで、数々のファイル操作をしてきましたが、こういったことは 初めてです。 どうかご教授下さい。
- 締切済み
- Perl
- ファイルから文字列を読み込んで、検索するプログラム
以下のようなプログラムをつくりたいのですが、 どうしたらよいでしょうか?? 文字列を配列型に入れるときにわからなくなって しまうのですが。。。 ファイルからデータを順番に読み込み,メモリ上に一次元配列構造に並べて線形探索するプログラムを作成せよ. データの仕様 一行に、 「番号(スペース)読み仮名(スペース)文字列(住所)」 があり、これが10~1000行ほど、ファイルに(.dat) 入っている。 ファイルを配列に読み込んだあと、 番号を入力すると、住所が検索されてでてくる。 問題文も微妙なのですが、 これは番号の配列と住所の配列は別にして、 検索したほうがいいですよね、、? 何かヒントになることだけでも良いので、 よろしくお願いします!
- ベストアンサー
- C・C++・C#
- 1次元配列「成績」の中に、学生5人分の得点が格納さ
1次元配列「成績」の中に、学生5人分の得点が格納されている。 配列内のデータを得点の高い順に並び替える流れ図を作成しなさい。 配列:成績 配列:成績 69 56 97 66 71 →97 71 69 66 56 これの求め方を教えて下さい。
- ベストアンサー
- 情報処理技術者
- 表示中の表をデータファイルに格納する
5列×10行の表を表示させました。 その表の1行をレコードとして、5列×10行(つまり10 レコード分)のデータを @hyouji という配列に格納したい のですが、どのような方法があるでしょうか。 @hyouji の配列内では、要素の長さによるずれはあるものの 表通りの順になります。
- 締切済み
- Perl
お礼
ご回答ありがとうございます! ソースを参考にして、無事希望するものを作成することができました!! 本当に助かりました。こころよりお礼申し上げます。