• ベストアンサー

perlでの、ファイル読み込みについて

buffalomasaの回答

回答No.2

my @array; for (<DATA>) {   chomp;   push @array, [ split / / ]; } print $array[0][0]; # a print $array[0][1]; # b print $array[0][2]; # c print $array[1][0]; # d __DATA__ a b c d e f g h i

ramusi
質問者

お礼

ありがとうございました。大変参考になりました。どちらも大変参考になりましたが、ベストアンサーは残念ながら一人しか選べないので、先にお答えくださった方とさせていただきます。

関連するQ&A

  • perlでアドバイスをお願いします。

    あるテキストファイルが以下の内容で記述されているとします。 a   file1 a   file1 a   file1 b   file1 b   file1 b   file1 c   file2 c   file2 d   file2 d   file2 e   file2 e   file2 f   file3 f   file3 f   file3 上記のように列が二つあるテキストファイルについて、 2列目のfile名が1列目のどの値とひもづいて いるかを処理するperlプログラムを作ることを考えます。 出来上がったperlによって上記テキストファイルを処理した結果は、 file1は aとb file2は cとdとe file3は f とひもづいていることが分かる ということにしたいです。 これをperlプログラムで書くとき、条件として 一行一行を読みとるとき if ( $_ =~ /(\S+)\s+(\S+)/ ){ を使っています。 そのため$1と$2に現在行の1列目,2列目が与えられた後、 ハッシュと配列を組み合わせて考えた場合どのようにすれば いいのでしょうか。 また仮にテキストファイルの続きが存在し、 1列目がg 、2列目がfile1 の行があるとき 2列目で既に出てきた同じfile名はエラーとすることも考えた 場合どう記述するのか合わせてお願い致します。 長くなってしまい申し訳ないのですが、 ご指導ご鞭撻宜しくお願い致します。

  • perlでご助言お願い致します。

    あるテキストファイルが以下の内容で記述されているとします。 a   file1 a   file1 a   file1 b   file1 b   file1 b   file1 c   file2 c   file2 d   file2 d   file2 e   file2 e   file2 f   file3 f   file3 f   file3 上記のように列が二つあるテキストファイルについて、 2列目のfile名が1列目のどの値とひもづいて いるかを処理するperlプログラムを作ることを考えます。 出来上がったperlによって上記テキストファイルを処理した結果は、 file1は aとb file2は cとdとe file3は f とひもづいていることが分かる ということにしたいです。 これをperlプログラムで書くとき、条件として 一行一行を読みとるとき if ( $_ =~ /(\S+)\s+(\S+)/ ){ を使っています。 そのため$1と$2に現在行の1列目,2列目が与えられた後、 ハッシュと配列を組み合わせて考えた場合どのようにすれば いいのでしょうか。 ご助言ご鞭撻宜しくお願い致します。

    • ベストアンサー
    • Perl
  • C言語での、テキストファイル読み込みについて

    30行×30列の数字が記載されてテキストファイルがあり、 それをC言語で例えばA[ ][ ]といった配列に読み込みたいのですが、 どうすればよいでしょうか? fscanf関数を用いればできないことはないと思うのですが、 30個も書かなければならないのは冗長なので・・・。 なにかよい方法はありますでしょうか?

  • ファイル操作について、テキストファイルの書き換え

    よろしくお願いします。 データファイルAからデータを取得して、テキストファイルBの内容の一部を取得したデータで書き換えるという操作を行うプログラムを作りたいです。 具体的には、 データファイルA[A.txt]の中身 111 222 333 444 テキストファイルB[B.txt] 文字列1="123" 文字列2="234" 文字列3="345" 文字列4="456" というような二つのファイルを読み込み、B.txtの""で囲まれた部分を、A.txtで取得したデータで置き換えるような操作を行いたいのですが・・。 使用する言語としてはスクリプト言語であるperl、もしくはプログラム作成経験があるCを使用しようと思っています。(perlは未経験で入門書を読んでいるレベル)

    • ベストアンサー
    • Perl
  • C言語 CSVファイルの読み込み

    前回の質問が説明不足だった為、こちらでもう一度詳しく補足を加え再度質問させていただきます。 ↓前回の質問 http://okwave.jp/qa/q6352672.html 読み込むCSVファイルは数値のみです。 具体的な例として数値をあげさせていただきます。 例:ファイル名 test.csv 10,1.1,1.2,1.3 20,2.1,2.2,2.3 30,3.1,3.2,3.3 上記のような4列3行のCSVファイルをC言語を使用し、 10→a 1.1→b 1.2→c 1.3→d 20→e 2.1→f 2.2→g 2.3→h 30→i 3.1→j 3.2→k 3.3→l といった具合に、任意の列・行の数字を任意の場所へ読み込みをするということが出来ません。 例をプログラムにするとどのようになるのか教えていただきたいです。 よろしくお願いします。

  • エクセルファイルの計算の処理について

    エクセルファイルの計算の処理について質問です。よろしくお願いします。 例えば、9000行ほどあるファイルなのですが、2行目と3行目のB列、C列、D列のセルの中身を足して2で割る(平均をとる)計算をし、3行目のA列のセルの中身をそのままにするという処理をし、次に4行目と5行目で処理をするということを最後まで行うことは可能でしょうか? 元のファイルの内容 (行)(列) A B C D  1  2   あ 5 5 5  3   い 3 3 3  4   う 2 2 2  5   え 4 4 4 ...   ↓↓↓↓↓ 処理後のファイルの内容 (行)(列) A B C D  1  2   い 4 4 4  3   え 3 3 3 ... わかりやすい方法があれば教えてください。もし、プログラミングが必要なら、JavaやC言語なら少しだけ知識があります。 ちなみに、ソフトはWindows ExcelではなくOpenOffice3.1を使うことが多いです。 わかりにくい文章で申し訳ありませんがよろしくお願いします。

  • ファイルの読み込み

    a,b,c,d,e,f g,h,i,j,k,l のような1行に5つのデータがカンマで区切られ並んでいるテキストファイルがあります。(行数は決まっていません) これを読み込みリストビューに表示させたいのですが、うまくいきません。 誰かうまい方法を教えてください。

  • ファイルの読みこみ方法とファイルの参照

    C#でファイルの読み込み方法とそのテキストの参照方法を教えて頂きたいです。 例えば D:\Work\Test.csv に以下のようなテキストがあるとします。   A列目   B列目   C列目 1行目 あいう  かきく   さしす 2行目 たちつ  なにぬ   はひふ 2行目のB列目の「なにぬ」を参照したいのです。 例えばその「なにさ」をメッセージボックスで出力するような処理です。 よろしくお願いいたします。 ※プログラム初心者なので、あまり難しい回答ですと、 理解できないかもしれないです。すいません。

  • Perlでエクセルからテキストファイル生成

    Perlを使い、エクセル表からデータを読み込みテキストファイルを生成したいと思っています。 Perlについて知識はほとんどありません。 サンプル記述等で教えていただけたら助かります。 下記のようなエクセル表があるとします。 <"PARAMETER.xls">   A    B   C +-------+------+--------+ 1| XXX | 32 | 0000 | +-------+------+--------+ 2| YYY |  8 | 000A | +-------+------+--------+ 3| ZZZ | 16 | 1000 | +-------+------+--------+ 4|    |  8 | 000A | (注)"A"列には記入が無いので無視。 +-------+------+--------+ 5| WWW | 32 | F000 | +-------+------+--------+ エクセル表を読み込み、下記の変換方法に従い テキストファイルを生成したいのです。 ●変換方法(基本構文) --------------------------------- if(DTin = "C") <--"C" 列のデータと比較します。 "A" = DTout("B-1":0); <--"A" 列の変数名に、"B-1"の値を代入します。 <-- 改行します。 --------------------------------- 変換後 生成されたファイルは下記を考えています。 ◆生成ファイル "Source.txt" ---------------------------------- if(DTin = 0000) XXX = DTout(31:0); if(DTin = 000A) YYY = DTout(7:0); if(DTin = 1000) ZZZ = DTout(15:0); if(DTin = F000) WWW = DTout(31:0); ---------------------------------- (注)4行目の"A"列には記入が無いので無視します。 以上、ざっくりとした説明で申し訳ありませんが、 よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • テキストファイルのデータをエクセルへコピーのやり方

    よろしくお願いします。 エクセル2000を使っています。 テキストのデータで A1/B1/C1    /はスペースです。 D1/E1/F1    データの長さは全部違います。 A2/B2/C2     D2/E2/F2 A3/B3/C3     D3/E3/F3      ・    ・(続く) といったものがあります。これをエクセルで    A列 B列 C列 D列 E列 1行 A1 B1 C1 D1 E1 2行 A2 B2 C2 D2 E2  ・・・ 3行 A3 B3 C3 D3 E3  (続く)          ・          ・(続く) という感じで別々のセルにいれて貼り付けしたいのです。 テキストデータを別々のセルに貼り付けする方法は 過去ログで「区切り位置」というのをつかえばいいというのはわかりましたが、この場合の複数行にわたるテキストデータをエクセルの1行に貼り付けする方法がわかりません。また、データの長さが違うために「区切り位置」もうまくいきません。 良い解決法をお願いします。