CGI-BBS > CGI > Perl > PerlについてCSVの検索でヒットした1行を削除および修正したい。


カレッヂ
カレッヂ


質問者 サバンナ  投稿日 2005/9/22(木) 17:45:07
perl初心者のサバンナと申します。

こちらで配布されているCSVエディタを利用させていただいております。

CSVエディタで作成したCSVファイルがあり、
エディタのcgiからではなく、他のcgi,htmlから
CSVファイルを検索して、ある項目がヒットしたら
その行を削除もしくはその行のある項目を更新したいのですが

(例えば、項目3番目が検索によりヒットした行があるので、
項目5番目の数字を1増やす・・・)

どのようにしたら良いのでしょうか?

もしよろしければ、どなたかご指導お願いいたします。

CSVエディタは、項目数を増やしただけで、他の改造は行っておりません。

【習熟度】(未選択)

回答者 sim  [削除]  投稿日 2005/9/23(金) 10:58:00
>項目3番目が検索によりヒットした行があるので、
>項目5番目の数字を1増やす・

このように用途が決まっていればそのままプログラムを書けば良いんじゃないかと思います。
汎用的に作ると難しいかもしれません。


------------------------------------------
#!/usr/bin/perl

$str = "ccc";
$flag = 0;

open(OPEN,"xxxx.csv");
@LOG = <OPEN>;
close(OPEN);

foreach(@LOG){
	@logs = split(/,/);
	if(index($_,$str) > -1){
		$logs[2]++;
		$flag = 1;
	}
	push(@newdata,join(",",@logs));
}

if($flag == 1){
	open(OUT,"> xxxx.csv");
	print OUT @newdata;
	close(OUT);
}
------------------------------------------
こんなのはどうでしょう。
質問者 サバンナ  [削除]  投稿日 2005/9/23(金) 13:54:29
Sim様

ありがとうございます。できました!
先日もご指導いただきありがとうございました。
またよろしくお願いいたします。

返信(回答)する

 


Web裏技