七行プログラミング (452レス)
上下前次1-新
1(9): 02/11/01 18:06 ID:umVq3FGM(1)調 AAS
・7行×79文字
・Perl
どうぞ。
2(5): マリモーマ ◆jbBCmetwgw 02/11/01 18:28 ID:HKLNcbVm(1/2)調 AAS
2GET 7行だけなら 何もできない罠
3: ◆FruitsMIpE 02/11/01 18:36 ID:??? AAS
while (1) { print "無理です"; }
4(5): 02/11/01 18:39 ID:oU5vKkbM(1)調 AAS
とりあえず7行でカウンタを作ろう
5: マリモーマ ◆jbBCmetwgw 02/11/01 18:39 ID:HKLNcbVm(2/2)調 AAS
無理ですの 無限ループか 怖いな
6: 02/11/01 18:50 ID:??? AAS
PHPやJavaScriptも入れてくれ。
7(3): [0] 02/11/01 18:52 ID:??? AAS
#!/usr/local/bin/perl
if (>>1 = "バカ") {
print "イッテヨシ";
} else {
print "マターリしましょう";
}
8(2): 02/11/01 19:29 ID:??? AAS
#!/usr/bin/perl
my $logfile = './count.log';
my $addr = $ENV{'REMOTE_ADDR'};
open( FILE,"+<$logfile" ) or die;
flock( FILE, 2 );
( $_ = <FILE> ) =~ /^(.*?):(.*)$/;
my ( $count, $ip ) = ( $1, $2 );
$count++ if $addr ne $ip;
seek( FILE, 0, 0 );
print FILE "$count\:$addr";
truncate( FILE, tell );
close FILE;
print "Content-type: text/plain\n\n";
printf( "%.5d", $count );
exit;
自作のカウンターです。元はKENTですが原型無いです。
一応多重カウント防止、桁そろえします。
これなんとか7行にできそーなんだけど、どうでそう?
9: ◆hMJAPH9PWA 02/11/01 19:43 ID:??? AAS
何とかも何も、変数の冗長性を残しても3行になったよ。
#!/usr/bin/perl -w
$addr=$ENV{REMOTE_ADDR};open L,"+<.log";flock L,2;($c,$ip)=split/:/,<L>;
if($addr ne$ip){$c++;seek L,0,0;print L "$c:$addr";truncate L,tell(L);print
"Content-Type:text/plain\n\n$c"}
10(3): 02/11/01 19:53 ID:??? AAS
ワーイ 3行にナッター 有難う。
まだまだperl勉強中の身ですー
11(1): ◆hMJAPH9PWA 02/11/01 20:47 ID:??? AAS
と思ったらバグがあった。後半の処理全部ifブロックに入れたらダメじゃん。
しかも3行じゃなくて3行ね。
ついでに変数を短く。flockしなけりゃ3行いけるね。
#!/usr/bin/perl -w
$a=$ENV{REMOTE_ADDR};open L,"+<l";flock L,2;($c,$i)=split/:/,<L>;if($a ne$i){
$c++;seek L,0,0;print L"$c:$a";truncate L,tell L}print"Content-Type:text/plain
\n$c"
12(2): 02/11/01 21:11 ID:??? AAS
>>11
でも、読みにくいね
13: [age] 02/11/01 21:44 ID:??? AAS
>>12
読みやすさを追求してるわけじゃないんだけどね
趣旨を理解してよ
14(2): 02/11/01 22:14 ID:??? AAS
ああ、; までで1行ってわけじゃないんだ。
15: [ ] 02/11/01 22:27 ID:??? AAS
やっぱカウンタぐらいしかできないか。
16: 02/11/01 23:05 ID:??? AAS
ム板かと思った。
17: rubyist@カラアゲうまうま [sssss] 02/11/01 23:14 ID:??? AAS
SWFファイルからJPEGを取り出す
SWF("$ARGV[0]");
sub SWF{$file="$_[0]";open(FILE,$file);
binmode FILE;while(<FILE>){$ed=unpack("h*","$_");
if($ed=~/ff8dff0e.{2}01a46494640010/){$Wri=pack("h*","$ed");
print FILEX "$Wri";$ed=~s/.*(ff8dff0e.{2}01a46494640010)/$1/;
$c9++;print "$c9\n";$fileX="SWF$file$c9.jpg";open(FILEX,">$fileX");
binmode FILEX;}$Wri=pack("h*","$ed");print FILEX "$Wri";}}
18: [ ] 02/11/01 23:58 ID:??? AAS
>>8の
truncate( FILE, tell );
これはどういう意味?
19(1): 02/11/02 00:07 ID:??? AAS
tell FILE
↑が抜けてるにょ
20(2): 02/11/02 00:10 ID:??? AAS
print <<7LINE;
*******************************************************************************
*******************************************************************************
*******************************************************************************
*******************************************************************************
*******************************************************************************
*******************************************************************************
*******************************************************************************
7LINE
21: 02/11/02 00:11 ID:??? AAS
>>19
( ´,_ゝ`) プッ
22: 02/11/02 00:19 ID:??? AAS
(; °▽°)FILEなくもいけた〜〜
23: 02/11/02 00:51 ID:TEd9xaNd(1)調 AAS
echo "aho1"
echo "aho2"
echo "aho3"
echo "aho4"
echo "aho5"
echo "aho6"
echo "aho7"
24(1): ( ´∀`)ヮ-ィ 02/11/02 01:25 ID:??? AAS
掲示板でけた〜〜
#!/usr/bin/perl
if($ENV{'REQUEST_METHOD'}eq'POST'){read(STDIN,$b,$ENV{'CONTENT_LENGTH'});
foreach(split(/&/,$b)){($c,$d)=split(/=/,$_);$d=~tr/+/ /;
$d=~s/%([a-f\d]{2})/pack('H2',$1)/egi;$form{$c}=$d}open(F,'>>z.txt');
print F "$form{y}\n";close F}print"Content-type:text/html\n\n<html>
<form action=x.cgi method=post><input type=text name=y><input type=submit>
</form><br><br>";open(F,'z.txt');while(<F>){print "$_<br>\n"}print'</html>';
25(1): [ ] 02/11/02 01:46 ID:??? AAS
動きませぬ
26: 25 [ ] 02/11/02 01:49 ID:??? AAS
あ、動きましたw
27: 02/11/02 02:08 ID:??? AAS
>>1 Perl限定かよ。
28: 02/11/02 06:30 ID:??? AAS
昔のBASICの1画面プログラムを思い出したよ
29: 02/11/02 14:13 ID:1/HvBlpx(1)調 AAS
Dukeまだ〜? チンチン
30(2): 02/11/02 17:48 ID:Sny9GkFS(1)調 AAS
てめーら七行もあるのにその程度のモンしか作れねーのかよ(プ
31: 02/11/02 17:53 ID:??? AAS
>>30
だからきみのすごい作品を待っています。ハイレベル期待しています。
もうできてる? 今からつくる? 今日中には書き込んでくれ。
32: 02/11/02 20:55 ID:RJf4RKlR(1)調 AAS
すごい作品まだ〜? チンチン
33(1): 02/11/02 21:13 ID:aPBbHnBW(1)調 AAS
何本気になってんの?
34: 末吉亮介 02/11/02 21:15 ID:MUhjalxS(1)調 AAS
http://plaza.rakuten.co.jp/a240a/
35: 02/11/02 22:13 ID:??? AAS
>>33
作れないヤツはすっこんでてね(はぁと
36: 02/11/03 00:25 ID:??? AAS
>>30は、口だけ大将だったということか・・・
37: 02/11/03 10:09 ID:??? AAS
実際、Perlだったらかなりのものが出来てもおかしくはないかと。
ム板の7行スレは凄かった。
38: [age] 02/11/03 14:13 ID:??? AAS
ム板マ板で相手にされない厨が集まる板はここですか?
39: ユカリ 02/11/03 14:35 ID:8kfSttUc(1)調 AAS
プランテック製の「 RX-2000? 」を改造済み
にした、アイティーエス製の「 RX-2000? 」↓
http://user.auctions.yahoo.co.jp/jp/user/neo_uuronntya#.2ch.net/
現在、本当に人気がある様です。
私も、この前、買いました。
関連ホームページ↓
http://www.h5.dion.ne.jp/~gekitoku/
http://www.h4.dion.ne.jp/~gekiyasu/
http://www.h5.dion.ne.jp/~gekirea/
http://www.h4.dion.ne.jp/~shinsetu/
40(2): 02/11/03 14:48 ID:??? AAS
WebProg らしく。
--- cgi-lib.po ---
my($m,$l,$i,$e,$x)=@ENV{'REQUEST_METHOD','CONTENT_LENGTH'};my$d=sub{$d=
"Request to receive too much data: $l bytes\n";print"Content-Type: text/plain",
"\n\n$d";die$d};sub ReadParse{$l>$$x?&$d:$m=~/POST/?($e=$l-read STDIN,$i,$l):(
$i=$ENV{QUERY_STRING});local*I=pop;my@i=(split(/[&;]/,$i),($m?():@ARGV));for(@i
){tr/+/ /;s/%([\da-f]{2})/pack'H2',$1/egi for my($k,$v)=split/=/,$_,2;$I{$k}.=
$I{$k}?"\0$v":$v}!$e&&scalar@i}${$x='cgi_lib::maxdata'}=131072
---------------
cgi-lib.pl 互換。Perl4 不可、multipart 未対応。
require 'cgi-lib.po';
$cgi_lib::maxdata = 1024; # POST 時の上限サイズ
ReadParse(*in); # or ReadParse(\%in);
41(1): ◆FruitsMIpE 02/11/03 18:15 ID:??? AAS
名前入力欄つき掲示板
$q=$ENV{QUERY_STRING}; if($q){@p=split /[&;]/,$q; foreach(@p){($a,$b)=split
"="; $b=~tr/+/ /; $b=~s/%([A-Za-z0-9]{2})/pack("C", hex($1))/eg; $i{$a}=$b;}
open W, ">> b.log"; print W "$i{n}<>$i{m}\n"; close W;} print "Content-type:
text/html\n\n<html>\n<head><title>掲示板</title></head>\n<body>\n"; open R,
"b.log"; while(<R>){chomp; ($n,$m)=split "<>"; print "$n:$m<br>\n";} close R;
print qq{<hr>\n<form>Name<input type="text" name="n"> <input type="text"
name="m" size="64"><input type="submit"></form>\n<hr>\n</body></html>\n}; exit;
42(1): ◆FruitsMIpE 02/11/03 18:27 ID:??? AAS
改良
$q=$ENV{QUERY_STRING}; if($q){@p=split /[&;]/,$q; foreach(@p){($a,$b)=split
"="; $b=~tr/+/ /; $b=~s/%([A-Za-z0-9]{2})/pack("C", hex($1))/eg; $i{$a}=$b;}
open W, ">> b.log"; print W "$i{n}:$i{m}\n"; close W;} print "Content-type:
text/html\n\n<html>\n<title>BBS</title>\n\n"; open R, "b.log"; while(<R>)
{chomp; print "$_<br>\n";} close R; print qq{<hr>\n<form>Name<input type="text"
name="n"> <input type="text" name="m" size="64"> <input type="submit"> [<a
href="b.cgi">Reload</a>] [<a href="../../">Back</a>]</form>\n<hr>\n</html>\n};
43(3): 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
ネタが被るねぇ。ゴメンね。(´・ω・`)
44(2): 02/11/03 19:17 ID:??? AAS
動かねぇです大将!>>42>>43
>>42のは半角でも全角でも変な文字が保存されるです!モジコード変えてもダメだったです!
>>43のはファイルが作成されませぬ!
私のミステイクでしょうか!ハラキリ!
45: 02/11/03 19:22 ID:??? AAS
>>44
open F,"+<$l"; ←注目
つー事で、ログファイルは先に作っといて。
$l='7bbs.log';
のトコがログファイルのパスだから、よろ。
46(2): [require使えば] 02/11/03 19:44 ID:??? AAS
1行でも書けるな。
47: 02/11/03 20:07 ID:??? AAS
( そんな事より1さん、ちょっと聞いてよ。スレとあんまり関係ないけどさ。
`ー‐―V―――――――――――――――――――――――――――――
;:'´ ( このあいだ、WebProg板へ行ったんですの。WebProg板。
_....._{{ 〃 \ そしたらなんかRuby!と書かれたレスが多発していましたわ。
, - ' ,..、、.ヾ{{フ'⌒`ヽ、ー―――V――――――――――――――――――
/ ,:', -‐‐` ´ '´⌒ヽ ヾ:、 _....、、、、 ( で、よく見たらrubyistという名前の書き込みで、
. ,' ,'´ ,ィ ,ィ ,' , `ヽ', ',-<´ , `ヽ.`ー――――V― 相手してもらえてないんです。
,' .i /|. /.| { i, i, }. }_,,)) lニ二二ミヽ.、 ':, ,.: '´ ,_.....__`ヽ、 ,..-‐-、),.....`_――――――
! | ! .,'-.{ ! !|; |`、.}゙!.! |. ! ヽ.l ./ ,! ,,`ヾ:、 ':, ./'´ ̄`ヾ、、ヽ,.:'´ ,:‐:、 ,.-、 ヽ.
', ', |Vァ=、゙、 `゙、!-_:ト,リ', l ! | ゙レ__,〃_/リ !.'; .} ./l_|___ノ! l `、 ', / //`''} }.'; ',
ヽ、', l:!Kノ}. f:_.)i゙i: リ ! l ル' ̄`` ´-、,ノノ l l .!,;:=、`:.`:>=、.j,} |__人(( _ノノノ |
| l!iヾ- ' , .!__:ノ ゙ ,リ l リ'´ .|' ̄ヽ __ `><ノ | {;:'ノ ノtrテ;、.Y ! ,--、 __`彡 ノ
. ',|!!、 r‐┐ ` ノ' /,イ ! __ , ⌒'/!| | !.`ー‐'´, ゙じ' ノ ! h. ._: ´ ソ).(
'i!゙、ヽ、 ゙ー' _, ィ,:',:''´ ! !、 ー' ノイ ! | | !、 !フ `フ'リ ! ル'ヽ.._ _..、(ン ノ )
゙:、ィ、jヾー::: 'iヘ ノ',リ./! .| |ー`┬、' ´ 〃 l. トヾ、.゙`ィ'' ´ヽ、/// \二|`\ー‐‐'´
,、- '´ ヽ、゙、 { `>"、 ! ! ! | `>-、 | |、 ________∧_____
/\\ ', } //`ヽ| ',.!゙、 !// ゙!/ ! ( もうね、アホかと。馬鹿かと‥
48(1): 02/11/03 21:17 ID:QK0oCR94(1)調 AAS
明文化
・7行×79文字
・Perl
・#!/usr/local/bin/perlは含まない。実質的なプログラムで七行。
・スペースも1文字分。2バイト文字は2文字分。
でいいでしょうか?
49: rubyist@カラアゲうまうま 02/11/03 21:21 ID:??? AAS
perl版cc1だれか作れ
50: 02/11/03 22:32 ID:??? AAS
このスレを見たとき、
ム板かと思いますた。
51(1): 02/11/03 22:34 ID:??? AAS
掲示板は本家でもうかなり短くなってないか?
別に委員だけど、もっと面白いネタがないかなと。
52: 43 02/11/03 23:08 ID:??? AAS
>>48
プログラムが 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>7BBS</title><form action=".
'7bbs.cgi method=post','text name=n','text name=w',"submit></form>\n"),<F>
----------------
["&<>] を数値文字参照に変換。
53(1): 02/11/03 23:18 ID:??? AAS
7行のスレッドフロート型掲示板とかは無理?
54: ◆FruitsMIpE 02/11/03 23:44 ID:??? AAS
>>43
Winではflock 使えなくてエラーに ヽ(*`Д´)ノ ワァァン
>>44
ガ━━━━(;゚Д゚)━━━━ン !!
すいませn原因わかりませn
Windows環境でSJISならうまくいくんだけど・・
>>53
前に2ch型掲示板作ってみたけど、無理確定のような気がする。
誰か作れる人、いるかな
55(1): 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: 02/11/04 09:38 ID:??? AAS
>>55
それは普通掲示板といいません(w
win鯖では動いたけどな。
57(1): 02/11/04 12:16 ID:??? AAS
やはりCGIだと、定型的な部分で多く取られてしまいますな。
58(1): ( ´∀`)でけた〜 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: 02/11/04 14:26 ID:??? AAS
で、実用性ある奴はあるのか?
60(2): 02/11/04 15:47 ID:CMvXGJGy(1)調 AAS
(・ε・)v キニシナイ!
61: 02/11/04 20:59 ID:??? AAS
HTML4.01strictとかどうよw
62: 02/11/04 23:14 ID:??? AAS
>>57
試しにHTMLを分離して作ってみたら大分縮んだ。
http://boobar.hp.infoseek.co.jp/7bbs2/7bbs2_0.0.1.tar.gz
>>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: 02/11/14 07:16 ID:M/ZRCXHw(1)調 AAS
あげ
65: 02/11/20 18:28 ID:707UhyRv(1)調 AAS
7行Wikiくれ。
66(1): 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): 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 要る?
上下前次1-新書関写板覧索設栞歴
あと 385 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.021s