[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 03/05 22:17 / Filesize : 217 KB / Number-of Response : 841
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Perlでリクに答えるスクリプトを作るスレ



1 名前:(・∀・)チンポー!! mailto:(・∀・)チンポー!! [04/06/02 11:39]
perl書きなんだがさ、こうリクに答えてなんか作りたいんだ。
だからリクエストをくれ。

266 名前:デフォルトの名無しさん [2005/10/09(日) 12:27:47 ]
リク。

昇順にソートされた正の整数が一行に一個づつ書かれたファイルを標準入力から与えると、
その数の範囲を分かりやすく標準出力に表示してくれるスクリプトキボン。

例:
入力
1
2
3
100
101
105
出力
1-3,100-101,105

267 名前:デフォルトの名無しさん mailto:sage [2005/10/09(日) 16:03:48 ]
>>266 俺頭悪いからこんなソースしか書けんわ。すまん。
#!/usr/bin/perl
$|=1;

$file = <STDIN>;
chomp $file;

open(FH, $file);
while (<FH>) {
chomp;
push @vals, $_;
}
close(FH);

$head = $vals[0];
$buf .= $vals[0];
shift @vals;
foreach $val (@vals) {
if($head + 1 == $val){
$buf .= '-';
$head = $val;
next;
}
if($val > $head + 1){
$buf .= $head.','.$val;
$head = $val;
next;
}
}

$buf =~ tr/-//s;
print $buf;

268 名前:デフォルトの名無しさん mailto:sage [2005/10/09(日) 16:05:07 ]
しかもそれマトモに動かんわ・・無視してごめん

269 名前:デフォルトの名無しさん mailto:sage [2005/10/09(日) 16:41:22 ]
物凄い勢いで修正

#!/usr/bin/perl
$|=1;

$file = <STDIN>;
chomp $file;

open(FH, $file);
while (<FH>) {
chomp;
push @vals, $_;
}
close(FH);

$head = $vals[0];
shift @vals;
print $head;
foreach $val (@vals) {
if($head + 1 < $val){
if($flag){ print $head; }
print ',', $val;
$flag = 0;
}
if($head + 1 == $val){
if(!$flag){ print '-'; }
$flag = 1;
}
$head = $val;
}

270 名前:266 mailto:sage [2005/10/09(日) 17:14:55 ]
>>269
ありがとうございます。完璧です。

標準入力に渡すのは、ファイル名じゃなくてファイルの内容のつもり
だったんですけど、これは私の依頼の文章のほうの問題ですね。
ありがとうございました。

271 名前:デフォルトの名無しさん mailto:sage [2005/10/09(日) 21:35:16 ]
>>263

半角10文字で作ってみた(自信なし)

#!/usr/bin/perl
while (<>) {
while (/.{10}.*?,/) {
print "$&\n";
$_ = " $'";
}
print;
}

272 名前:271 mailto:sage [2005/10/09(日) 21:38:21 ]
これが…
A:aaa,bbb,ccc,ddd,eee,ffff;
B:jjjj,kkkk,llll,mmmm,nnnnn,oooo,pppp,qqqq;
C:rrrr,ssss,tttttt,uu,ssss,cccc,ss;

こうなる
A:aaa,bbb,ccc,
ddd,eee,ffff;
B:jjjj,kkkk,
llll,mmmm,
nnnnn,oooo,
pppp,qqqq;
C:rrrr,ssss,
tttttt,uu,
ssss,cccc,
ss;


273 名前:271 mailto:sage [2005/10/09(日) 22:27:01 ]
A:aaa,bbb,ccc,ddd,eee,ffff;
B:jjjj,kkkk,llll,mmmm,nnnnn,
 oooo,pppp,qqqq;
C:rrrr,ssss,tttttt,uu,ssss,cccc,
 ss;

A:aaa,bbb,ccc,
 ddd,eee,ffff;
B:jjjj,kkkk,
 llll,mmmm,
 nnnnn,oooo,
 pppp,qqqq;
C:rrrr,ssss,
 tttttt,uu,
 ssss,cccc,
 ss;

( ゚д゚)ポカーン
10文字だよね??

責任とれや!!!!
    _, ,_  パーン
 ( ‘д‘)
   ⊂彡☆))Д´) >>1


