環境:
main()
あるファイルの行数を取得する関数ってあるんでしょうか?
jkl
($#a + 1) + "\n";
格納できたほうが好都合なので 今模索しています。。。
my $input_file="input.csv"; $data[$i]=Encode::from_to($data[$i],'shiftjis','utf8'); #Shift-JISからUTF-8に変換 文字コードがShift-JISのCSVファイルを読み込み、UTF-8のテキストファイルに出力するのに {
my($indx) = shift;
} else {
fprintf(stderr, "Can't open file\n");
}
@x = ("A", "B", "C", "B", "A");
### 少しマニアックな方法
"data" => "@data",
そもそもperlではできないのでしょうか?
int
elsif ($data eq "perl") { $fl...続きを読む, 超初心者です。
ソート対象のリストのうちの2つの要素がセットされます。grep, map
;
の $_ と同じようなもので、sort では同時に2つの要素を処理するため
C 3, 「配列 Perl」に関するQ&A: perlの無名配列の使い方を教えて下さい。, どうもありがとうございます。
print if /^hogehoge$/ .. /^perl$/ and !/^(? }
while () {
以下のように色々な方法があると思います
hoge.txt
open (FILE, "hoge.txt");
}
以下のようなCSVファイルがあります。
Perlで以下のようなことをしたいと考えています。
cshで書くと
chomp $data;
大阪,はじめまして
よって、** 出力に関することだけに注目したら ** for(my $i=0;$i<@data;$i++){
って形にするとエラーになります。
elsif ($data eq "perl") { $flag = 0 }
1) @sorted = sort { $a cmp $b } @x; # { $a cmp $b } は省略可
for(my $i=0;$i<@data;$i++){ push @data, [ split /\s+/ ];
} my($cols) = 0;
2) のソートブロック { $x[$a] cmp $x[$b] } の $x[$a], $x[$b] は、配列
return 0;
6 / クリップ
■CSVファイル
"; while (){ 基本的な文法は頭に入れたつもりでしたが、まだポインタと ファイルの入出力に苦手意識があり 実際うまくできないでいるので
{{5,3},{7,2},{8,4},{10,5}}, teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。, 評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。, 上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。, 組み込みの2次元配列なら、たぶんできないと思います。
このファイルの中身を読み込んで、配列 P[0]の
C,Z,5
コマンド $arg
example.log
配列のソートには要素そのものを並べ替えるほかに、
$fh->close;
うまく実現...続きを読む, #include
{ $a <=> $b } # 数値比較
for(my $i=0;$i<@data;$i++){ 2次元配列a[n][2]を、ライブラリのsort関数を使ってa[i][0]の値をキーとしてソートすることはできますか?pairを使えばできますが、使わずにできるのでしょうか?, ex. open(F,"$_"); ##openする。
それでいいと思いますよ?これをそのままコード化すると、こんな感じでしょうか。(No.1さんのとはちょっと結果が違います。)
ActivePerl v5.16.0を使用し、Encodeモジュールのfrom_toを使用しています。 1, 【募集】 ghi
open FD, " $y[$a] cmp $y[$b]
二次元配列は普通の配列に、配列のリファレンス(C言語で言うポインタのようなもの)が並んでいるものなので、これを解釈してやる必要があります。
my($tbl) = {"name" => "$file",
chomp ($_); abc
Perlにですね。ないはずです。
ファイルに記述されている数値を足したり引いたりするのですが、forを使っての計算の際にファイルの行数が必要となりました。. my($this)->shift;
}
__DATA__
sub get_data(){
あと#2にあったfrom_toの使い方。マニュアルをよく読みましょう 今回練習しているのは 先に述べたように、テキストファイルに
二次元配列に格納したいのですが、何を勘違いしているのか、
3 / クリップ
よって、** 出力に関することだけに注目したら ** if ((fin = fopen("test.dat", "r")) == NULL){
では、例えば以下のような表を配列で扱うことを考えてみます。 exit(1);
}
#get_data()でデータを取得する
しましょう。, 配列が複数あって、キーを3つでソートする場合には
ついでにPerlIOを使って @{$p[0]} = ; ・・(a)
package main;
2次元配列a[n][2]を、ライブラリのsort関数を使ってa[i][0]の値をキーとしてソートすることはできますか?pairを使えばできますが、使わずにできるのでしょうか? ex. return $this->{data}
use utf8; {
my $input_file="input.csv";
ただいまC言語を勉強中の学生です。
print "行数:" . test
open (IN, $input_file) or die "$!...続きを読む, あの、私のや他の回答をよく読んで考えてください。
}
if ($data eq "hogehoge") { $flag = 1 }
`wc -l file.txt` . open FH, "example.log" or die $! printf("File does not exist.\n");
ですが、文字コードの変換が項目毎に違うなんてことはまず無いでしょう。 ソートを行っている部分は、<=> のところだけではなく cmp によっても
:hogehoge|perl)$/;
(重複行になる、と#1に書いたのはchompのことを失念していた私のミスです)
my @p;
for(my $i=0;$i<@data;$i++){
==================================
Can't use string ("0") as an ARRAY ref while "strict refs"
$num = @list[1];
説明が下手ですいません。補足しますのでよろしくお願いします。, while(<*.data>)
char a[10];
67890
2) 下から3行目: $y[$a] cmp $y[$a] ---> $y[$a] cmp $y[$b]
use Encode; open (OUT, ">:utf8", $output_file) or die "$! open FH, "example.log" or die $! ªAê³zñÅàñ³zñÅàAzñvfÌzñÔiYjÍ0©çpÓ³êĢ鱯Éӵĺ³¢B, ñ³zñÅgíêé½d[vÍdvÈTOÈÌÅAµÁ©èÆðµÄº³¢B@, ÅÍAÀÛɨÙÌèã°ÂðßévOð©çìÁÄ¢«Üµå¤B@, @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.
$data[$i]=Encode::from_to($data[$i],'shiftjis','utf8'); #Shift-JISからUTF-8に変換 行数とはファイルに書かれた改行文字の個数ということなので
sort { $x[$a] cmp $x[$b] or $y[$a] cmp $y[$b] or $z[$a] <=> $z[$b] } 0 .. $#x;
これは良くあるミスとして何が原因でしょうか?, No.2です。書き漏らしてましたが、エラーメッセージの内容がよくわからない時は
2) @order = sort { $x[$a] cmp $x[$b] } 0 .. $#x;
open FD, "