スクリプト公開所

  新規投稿 ┃ツリー表示 ┃一覧表示 ┃トピック表示 ┃検索 ┃設定 ┃ホーム  
51 / 101 ツリー ←次へ | 前へ→

ユーザーリクエストBOX 香流 08/6/30(月) 9:20 [添付]

Re:ユーザーリクエストBOX 斜め読み 08/7/3(木) 0:50
Re:ユーザーリクエストBOX 香流 08/7/3(木) 8:55
Re:ユーザーリクエストBOX 斜め読み 08/7/3(木) 23:51

Re:ユーザーリクエストBOX
 斜め読み  - 08/7/3(木) 0:50 -
  
付属のドキュメントだけでは細部の仕様が不明瞭なのが問題ですよねぇ。
とりあえず気づいたことをつらつらと。

・5行目
    set 'csvid$,"CSVREQUEST";    //CSVファイル
    set 'Margin,5;    //手数料

    この2つの変数だと思いますので、setするのは初回だけでいいはずです。
    OnInit: でサーバ起動時にセットするか、172行目の 'db_first の辺りで
    初回だけsetを実行するようにした方が得策です。

・14行目
    //数値の初期化(念のため)
    set '@MENU_Page,0;

    不要です。
    関数依存変数は初期値が0で保障されています。

・18行目
    function message;

    不要です。
    ユーザ定義関数の宣言は、定義よりも前に呼び出す際にのみ必要です。

・173行目
    csvreload 'csvid$;

    不要です。
    csvファイルの読み込みは、csv命令/関数のいずれかを初めて呼び出したとき
    自動的に行われます。

・178行目ほか
    cleararray @menu$[0],"",1;

    単純に set @menu$[0],""; の方が高速です。

・214行目ほか
    if('@Item_NUM <= 0 | '@Item_NUM >= '@MAX_NUM){

    多分 | ではなく || の間違い。

・241行目ほか
    sleep2 ( 100 );

    sleep2は命令ではなく関数です。
    従って戻り値を受け取る必要があります。
    実行ユーザにアタッチし直さないとスクリプトが続行できなくなります。

・252行目ほか
    csvflush 'csvid$;
    csvreload 'csvid$;

    不要です。
    csvreloadにはcsvflushの機能も含まれています。
    また、csvflushやcsvreloadを使わなくても、csvファイルへの書き出しは
    サーバ停止時に自動的に実行されます。
    ただし、サーバクラッシュなどでデータが保存されないなどの事象を
    考慮しているのであれば、一定時間ごとにcsvflushする方が得策です。
引用なし
パスワード

Re:ユーザーリクエストBOX
 香流  - 08/7/3(木) 8:55 -
  
▼斜め読みさん:
チェックありがとうございます!
色々と思い違いをしてる部分がありました><

csvflush 'csvid$;
csvreload 'csvid$;
を使わなくてもリアルタイムで書き変わるのでしたら、
もしかしてロックとかもいらないんですかね…?

CGIで作るBBS的な考え方でやってたもので、
事あるごとにリロードしてました^^;
引用なし
パスワード

Re:ユーザーリクエストBOX
 斜め読み  - 08/7/3(木) 23:51 -
  
csv関数/命令のいずれかを初回実行時、指定ファイルから読み込んだデータはメモリに保存されます。
csvwirteなどによる書き込み処理は、メモリ上のデータに対して行われます。
よって、csvflush/csvreloadを実行せずとも、常にデータは保存されることになります。
csvflushはこのメモリ上のデータをファイルに書き出すときに必要なだけです。

またcsvreloadは、Athenaの外部からファイルに更新が行われる場合、それを再読み込みするときに利用します。
それ以外の用途ではあまり使うことはないでしょう。

ロックについてですが、Athenaはシングルスレッドで動作していますので、原理的には無くても問題ありません。
しかしながら、一般的なプログラミングの観点からすると排他制御を行うべきものだと考えられますので、ロックを掛けるに越したことはないと思います。
引用なし
パスワード

  新規投稿 ┃ツリー表示 ┃一覧表示 ┃トピック表示 ┃検索 ┃設定 ┃ホーム  
51 / 101 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:   
151955
(SS)C-BOARD v3.8 is Free