274 名前:271 mailto:sage [2005/10/10(月) 08:57:36 ]
#!/usr/bin/perl

while (<>) {
  while (/.{22}.*?,/) {
    print "$&\n";
    $_ = " $'";
  }
  print;
}

A:aaa,bbb,ccc,ddd,eee,ffff;
B:jjjj,kkkk,llll,mmmm,nnnnn,
 oooo,pppp,qqqq;
C:rrrr,ssss,tttttt,uu,ssss,
 cccc,ss;

(;゚∀゚)=3ムッハー



275 名前:デフォルトの名無しさん [2005/10/14(金) 01:32:43 ]
TelneTでサーバにアクセスしてユーザーとパスを入れて、コマンドを打つ
その後に別のサーバーにログインするプログラムを作って
ください。お願いいたします

276 名前:デフォルトの名無しさん [2005/10/14(金) 12:21:10 ]
telnetやTelnet、あるいはTELNETなら聞いたことがあるんだが……



TelneTか……


277 名前:デフォルトの名無しさん mailto:sage [2005/10/14(金) 14:40:23 ]
>>275
search.cpan.org/~jrogers/Net-Telnet-3.03/lib/Net/Telnet.pm

簡単だから自分で作れ

278 名前:デフォルトの名無しさん mailto:sage [2005/10/14(金) 16:48:36 ]
>>1 :(・∀・)チンポー!!
おまい、スレたてたんだから少しぐらいやれよ!

279 名前:デフォルトの名無しさん [2005/10/14(金) 23:27:14 ]
ログインしているところまでは確認できるけど、WHOコマンド打たないんだよ

280 名前:デフォルトの名無しさん mailto:sage [2005/10/15(土) 00:42:13 ]
……

281 名前:デフォルトの名無しさん [2005/10/15(土) 20:44:15 ]
このスクリプトが動かないのですが何が原因ですか?
プロンプトは
Username:
password:
Router>
とういう風に変わっていきます。
Routerにログインしてwho打つとログインはしているようなのですが、
$t->cmd("ping 10.1.1.1");
のコマンドを打ってくれません。

教えてください。

#!/usr/bin/perl
use Net::Telnet;
$host='10.1.1.1';
$username='aaa';
$passwd='bbb';
$t = new Net::Telnet (Timeout => 4, Prompt => '/[a-zA-Z ]+: /', Dump_Log => 'telnet-log');
$t->open("$host");
$t->login($username, $passwd);
$t->waitfor('/[a-zA-Z]+>/');
$t->cmd("ping 10.1.1.1");
$t->waitfor('/[a-zA-Z]+>/');
$t->cmd("exit");
$t->close();

282 名前:デフォルトの名無しさん mailto:sage [2005/10/15(土) 20:52:45 ]
Net::TelnetのとこのPromptも [a-zA-Z]+> じゃないの?

283 名前:デフォルトの名無しさん mailto:sage [2005/10/15(土) 20:54:54 ]
あと、waitforは要らないんじゃない? promptを待つのはcmdだけでよいのでは?

284 名前:デフォルトの名無しさん [2005/10/15(土) 21:18:57 ]
>>282
>Net::TelnetのとこのPromptも [a-zA-Z]+> じゃないの?
[a-zA-Z]+> にした場合
>Username:
に反応できなくなってしまったので:にしています

>>283
初心者のためまだ理解していないのですが、
$t->waitfor('/[a-zA-Z]+>/');
はAからZまでのローマじと>が出てきたときに次に進めという意味ですよね?

ログインするとプロンプトはRouter>になります

が、cmd以降のコマンドを打ってくれないので困っています

アドバイスください。



285 名前:デフォルトの名無しさん mailto:sage [2005/10/16(日) 10:58:05 ]
すみません、教えていただきたいのですが。
買い物などのWEBで、完了まで時間がかかるとき、「ただいま登録中です」のような一時的画面を表示させたいのですが、
perlではどのような方法があるでしょうか?
javaなどでは時々このようなページを使っているとこがあるのですが。。。。

286 名前:デフォルトの名無しさん mailto:sage [2005/10/16(日) 11:44:31 ]
>>285
多分きっと板違い。WebProg板で聞き直すといいよ。
あと、完了までの時間がどれくらいなのか、とか、ブラウザからのリクエストを
受け取った時点で完了までの時間がはっきりするのか、とかの情報も加えた
ほうがいいかも。

