OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

CSVファイルに出力

  • すぐに回答を!
  • 質問No.123741
  • 閲覧数302
  • ありがとう数4
  • 気になる数0
  • 回答数4
  • コメント数0

お礼率 100% (20/20)

Perlを使ってCGIを作っています。
そこで、資料請求フォームを送信した時に、CSV形式で出力するんですけど、ファイル名を現在日時を取ってきて例えば200108.csvみたいに年と月を付けたファイルを作って、出力させたいのですが、どうやって良いのか困ってます。
お教え願えないでしょうか。
よろしくお願いします。
通報する
  • 回答数4
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.3
レベル5

ベストアンサー率 57% (4/7)

miya_777さんの回答に補足:


#--ローカルタイムを取得 $yearに年、$monに月が入る
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time);

# ただし、$yearはには1900年からカウントした値があるので、
# 年を4桁で表記するには1900を足す必要がある。
$year +=1900;

# また$monには0~11の数値が入るので+1する
$mon = $mon+1; # $mon++ でも可

# 一桁の月(1~9)を2桁にする 例) 8->08 9->09
$mon = sprintf('%02d',$mon);

$file = "$year$mon.csv";

#これで2001年8月の場合は$fileが"200108.csv"になるはずです。
補足コメント
verine

お礼率 100% (20/20)

ご解答ありがとうございます。
上記のようにしてみたのですが、ファイルが作られませんでした。
投稿日時 - 2001-08-30 16:26:39
お礼コメント
verine

お礼率 100% (20/20)

サーバを変更しましたら、freeskさんのやり方できちんと作ることができました。
ありがとうございました。
投稿日時 - 2001-11-20 15:24:10
-PR-
-PR-

その他の回答 (全3件)

  • 回答No.1
レベル9

ベストアンサー率 36% (37/102)

#!/usr/local/bin/perl $chop($date_str = `date`); $date_str =~ s/ /_g; (適当に date_str を編集) $filename = $date_str . ".cvs"; でどうでしょう? ...続きを読む
#!/usr/local/bin/perl

$chop($date_str = `date`);
$date_str =~ s/ /_g;
(適当に date_str を編集)
$filename = $date_str . ".cvs";

でどうでしょう?
お礼コメント
verine

お礼率 100% (20/20)

アドバイス有難うございます。
Perl初心者なもので、$date_strを適当に編集というところが、どうしていいのかよくわからないんですけど、アドバイス感謝しております。
投稿日時 - 2001-08-30 11:13:49


  • 回答No.2
レベル10

ベストアンサー率 31% (44/140)

($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtimZ(time); とすれば、$yearと$monに年と月が入ります。 これを使えばOKかと。 ...続きを読む
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtimZ(time);

とすれば、$yearと$monに年と月が入ります。
これを使えばOKかと。
お礼コメント
verine

お礼率 100% (20/20)

ご解答ありがとうございます。
でも、初心者の私には上記だけではちょっとわからないです。
投稿日時 - 2001-08-30 16:26:27
  • 回答No.4
レベル10

ベストアンサー率 47% (88/185)

ファイルの新規作成の方法がわからない、 ということなのでしょうか? 日付の取得は、下にみなさんが書いておられる方法で バッチリだと思われるので。 下の方が書いている方法で日付を取得して、$date_strに格納し、 $file = "$date_str.csv"; #↓日付と同じファイル名がなかったら、ファイルを作成 if(!open(F,"&g ...続きを読む
ファイルの新規作成の方法がわからない、
ということなのでしょうか?

日付の取得は、下にみなさんが書いておられる方法で
バッチリだと思われるので。

下の方が書いている方法で日付を取得して、$date_strに格納し、


$file = "$date_str.csv";
#↓日付と同じファイル名がなかったら、ファイルを作成
if(!open(F,">$file")){open(">>$file");chmod 0666,$file;}


これで出来るとは思いますが、

中程に書いてある chmod 0666 は、
ファイルのパーミッションを変更するコマンドですので、
このコマンドが効かないサーバでは、
ファイルを作成できない可能性があります。
(プログラムから新規にファイルを作成することが出来ないサーバもあります。)

そうなったら、サーバを変えるしか方法はないと思われます。

ひとまずやってみてはいかがでしょうか。
お礼コメント
verine

お礼率 100% (20/20)

回答ありがとうございます。
投稿日時 - 2001-11-20 15:24:54
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