七行プログラミング (452レス)
上下前次1-新
50: nobodyさん [sage] 02/11/03 22:32 ID:??? AAS
 このスレを見たとき、 
 ム板かと思いますた。 
51(1): nobodyさん [sage] 02/11/03 22:34 ID:??? AAS
 掲示板は本家でもうかなり短くなってないか? 
  
 別に委員だけど、もっと面白いネタがないかなと。 
52: 43 [sage] 02/11/03 23:08 ID:??? AAS
 >>4848(1): nobodyさん [] 02/11/03 21:17 ID:QK0oCR94(1) AAS
 明文化 
  
 ・7行×79文字 
 ・Perl 
 ・#!/usr/local/bin/perlは含まない。実質的なプログラムで七行。 
 ・スペースも1文字分。2バイト文字は2文字分。 
  
 でいいでしょうか?  
プログラムが Web 関連物なら言語は何でもいいんじゃ? 
 シェバング行は C の #include みたいなモンだから…。 
  
 >>51 
 単に縮めるだけじゃなく、7行をギリギリまで使って機能増やすのも 
 楽しみの一つだよ。掲示板に食傷気味なのは同意するけど。(w 
  
 つー事で改良。 
  
 --- 7bbs.cgi --- 
 #!/usr/local/bin/perl 
 $l='7bbs.log';if(read STDIN,$_,$ENV{CONTENT_LENGTH}){@r=''.localtime;for(split 
 /&/){$_=(split/=/)[1];tr/+/ /;s/%([a-f\d]{2})/pack'H2',$1/egi;s/(["&<>])/'?'. 
 unpack('C',$1).';'/eg;push@r,$_}open F,"+<$l";flock F,2;@l=(join(': ',@r). 
 "<br>\n",<F>);truncate F,0;seek F,0,0;print F @l[0..49]}open F,$l;print join( 
 '><input type=',"Content-type: text/html\n\n<title>77(3): nobodyさん [0] 02/11/01 18:52 ID:??? AAS
 #!/usr/local/bin/perl 
  
 if (>>1 = "バカ") { 
     print "イッテヨシ"; 
 } else { 
     print "マターリしましょう"; 
 }  
BBS</title><form action=". 
 '7bbs.cgi method=post','text name=n','text name=w',"submit></form>\n"),<F> 
 ---------------- 
  
 ["&<>] を数値文字参照に変換。 
53(1): nobodyさん [sage] 02/11/03 23:18 ID:??? AAS
 7行のスレッドフロート型掲示板とかは無理? 
54:  ◆FruitsMIpE  [sage] 02/11/03 23:44 ID:??? AAS
 >>4343(3): nobodyさん [sage] 02/11/03 18:38 ID:??? AAS
 >>24 を発展させてみた。一行掲示板。 
  
 --- 7bbs.cgi --- 
 #!/usr/local/bin/perl 
 $l='7bbs.log';if(read STDIN,$_,$ENV{'CONTENT_LENGTH'}){for(split/&/){$_=(split 
 /=/)[1];tr/+/ /;s/%([a-f\d]{2})/pack'H2',$1/egi;push@r,$_}@r=(''.localtime,@r); 
 open F,"+<$l";flock F,2;@l=(join(': ',@r),"<br>\n",<F>);truncate F,0;print F 
 @l[0..49]}open F,$l;print join('><input type=',"Content-type: text/html\n\n". 
 '<title></title><form action=7bbs.cgi method=post','text name=n','text name=w', 
 'submit></form>'),<F> 
 ---------------- 
  
 新しい順に表示。50件まで保存。 
  
 >>41 
 ネタが被るねぇ。ゴメンね。(´・ω・`)  
Winではflock 使えなくてエラーに ヽ(*`Д´)ノ ワァァン 
  
 >>4444(2): nobodyさん [sage] 02/11/03 19:17 ID:??? AAS
 動かねぇです大将!>>42>>43 
 >>42のは半角でも全角でも変な文字が保存されるです!モジコード変えてもダメだったです! 
 >>43のはファイルが作成されませぬ! 
 私のミステイクでしょうか!ハラキリ!  
ガ━━━━(;゚Д゚)━━━━ン !! 
 すいませn原因わかりませn 
 Windows環境でSJISならうまくいくんだけど・・ 
  
 >>53 
 前に2ch型掲示板作ってみたけど、無理確定のような気がする。 
 誰か作れる人、いるかな 
55(1): nobodyさん [] 02/11/04 06:56 ID:5+umhhBG(1) AAS
 7行2ch型掲示板 
 ただし、かちゅ〜しゃがないとだめぽ、 
 read.cgiがないから読めないし、書きこみフォームもないから、あとsubject.txtの新スレは一番下になる。 
 flockもしていない、かちゅに依存するために変数名が長い。 
  
 下記のディレクトリ構成で成功 
 /test 
   +--/bbs.cgi 
   +--/subject.txt 
   +--/dat/ 
  
 #!/usr/local/bin/perl 
 $t=time;read(STDIN,$b,$ENV{'CONTENT_LENGTH'});@p=split(/&/,$b);foreach (@p) 
 {($a,$v)=split "=";$v=~tr/+/ /;$v=~s/%([A-Za-z0-9]{2})/pack("C", hex($1))/eg; 
 $i{$a}=$v;}if(!$i{'key'}){$i{'key'}=$t;}open(F,">>./dat/$i{'key'}.dat"); 
 print F "$i{'FROM'}<>$i{'mail'}<>$t<>$i{'MESSAGE'}<>$i{'subject'}\n";close(F); 
 open(S,">>./subject.txt");print S "$i{'key'}.dat<>$i{'subject'}(1)\n"; 
 close(S);exit; 
  
 つーか激しく2ch型から離れているが。 
56: nobodyさん [sage] 02/11/04 09:38 ID:??? AAS
 >>55 
 それは普通掲示板といいません(w 
 win鯖では動いたけどな。 
57(1): nobodyさん [sage] 02/11/04 12:16 ID:??? AAS
 やはりCGIだと、定型的な部分で多く取られてしまいますな。 
58(1): ( ´∀`)でけた〜 [sage] 02/11/04 12:59 ID:??? AAS
 [アクセス解析] 
 CGI名: a.cgi 
 空ファイル用意: log 
 そのままアクセスしてログ取り 
 引数に a をつけて解析結果表示 
  
 #!/usr/bin/perl 
 &a if $ENV{QUERY_STRING}eq'a';($s,$m,$j,$d,$g,$y)=gmtime(time+9*60*60);$i=$ENV{ 
 REMOTE_ADDR};$h=$ENV{REMOTE_HOST}||gethostbyaddr(pack('C4',split(/\./,$i)),2)|| 
 $i;$y=sprintf("%d/%02d/%02d/ %02d:%02d:%02d",$y+=1900,++$g,$d,$j,$m,$s);open(F, 
 '+<log');@d=<F>;unshift(@d,"$y,$h,$ENV{HTTP_USER_AGENT},$ENV{HTTP_REFERER}\n"); 
 seek(F,0,0);print F @d;sub a{print"Content-type:text/html\n\n";open(F,'log'); 
 while(<F>){($t,$h,$u,$r)=split(/,/,$_);print"$t<br>$h<br>$u<br>$r<hr>"}exit} 
59: nobodyさん [sage] 02/11/04 14:26 ID:??? AAS
 で、実用性ある奴はあるのか? 
60(2): nobodyさん [] 02/11/04 15:47 ID:CMvXGJGy(1) AAS
 (・ε・)v キニシナイ! 
61: nobodyさん [sage] 02/11/04 20:59 ID:??? AAS
 HTML4.01strictとかどうよw 
62: nobodyさん [sage] 02/11/04 23:14 ID:??? AAS
 >>57 
 試しにHTMLを分離して作ってみたら大分縮んだ。 
 外部リンク[gz]:boobar.hp.infoseek.co.jp 
  
 >>58 
 縮めてみた。 
  
 #!/usr/bin/perl 
 if($ENV{QUERY_STRING}eq'a'){open F,'log';print"Content-Type: text/html\n\n",map 
 join('<br>',split/,/).'<hr>',<F>;exit}$i=$ENV{REMOTE_ADDR};$h=$ENV{REMOTE_HOST} 
 ||gethostbyaddr(pack('C4',split/\./,$i),2)||$i;($s,$m,$j,$d,$g,$y)=localtime; 
 open F,'+<log';eval{flock F,2};@d=(sprintf('%d/%02d/%02d %02d:%02d:%02d',1900+ 
 $y,$g+1,$d,$j,$m,$s).",$h,$ENV{HTTP_USER_AGENT},$ENV{HTTP_REFERER}\n",<F>); 
 truncate F,0;seek F,0,0;print F @d 
63: age [age] 02/11/05 18:48 ID:??? AAS
 age 
64: nobodyさん [] 02/11/14 07:16 ID:M/ZRCXHw(1) AAS
 あげ 
65: nobodyさん [] 02/11/20 18:28 ID:707UhyRv(1) AAS
 7行Wikiくれ。 
66(1): nobodyさん [sage] 02/11/21 07:14 ID:??? AAS
 ---- 7wiki.cgi 
 #!/usr/local/bin/perl -w 
 use strict; use CGI qw/:standard/; use AnyDBM_File; use Fcntl; 
 my$id=$ENV{'QUERY_STRING'}||'FrontPage';my$msg=param('msg')||''; 
 my$url='./7wiki.cgi'; tie(my%DB,'AnyDBM_File','wiki',O_CREAT|O_RDWR,0666)or die; 
 if ($msg){$DB{$id}=$msg} $msg=escapeHTML $DB{$id}; untie(%DB);print header; 
 print qq(<form action="$url?$id" method="POST"><input type="submit"><b>$id</b> 
 <br /><textarea name="msg" rows="6" cols="60">$msg</textarea></form><hr />); 
 $msg=~s/\b([A-Z][a-z]+([A-Z][a-z]+)+)\b/<a href="$url?$1">$1<\/a>/g;print $msg;
67(1): nobodyさん [sage] 02/11/21 19:40 ID:??? AAS
 >>66 
  
 #!/usr/local/bin/perl -w 
 use strict;use CGI':standard';use AnyDBM_File;use Fcntl;tie(my%D,'AnyDBM_File', 
 '7wiki',O_CREAT|O_RDWR,0666)||die;my$i=$ENV{QUERY_STRING}||'FrontPage';$_= 
 escapeHTML($D{$i}=param('m')||$D{$i});untie%D;print header(),qq(<form 
 action="7wiki.cgi?$i" method="post"><input type="submit" /><b>$i</b><br /> 
 <textarea name="m" rows="6" cols="60">$_</textarea></form><hr />); 
 s|\b([A-Z][a-z]+([A-Z][a-z]+)+)\b|<a href="7wiki.cgi?$1">$1</a>|g;print 
  
 \b 要る? 
68: nobodyさん [] 02/11/21 22:28 ID:mGPCTII6(1) AAS
 >>67 
 thx ...  
  
 WikiName の正規表現は \b([A-Z][a-z]+){2,}\b って書けるみたいだね。 
 \b 要るかどうかしらないけど、個人的には欲しい。 
 # 外部リンク:c2.com 
  
 > s|\b([A-Z][a-z]+([A-Z][a-z]+)+)\b|<a href="7wiki.cgi?$1">$1</a>|g; 
 < s|\b([A-Z][a-z]+){2,}\b|a "7wiki.cgi?$1",$1|ge; 
  
 多少、汚くても良いのなら、 
 - use Fcntl やめて O_CREAT|O_RDWR は定数で 
 - s/standard/all/; tr/"//d; s/AnyDBM/DBM/g; s' /''g; 
 - s/use strict;/; s/\bmy\b/g; 
 - etc .. 
 ・・・で、4〜5行くらいにはダイエット出来るかな。 
  
 短いwiki・・・他に、こんなのもあるよ。 
 外部リンク:c2.com 
69: nobodyさん [sage] 02/11/21 22:40 ID:??? AAS
 間違えた・・ 
 s|\b([A-Z][a-z]+){2,}\b|a{href=>"7wiki.cgi?$1"},$1|ge; 
70(2): nobodyさん [sage] 02/11/21 22:52 ID:??? AAS
 括弧わすれてた・・・ゴメン(再び修正 
  \b(([A-Z][a-z]+){2,})\b
71(1): nobodyさん [sage] 02/11/22 07:28 ID:??? AAS
 use CGI':all';use SDBM_File;$i='7wiki.cgi';$j=$ENV{QUERY_STRING}||'FrontPage'; 
 tie%D,'SDBM_File',$i,258,438or die;$_=$D{$j}=param('m')||$D{$j};untie%D;put 
 header,startform('post',"$i?$j"),submit,b($j),br,textarea('m',$_,6,60),endform 
 ,hr;$_=escapeHTML$_;s|\b(([A-Z][a-z]+){2,})\b|a{href=>"$i?$1"},$1|ge;put$_ 
72: nobodyさん [sage] 02/11/22 14:36 ID:??? AAS
 Good job. 
73: nobodyさん [sage] 02/11/22 18:30 ID:??? AAS
 折角なので副産物も(ワンライナーだけど 
 れぎゅれーしょん ちぇっか usage: ./7rc.pl < target_script.pl 
  
 #! perl -nw 
 chomp;length>7979(1): nobodyさん [sage] 02/11/26 00:26 ID:??? AAS
 < $_=escapeHTML($m=param('m')||$m);seek F,0,0;print F $m; 
 > $_=escapeHTML $m=param('m')||$m;seek F,0,0;print F$m;  
||$.>7?die:print"line $. OK\n"
74(1): nobodyさん [sage] 02/11/24 15:39 ID:??? AAS
 >>71 
 use Fcntl; 
 はいらないのか? 
上下前次1-新書関写板覧索設栞歴
あと 378 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.022s