287 名前:デフォルトの名無しさん [2005/10/17(月) 00:01:32 ]
すみません、ローカルにはてなみたいなシステム構築したいのですが参考になるページ等在れば教えてください

288 名前:デフォルトの名無しさん mailto:sage [2005/10/17(月) 02:44:30 ]
>>286
ありがとうございます。ここでは×だったんですね。。。
すみませんでした。

289 名前:デフォルトの名無しさん [2005/10/23(日) 11:55:48 ]
Linux> ping -n 127.0.0.1
Pinging 127.0.0.1 with 32 bytes of data:

Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128

Linux>exit

Windows>telnet 10.1.1.1
Username:
Password:

Unix> ping -n 2 127.0.0.1
Pinging 127.0.0.1 with 32 bytes of data:

Reply from 127.0.0.1: bytes=32 time<5ms TTL=128
Reply from 127.0.0.1: bytes=32 time<5ms TTL=128

Unix>exit

上記のようなログがあり
その中からpingのリプライのtime<xmsをリストするプログラムを教えてください
出力としては
Linuxtime<1ms
Unixtime<5ms
にしたいです。
よろしくお願いいたします。

290 名前:デフォルトの名無しさん mailto:sage [2005/10/24(月) 16:18:05 ]
>289
まず、最低限下記の部分ぐらい仕様をはっきりさせろ。
・各(ホストを示す?)ブロックはexitで終わる?
・Reply from行が複数あって、timeが食い違ったときどうする?
・pingが通らないパターンはあるのか?あるならその時どうする?
話はそれからだ。

291 名前:デフォルトの名無しさん [2005/10/27(木) 19:44:34 ]
infoseek.jpにsmtp開いて単純にメール送ろうとしたら
NLだけじゃいかんといわれ
s/([^\r])\n$/$1\r\n/
s/^\n$/\r\n/
で修正して送ったら、うまくいくにはいったが、
cgiにしてサーバからおくると文字化けする。
しかも、なぜかクラッシュしてるらしく
サーバからの応答がない。
ブラウザが再送して、結果文字化けしたメールが
大量にinfoseekに残る。
これってなんで?
他のmailboxでは問題ない。

292 名前:デフォルトの名無しさん mailto:sage [2005/11/01(火) 12:24:02 ]
コードさらせ。

293 名前:デフォルトの名無しさん mailto:sage [2005/11/01(火) 23:18:23 ]
log1.txt log2.txt … log10.txt

というファイル名をきれいにソートしたい。

sort { $b <=> $a } @lists;

だとlog10 をうまく処理できません。

どうすればいいですか??

294 名前:デフォルトの名無しさん [2005/11/01(火) 23:19:25 ]
ageます



295 名前:デフォルトの名無しさん mailto:sage [2005/11/01(火) 23:49:17 ]
map { $_->[0] } sort { $a->[1] <=> $b->[1] } map { /log(\d+)\.txt/; [$_,$1] } @lists;

296 名前:293 [2005/11/02(水) 00:08:58 ]
わぁ、どうも!

297 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 01:59:35 ]
Perl信者共助けてやれ
pc8.2ch.net/test/read.cgi/tech/1131292946/

298 名前:デフォルトの名無しさん mailto:sage [2005/11/08(火) 10:43:45 ]
リクです。

20051108
aaa
bbb
end

20051109
ccc
ddd
end

20051110
eee
fff
end

という内容のファイル(xxx.txt)があって、標準入力に 20051109 を与えた時に

20051109
ccc
ddd
end

という部分だけを出力させたいんです。お願いします。

299 名前:デフォルトの名無しさん mailto:sage [2005/11/08(火) 10:56:28 ]
#!/usr/bin/perl

$date = <STDIN>;
chomp $date;

open(FH, 'xxx.txt');
while (<FH>) {
chomp;
if($_ eq ''){
$flag = 0;
next;
}
if($flag){
print $_, "\n";
next;
}
if($_ eq $date){
print $_, "\n";
$flag = 1;
}
}
close(FH);

テキトー

