• ベストアンサー

<>で区切られたdatファイルをエクセルで管理

<>で区切られたdatファイルをエクセルで管理したいです。 管理というか、1回だけ一括して項目を入力したいんです。 何か良い変換方法やツールなどはありませんか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

すみません。↑のスクリプトを書いたものですが,少し間違ってました。 正しくは,下記のとおりです。 (具体的にはループの中のprint文がまずかったです。) $file = "test-data.txt"; open IN,"<$file" or die $!; while (<IN>){ chomp; @a = split "<>",$_; push @array,[@a]; } for ( $i=0;$i<scalar(@array);$i++ ){ for ( $j=0;$j<scalar(@{$array[$i]});$j++){ print $array[$i][$j],","; } print "\n"; } EXCELの質問をされていますが,このカテゴリはPerlのカテゴリなので,Perlのスクリプトでご回答させていただいていいのですよね?

その他の回答 (3)

  • ytaniike
  • ベストアンサー率0% (0/1)
回答No.4

perl が使えるのであれば、コマンドプロンプトで変換元ファイルに cd して (仮に、c:\tmp とします)、 c:\tmp> perl -pe 's/<>/,/g;' test-data.txt > test-data.csv を実行して、エクセルで開けば良いかと。 (test-data.txt ファイル各行の「<>」を全て「,」に変換し test-data.csv に出力しています。) 変換元ファイルがあまり大きくないのであれば、エディタで一括置換 するのも不可能ではありません。

回答No.2

こういうことでしょうか? #test-data.txt------------------- a1<>b1<>c1<>d1 a2<>b2<>c2<>d2 a3<>b3<>c3<>d3 a4<>b4<>c4<>d4 #-------------------------------- $file = "test-data.txt"; open IN,"<$file" or die $!; while (<IN>){ chomp; @a = split "<>",$_; push @array,[@a]; } for ( $i=0;$i<scalar(@array);$i++ ){ for ( $j=0;$j<scalar(@{$array[$i]});$j++){ print $array[$i][$j]; } print "\n"; } #結果 a1,b1,c1,d1, a2,b2,c2,d2, a3,b3,c3,d3, a4,b4,c4,d4, splitするときに,データを区切っている文字を指定すれば,たいていのデータは分割できます。 上記のようなスクリプトでいったんデータファイルを変換してから,取り込むというのはどうでしょう?

  • bule-mon
  • ベストアンサー率15% (47/295)
回答No.1

テキストエディタなどで一度読み込んで、<>と,やタブで置き換えてからエクセルに読み込んじゃダメなのでしょうか?

関連するQ&A