トップ
新規
一覧
Farm
検索
ヘルプ
RSS
ログイン
sub get_userの編集
!!ソースコードの解説 sub get_user { return if $getuserflag; 1度このサブルーチンが実行されていれば、2度目は実行しない。 open(IN,"$usrdir$_[0]\.dat") || &error("ID $_[0]は存在しません"); 引数は配列として特殊変数 @_ に格納されるので、ファイル名は $_[0] になっている。 open関数でユーザーデータファイル(例えば、0000.dat)を入力モードでオープンし、ファイルハンドル IN に結び付ける。 ファイルオープンに失敗すると sub error が実行され、エラーメッセージをHTMLに出力する。 @_ = <IN>; close(IN); ファイルハンドルに結び付けられたファイル(例えば、0000.dat)の内容を、1行ごとに配列 @_ の要素として代入する。 この時点で、以前の @_ の内容(ファイル名)は上書きされて失われる。 **$_[0] = ファイル内容の1行目 **$_[1] = ファイル内容の2行目 ** : **$_[n] = ファイル内容のn+1行目 **$_[最後] = 未定義値 となる。 ファイルハンドルをクローズする。 if (!@_) { &error("読みこみエラー") } 配列 @_ が偽(この場合は空リスト)ならば、エラーメッセージをHTMLに出力する。 ($id,$nm,$ps,$jb,$ig,$sp,$bp,$bn,$ak,$dd,$hp,$xp,$ab,$db, $av,$wn,$lz,$dt,$mn,$bg,$xi,$tm,$lf,$fe,$cm,$is,$ht,$fg,$rw,$kl) = split(/<>/,$_[0]); 配列 @_ の0番目の要素(つまり、ファイルの1行目)を、<> を区切り文字として分割し、各スカラー変数に代入する。 各スカラー変数の内容はリファレンスマニュアル参照。 &error("パスワードが違います") if $Fm{'ps'} ne $ps && $Fm{'ps'} ne $admpas && $Fm{'mode'} ne 'make_con'; 次の全てに該当した場合、エラーメッセージをHTMLに出力する。 **$psがFORMから入力されたパスワードと一致しない **$psが$admpas(管理者パスワード)と一致しない **$Fm{'mode'} が 'make_con' (Continue)ではない $userline = shift(@_); 配列 @_ の先頭要素(つまり、$_[0] …… ファイル内容の1行目)を取り除いて、それを $userline に代入する。 これによって、以降の配列 @_ の要素は、ファイル内容の2行目以降になる。 $userline の内容は **$userline = "id<>名前<>パスワード<>……<>\n" のように、<>で連結されている状態のもの。 $getuserflag = 1; sub get_user を複数回実行しないようにフラグを立てる。 return @_; } @_ を戻り値として、サブルーチン終了。 呼び出しの項にあるとおり、この戻り値のリストが @rcdlines に代入される。 つまり、@rcdlines は、ファイル内容の2行目以降=マイレコード ということになる。
タイムスタンプを更新しない
添付ファイル
リネーム・コピー
リネーム
メッセージを残してリネーム
コピー
[
ヘルプ
]
Counter 713509
はじめに
SOS2 Wikiの使い方
コンテンツ
SOS2を設置する
SOS2を改造する
困ったときには
コラム
改造&FAQ
リファレンスマニュアル
機能別改造一覧
雑談
BBS
Masters Bar
公式BBS
サポート
サポートBBS
Link
リンク
SIONJamの改造ソース
設置サイトはこちらへ
検索
キーワード
AND
OR
ページ内容も含める
最近更新されたページ
雑談
Script of Saga II Wiki
パーティシステム
D2C風、レアアイテム生成システム
洋ゲー風、拾得アイテム強化プログラム
SOSIIを分割しよう
戦闘関連強化・特技&魔法
SOSII Check Script
乱数ロールプログラム
不具合情報
参照数の多いページ
Script of Saga II Wiki
(75215)
リンク
(16507)
SOS2を設置する
(12587)
雑談
(11985)
SOS2改造利用規約
(9826)