300 名前:デフォルトの名無しさん mailto:sage [2005/11/08(火) 11:21:15 ]
>>298
#!/usr/bin/perl
chomp($input = <STDIN>);
open XXX, "<xxx.txt";
$/="end\n";
while(<XXX>)
{
if(/^($input)/){ print $_; }
}


適当に作ったから動かないかもしれん。

301 名前:298 mailto:sage [2005/11/08(火) 11:46:59 ]
>>299
動きました。ありがとうございます。

>>300
^ を消すと動きました。ありがとうございます。

302 名前:デフォルトの名無しさん [2005/11/19(土) 12:00:41 ]
PERL

303 名前:デフォルトの名無しさん [2005/11/19(土) 23:20:48 ]
とあるperlプログラムの中に
PHPでいう
<?php
require("sample.txt");
?>
と同じ効果を付けたいのですが
どんなスクリプトにすればよいのでしょうか

304 名前:デフォルトの名無しさん mailto:sage [2005/11/19(土) 23:35:29 ]
require 'sample.txt';



305 名前:デフォルトの名無しさん mailto:sage [2005/11/20(日) 00:00:39 ]
>>304
それはやりたい事と違うかも。
PHPでは<? ?>内じゃ無い部分はそのまま出力
use IO::File;
my $fh = new IO::File 'sample.txt';
while (<$fh>) { print $_ }
undef $fh;
やりたい事はどっちだろね

…複合型だと言うならスクリプト部分を判別出来るようにして置いて、マッチングしてevalに放り込む
s/<\?perl(.*?)\?>/$1/ge
例えばこんな感じで

306 名前:デフォルトの名無しさん [2005/11/20(日) 00:05:13 ]
初心者なんでなんともいえないのですが
ブラウザでxxx.phpに
アクセスして
<?php
require("sample.txt");
?>
を見ると
sample.txtの文字が表示されるんですよ
それと同じことを
xxx.cgiでもできないかなぁと思いまして

わかりにくくてすみません

307 名前:デフォルトの名無しさん mailto:sage [2005/11/20(日) 00:34:02 ]


sub require2 {
my $file = shift;


308 名前:デフォルトの名無しさん mailto:sage [2005/11/20(日) 02:35:15 ]
open my$o,">$file" or die;
print$o "orz"x 10**5;
close$o;
return"orz";
}

309 名前:デフォルトの名無しさん mailto:sage [2005/11/20(日) 22:24:32 ]


sub require_for_vip {
 my $gold = shift;


310 名前:306 [2005/11/26(土) 18:39:05 ]
難しいですかね?

311 名前:デフォルトの名無しさん mailto:sage [2005/11/26(土) 18:56:33 ]
>>310
>>305に既に答えのコードが書いてあるわけだが。

312 名前:デフォルトの名無しさん mailto:sage [2005/11/26(土) 19:33:04 ]
ワロス

313 名前:306 [2005/11/26(土) 20:39:48 ]
初心者すぎてイマイチわからない自分がいる…
勉強してからこい っていう話だが

314 名前:デフォルトの名無しさん mailto:sage [2005/11/26(土) 20:57:29 ]
>>313
そりゃスマンカッタ。説明がちゃんと必要だったな…
#--------------------------------
sub show_file {
my $file = shift;
use IO::File;
my $fh = new IO::File $file;
while (<$fh>) { print $_ }
undef $fh;
}
#--------------------------------
とでもスクリプトのどこかに書いておく。

で、
show_file('ファイル名');
という感じでそのサブルーチンを呼び出せば、そのファイルの中身が表示される。
パッケージが分かれていたりするとこれだけじゃ出来ないがまあその時はその時だ
IO::Fileモジュールが使えない環境ならこっち
#--------------------------------
sub show_file {
my $file = shift;
open SHOW_FILE, $file;
while (<SHOW_FILE>) { print $_ }
close SHOW_FILE;
}
#--------------------------------



315 名前:306 [2005/11/26(土) 21:28:45 ]
なんどもすみません
.cgiのなかに
HTML表示するところがあるんですけど
そこにshow_file('ファイル名');をやっても
そのまま表示されてしまうのですが
(マジ初心者で迷惑かけすぎですね

316 名前:デフォルトの名無しさん mailto:sage [2005/11/26(土) 22:00:54 ]
表示をどうやってるのかによる。
単なるprint なのか、ヒアドキュメントなのか。

317 名前:デフォルトの名無しさん mailto:sage [2005/11/26(土) 22:09:20 ]
${show_file('ファイル名')}

318 名前:306 [2005/11/27(日) 00:26:50 ]
printです

319 名前:デフォルトの名無しさん [2005/11/28(月) 15:27:30 ]
誰か心優しい方、これを作ってくださいm(__)m
宿題に手づまりで助けてください!(>人<)

SQL.txtを読み込んで、gakusei.csvを読み出し、
そこからName,Addressのみを表示させるプログラムを作ってください!

データ↓
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1165.lzh

実行結果↓(予想)
Name,Address
Junichi,Tsukuba
Akinori,Hitachi

320 名前:デフォルトの名無しさん mailto:sage [2005/11/28(月) 19:12:46 ]
>>319
中身も見ずに書く。
つ[DBI + DBD::CSV]

321 名前:デフォルトの名無しさん [2005/11/28(月) 19:34:22 ]
htmlページでラジオ形式のインプットタイプを作り、
100問の5択形式にします。
そして、「国語」、「数学」、「英語」、「理科」、「歴史」という
5分野にそれら100問の回答の点数の結果を反映させたいのですが、
回答は1つの分野にのみ加点されるのではなく、例えば1問目が

「万有引力を発見したのはニュートンである」という質問だったとき

5択のうち1番目を選んだら「理科」の変数にも3点加点され、なお、
「歴史」の変数にも2点加点されるという形にしたいと思っています。

この場合、1科目の変数のみに影響するのではなく2科目以上になるので、
各質問ごとに設けた配列の点数をそのまま、「理科」だけに加点するということは
できなさそうです。



それぞれ1問目の input name を "Q001"
2問目は input name を "Q002"とし、3問目以降も同じような方法で
100問目まで指定していきます。

そして、各問題、 「はい」、「はいに近い」、「どっちでもない」、
「いいえに近い」、「いいえ」という5択にして、
input value を「はい」から、"1","2","3","4","5"としていきます。


なにかいい構成が分かるかたいらっしゃいましたら、サブルーチン教えてください。

322 名前:デフォルトの名無しさん mailto:sage [2005/11/28(月) 19:53:27 ]
俺はこういうのはJavaScriptでやっちゃってる。

323 名前:デフォルトの名無しさん [2005/11/28(月) 20:32:27 ]
>>322
sendmailもいれてるからPERLでやってるんだけど、どうだろー

324 名前:デフォルトの名無しさん [2005/11/28(月) 20:34:03 ]
もしくは、計算部分だけJAVAで組んでその結果の変数値(スコア)のみを
CGIに渡すことって可能?



325 名前:デフォルトの名無しさん mailto:sage [2005/11/28(月) 21:23:59 ]
$table[1] = { # Q001
  Q => {
    label => "万有引力を発見したのはニュートンである",
    option => [split(" ","はい はいに近い どっちでもない いいえに近い いいえ")]
  },
  A => [
    { rika => 3, rekisi => 2 }, #選択肢1
  ]
};

構成ってこういうこと?
俺もこれをそのままJSONにして、採点までJavaScriptでやった方がいいと思う

326 名前:デフォルトの名無しさん mailto:sage [2005/11/29(火) 01:16:34 ]
答えてくれて、ありがとう。
演算部分はjavascriptで組んで、
出てきた結果の値(各分野の点数や文字列など)を
PERLで組んだCGIにデータを受け渡すことって
可能なのかなー?

327 名前:デフォルトの名無しさん mailto:sage [2005/11/29(火) 01:34:11 ]
>>326
フォーム内のフィールドにセットしてsubmitするとか、
クエリ文字列を生成しページ移動(Location.href)とか、
今流行のXMLHttpRequestとか色々あるんじゃないかな

328 名前:デフォルトの名無しさん [2005/11/29(火) 09:24:09 ]
>>327
最初の1ページ目でjavascriptで演算した値を2ページ目のcgiにサブミットして
表示させるってことは可能?

普通、cgiにサブミットするときってフォーム入力で、入力したもの(変数として)がそのまま
cgiのほうに渡されるでしょ?これを1ページ目でjavascriptで計算して、その結果の値を
そのままcgiに渡すって方法どうすればいいかな?

いいサンプルページやサンプルソースあったら教えてください。

もしかしたら、フォーム入力の「生年月日入力」の部分でこういうふうにjavascriptを組み込んで
昭和→西暦変換とかした値をcgiに渡してたりするようなページもあるような気もします

329 名前:デフォルトの名無しさん [2005/11/29(火) 09:47:48 ]
proxy.f2.ymdb.yahoofs.jp/users/13a494ce/bc/sample.html?bcDAlAEB6aOdocif

このような形で問100まであって、問100までの分の値と名前やメアドの値を
formmail.cgiというものに渡すというかんじです。CGI側で質問100個の分の
演算をするのか、もしくは、アップーロードした、この1ページ目でjavascriptを使って
演算し、結果のみの値をcgiに渡して、それらを出力するのがいいのか迷っています。

また、記述の方法などのアドバイスもいただければ幸いです。

330 名前:329 [2005/11/29(火) 10:15:36 ]
何度もすみません。
やはり、javascriptは使わずcgi側で100問の結果判定を演算するサブルーチンを
作りたいのですが、どういう標記にすればいいでしょうか?>>321にも書きましたが

それぞれ1問目の input name を "Q001"
2問目は input name を "Q002"とし、3問目以降も同じような方法で
100問目まで指定していきます。

そして、各問題、 「はい」、「はいに近い」、「どっちでもない」、
「いいえに近い」、「いいえ」という5択にして、
input value を「はい」から、"1","2","3","4","5"としていきます。

というかんじです。>>322さん、ありがとうございました。
もっと分かりやすい構文を教えていただけないでしょうか?

今考えているのは1ページ目でフォーム入力(ラジオ選択から得た情報)をcgiに
submitした後、getformして入力された値を読み込み

#質問結果判定
sub hantei {

1問目(1ページ目のQ001)「万有引力を発見したのはニュートンである 」に対し、
5択「はい(VALUE=1)」、「はいに近い(2)」、「どっちでもない(3)」、「いいえに近い(4)」、「いいえ(5)」のうち

・「はい」を選ぶと理科に3点加算(rika +=3)、歴史にも2点加算(rekishi +=2)とし、
・「はいに近い」を選択したなら(rika +=2)、(rekishi +=1)
・「どっちでもない」を選択したなら(rika +=1)、(rekishi +=0)
・「いいえに近い」を選択したなら(rika +=0)、(rekishi +=0)
・「いいえ」を選択したなら(rika +=0)、(rekishi +=0)

次の質問(Q002)で同じような形でQ100まで演算していきます


331 名前:デフォルトの名無しさん mailto:sage [2005/11/29(火) 11:16:32 ]
どうでもいいけど、毎問メールアドレスを入力させられんの?


332 名前:デフォルトの名無しさん [2005/11/29(火) 11:37:19 ]
設問ごとの得点表を

%SCORE_TABLE = (
Q001 => { 1 => { rika => 2, rekishi => 2 },
2 => { rika => 2, rekishi => 1 },
....
},
....
}

という形で用意する。

cgi入力のうち、QNNNに対応する値を%input = (Q001 => 2, Q002 => 1 ,... )
という形のハッシュにまとめる。

あとは

while (my($q, $a) = each %input) {
while (my($k, $s) = each %{$SCORE_TABLE{$q}->{$a}}) {
$score{$k} += $s;
}
}

とまわせば%scoreにそれっぽい結果が得られるだろう。


333 名前:329 [2005/11/29(火) 11:38:26 ]
>>331
ううん、メアドを登録しなかったらしなかったで得点表示のみのページのみ
出力されて、メアド登録したら、直接SENDMAILで詳細結果が
メールで届くようにするよ。

334 名前:329 [2005/11/29(火) 13:08:49 ]
>>332
非常にありがたいんですが、原始的な組み方で

if ($moji{Q001} == 1) {
$rika += 2;
$rekishi += 1;}
elsif ($moji{Q001} == 2) {
$rika += 0;
$rekishi += 0;}
elsif ($moji{Q001} == 3) {
$rika += 0;
$rekishi += 0;}
elsif ($moji{Q001} == 4) {
$rika += 0;
$rekishi += 0;}
elsif ($moji{Q001} == 5) {
$rika += 0;
$rekishi += 0;}



335 名前:329つづき↑ [2005/11/29(火) 13:09:10 ]
にして、最終的にその結果から

if ($rika == 1) {$rikaTEXT = 'rika1点かな';}
elsif ($rika == 2) {$rikaTEXT = 'rika2点かな';}
elsif ($rika == 3) {$rikaTEXT = 'rika3点かな';}
elsif ($rika == 4) {$rikaTEXT = 'rika4点かな';}
else {$rikaTEXT = 'rika不明かな';}

if ($rekishi == 1) {$rekishiTEXT = 'rekishi1点かな';}
elsif ($rekishi == 2) {$rekishiTEXT = 'rekishi2点かな';}
elsif ($rekishi == 3) {$rekishiTEXT = 'rekishi3点かな';}
elsif ($rekishi == 4) {$rekishiTEXT = 'rekishi4点かな';}
else {$rekishiTEXT = 'rekishi不明かな';}

そしてこのスコアから判断されたメッセージをHTML出力するとき

$rikaTEXT<BR>
$rekishiTEXT<BR>


でいいのかな?このままの構成を残して訂正しなきゃならない部分を教えてください。
これで実行してもrikaのスコアしか表示されなくて、rekishiのスコアは表示されません(T_T)


336 名前:デフォルトの名無しさん mailto:sage [2005/11/29(火) 19:04:01 ]
鬱陶しいなあ。
まったく理解できないのに偉そうなことばかり。
もうどこかに委託しろよ。

337 名前:デフォルトの名無しさん mailto:sage [2005/11/29(火) 20:50:31 ]
>>336
まあまあ、あまり怒りなさんな。
オレはこの調子で100問分書いたスクリプトというものをぜひ拝見したい。

>>335
最後の部分をこんな風に書いたんじゃないの?
---------------------------------
print "$rikaTEXT<BR>
$rekishiTEXT<BR> ";
---------------------------------
それなら、こうするとうまくいくよ。
print "$rikaTEXT<BR>\n$rekishiTEXT<BR> ";

あと、スクリプト完成したらぜひ公開きぼ〜ん。

338 名前:デフォルトの名無しさん [2005/11/29(火) 23:18:59 ]
>>337
ありがとう。見せたいとこだけど、
ごめんよー

339 名前:デフォルトの名無しさん mailto:sage [2005/11/29(火) 23:57:56 ]
>>338
そうか。Perlスクリプトを公開すれば解答も公開すること
になるから仕方ないかもしれんな。しかし、大体の想像はつく。
>>334 に書いてあるものを100問分作って、
>>335 に書いてあるものを0〜200の範囲で作るんだね。
拝見できないのは残念だが、まあ、がんばってタイプしてくれ。


340 名前:デフォルトの名無しさん [2005/11/30(水) 00:31:36 ]
>>339
本当にありがとう。いい人いるんだね。ありがとう。
点数配分を配列ではなく、原始的な構造でチマチマ入力してやっていきます。
3000行以上のCGIになります(笑)

341 名前:デフォルトの名無しさん mailto:sage [2005/11/30(水) 07:26:07 ]
微笑ましいですね^^

342 名前:デフォルトの名無しさん mailto:sage [2005/11/30(水) 11:25:43 ]
^^;

343 名前:デフォルトの名無しさん mailto:sage [2005/11/30(水) 19:04:43 ]

性別

回答者合計者○($SEXSUM)名中

男○($SEXMALE)名
女○($SEXFEMALE)名




というのをHTMLで出力したいんだけど、ディレクトリに SEX.txtというのを置いて
そのtxtファイルの中に「 0,0 」
というふうに男女の初期値の人数をいれておいて。

毎回フォームから'GENDER'の値が0(男性).もしくは1(女性)で送ってきた時のみ。
SEX.txtを読み込んで、1足して表示→そして読み込んだSEX.txtの人数の一人プラスという
ようなPERLスクリプト分かる人いますか?


344 名前:デフォルトの名無しさん mailto:sage [2005/11/30(水) 19:11:07 ]
pc8.2ch.net/test/read.cgi/tech/1131286411/641

マルチ放置推奨



345 名前:デフォルトの名無しさん mailto:sage [2005/12/01(木) 13:49:45 ]
西暦の "2005"という部分だけ、取得したいんだけど

$TIME= (ここはどうすればいいですか?)

346 名前:デフォルトの名無しさん mailto:sage [2005/12/01(木) 13:56:41 ]
>>345
この辺読んで基礎からじっくり勉強したらいいんじゃない?
pc8.2ch.net/test/read.cgi/tech/1131286411/2
www.hyuki.com/writing/techask.html

347 名前:デフォルトの名無しさん [2005/12/01(木) 14:02:29 ]
my($sec, $min, $hour, $day, $mon, $TIME, $wday) = localtime(time);

# 取得した値を調整(リファレンス参照)
$TIME+= 1900;

348 名前:デフォルトの名無しさん [2005/12/01(木) 14:03:51 ]
>>347
とんくす

349 名前:デフォルトの名無しさん [2005/12/01(木) 14:27:50 ]
$TIME=`perl -MPOSIX=strftime -le 'print strftime("%Y", localtime())'`


350 名前:デフォルトの名無しさん mailto:sage [2005/12/01(木) 14:29:20 ]
>>347
長い

$TIME = 1900 + (localtime(time()))[5];

351 名前:デフォルトの名無しさん [2005/12/01(木) 16:01:06 ]
>>350
長いというならlocaltimeの引数のtime()も省略可能だよ。


352 名前:デフォルトの名無しさん [2005/12/01(木) 16:11:56 ]
>>351
ナイスつっこみ!
お前みたいなのを待っていた

353 名前:350 mailto:sage [2005/12/01(木) 16:15:15 ]
知ってるよ
どんなunixtimeを渡すのか分からんから一例を書いたまでだ

354 名前:デフォルトの名無しさん mailto:sage [2005/12/01(木) 16:42:12 ]
そういうのを負け惜しみって言うんだぜ



355 名前:デフォルトの名無しさん mailto:sage [2005/12/01(木) 17:56:57 ]
>>345
$TIME = 1900 + (localtime)[5];


356 名前:デフォルトの名無しさん mailto:sage [2005/12/01(木) 18:00:06 ]
個人的には strftime の方が好みだな。

357 名前:デフォルトの名無しさん mailto:sage [2005/12/01(木) 18:04:14 ]
>>343
Yahooにまで…。
messages.yahoo.co.jp/bbs?.mm=CP&action=m&board=1835099&tid=a1zperla1ya5qa1bca5ka1z&sid=1835099&mid=368
しかも誰か答えちゃってるし。

358 名前:350 mailto:sage [2005/12/01(木) 18:08:14 ]
なんで煽られてるのかが分からんのだが・・中学生か?

359 名前:デフォルトの名無しさん mailto:sage [2005/12/01(木) 18:24:26 ]
>>343の答えは
pc8.2ch.net/test/read.cgi/php/1102980903/965-967
でもう出てる

360 名前:デフォルトの名無しさん mailto:sage [2005/12/01(木) 18:28:38 ]
>>358
変な奴はほっとけ

361 名前:デフォルトの名無しさん mailto:sage [2005/12/01(木) 18:38:49 ]
VIPが出来てから馬鹿が流入してきた

362 名前:デフォルトの名無しさん mailto:sage [2005/12/03(土) 23:36:45 ]
馬鹿というかガキなんだよな。煽り方も知らないような。

363 名前:デフォルトの名無しさん mailto:sage [2005/12/06(火) 21:25:33 ]
ネットショップで○○時から○台限定で販売、とかいうのを買おうとすると
真っ先にスクリプターに買い占められちゃうんだけど
そういうのに対抗できる自動購入スクリプトってPerlで組めませんか?

364 名前:デフォルトの名無しさん mailto:sage [2005/12/06(火) 23:39:56 ]
組めたとしてもここで公開されれば対策される。
対策されなくても公開されている以上大勢が使う。
意味がない。



365 名前:デフォルトの名無しさん mailto:sage [2005/12/07(水) 00:01:35 ]
>>363
組めます

366 名前:デフォルトの名無しさん mailto:sage [2005/12/07(水) 04:17:29 ]
。゚(゚∩д∩゚)゚。
確かに仰るとおりですね・・・






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<217KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef