Lastpost: 2016年11月02日(水) 19時00分JST-9 Viagra Online

placeark - BBS


メニュー

利用について

  1. すみません。最近、掲示板を見ていないため、出来ればメールかtwitterでお願いします><
  2. 煽り・釣り・成り済まし・AAは禁止します。
  3. 無題・使い捨てのハンドルネーム・名無し等での投稿は控えてください。
  4. ソースコードを書くときは<code></code>で囲んでください。
  5. 書き込めない場合は、表示されたワードを1つ以上使用してください。
  6. 回答を急ぎたい方はトップのメールアドレスからメールしてください。

記事

未読記事のあるスレッド[ 40 39 38 31 37 36 33 35 23 34 32 30 29 28 27 26 10 25 24 22 21 .. ]

< 後の [ 1 2 3 4 5 6 7 8 ] 昔の >

このページのスレッド
[ 32 30 29 28 27 ]

SAMPLE_pnotemax.hspのpnoteaddの不具合?について

【No.32】 照坊 2012年01月16日(月) 17時16分JST-9 【修正】
[ ktrbchTjRCw ]
 
こんにちわ♪なたでさん(^^)

下スレでご挨拶したように、c4hsp頂いて勉強を始めたんですが、
追加していただいたpnoteaddが追加モードの時に、どうも
1バイトずれて改行が入らないと言う不具合があるようです。

それで、勉強がてら、なたでさんのソースを元に修正してみました。
これは投稿欄に貼り付けていいでしょうか?
それともファイル添付にしたほうが良いでしょうか?

ご指示に従いますのでよろしくお願いします。m(_ _)m
  【Re:1】 なたで 【HOME】 2012年01月23日(月) 17時27分JST-9 【修正】
[ AwnHyUS/uak ]
 
ご指摘ありがとうございます。

メールか掲示板かどちらでもよいので、
貼りつけてくれたら嬉しいです!!

掲示板に貼り付けるときは
code タグで囲ってください。
よろしくお願いします m(_ _)m
  【Re:2】 照坊 2012年01月24日(火) 17時51分JST-9 【修正】
[ ktrbchTjRCw ]
 
こんにちわ♪なたでさん(^^)

pnoteaddの修正ソースです。
なにぶん初めてなのでもったりしてるかも知れませんがご愛嬌で♪(^^)


//追加で1バイトずれ、行挿入にならない不具合を修正しました。
//本家もそうですが、文末行の上書きができないので出来るように追加しました。
//↑個人的に欲しかったので(^^)

#define OPT        maximum
#define LINE       6
#define MODULE     _pnote_
#define VECTORTYPE .

#define NUL 0x00
#define CR  0x0D
#define LF  0x0A

void pnoteadd(unsigned char src[], unsigned char data[], int index, int option) {
        int srcpos=0, datasize=0, motosize=0, headpos=0, i=0, j=0, g=0;
        //空バッファの場合
        if (src[0]==NUL) {
                for(; data[datasize]!=NUL; datasize++, srcpos++) {
                        src[srcpos]=data[datasize];
                }
                src[srcpos++]=CR;
                src[srcpos++]=LF;
                src[srcpos++]=NUL;
                return;
        }
        //事前準備1
        for(; src[motosize]!=NUL; motosize++) {
                if(src[motosize]==CR) {
                        g++;
                }
        }
        if (src[motosize-2]!=CR) {
                src[motosize++]=CR;
                src[motosize++]=LF;
                src[motosize++]=NUL;
        }
        //最後に追加
        if(index==-1) {
                if(option==0) {
                        srcpos=motosize;
                }
                // option==1
                else{
                        srcpos=motosize-2;
                        for(; ((src[srcpos]!=LF)||(srcpos==0)); srcpos--);
                        if(srcpos!=0) {
                                srcpos++;
                        }
                }
                for(; data[datasize]!=NUL; datasize++, srcpos++) {
                        src[srcpos]=data[datasize];
                }
                src[srcpos++]=CR;
                src[srcpos++]=LF;
                src[srcpos++]=NUL;
                return;
        }
        //事前準備2
        for(; data[datasize]!=NUL; datasize++);
        if(index>g) {
                return;
        }
        //最初
        if(index!=0) {
                //ターゲット行
                for(; src[srcpos]!=NUL; srcpos++) {
                        if(src[srcpos]==CR) {
                                i++;
                                srcpos++;
                                if(i==index) {
                                        srcpos++;
                                        break;
                                }
                                continue;
                        }
                }
        }
        // 追加
        if(option==0) {
                headpos=srcpos;
                i=motosize+datasize+2;
                src[i+2]=NUL;
                for(; headpos<=motosize; motosize--, i--) {
                        src[i]=src[motosize];
                }
                for( i=0; datasize>i; headpos++, i++) {
                        src[headpos]=data[i];
                }
                src[headpos++]=CR;
                src[headpos++]=LF;
                return;
        }
        // 上書き
        if(i==g) {
                src[motosize++]=CR;
                src[motosize++]=LF;
                src[motosize++]=NUL;
        }
        headpos=srcpos;
        for(j=0; src[srcpos]!=NUL; srcpos++, j++) {
                if(src[srcpos]==CR) {
                        break;
                }
        }
        i=motosize+datasize-j;
        if (i>motosize) {
                for(; srcpos<=motosize; i--, motosize--) {
                        src[i]=src[motosize];
                }
        }
        else {
                for( j=headpos+datasize; src[srcpos]!=NUL; srcpos++, j++) {
                        src[j]=src[srcpos];
                }
                src[j]=NUL;
        }
        for( i=0; datasize>i; headpos++, i++) {
                src[headpos]=data[i];
        }
        return;
}


c4hspは、本当に便利です。
今までHSPで作った物で、色々速度が欲しかった部分を試行錯誤しながら作り始めました。(^^)v
本当に感謝です。m(_ _)m
  【Re:3】 なたで 【HOME】 2012年01月25日(水) 23時16分JST-9 【修正】
[ AwnHyUS/uak ]
 
照坊さん。報告のサンプルコードありがとうございます!

正直結構複雑で自分で書いたものなのに忘れてしまいました。
追加に関して、次の更新時に直してみたいと思います。
  【Re:4】 照坊 2012年02月11日(土) 00時03分JST-9 【修正】
[ ktrbchTjRCw ]
 
こんばんわ、なたでさんm(_ _)m

pnoteaddですが、使っていると、空バッファーに pnoteadd buf,add,-1,0 で挿入すると
先頭に空行を作るという不具合があったり、色々不具合が出てきたので改めて書き直しました。
元のソースを弄っていたら訳が分からなくなってきたのと一つ一つデバッグしたかったもので…(^^;)
新しいソースは上のスレで投稿したソースを差し替えました。

宜しくお願いします。m(_ _)m

この記事スレッドNo.32に返信する(1)

すぽいと君使わしてもらいます。

【No.30】 【HOME】 2011年12月11日(日) 16時49分JST-9 【修正】
[ giISh9C/emA ]
 
なたでさま。
初めて訪問しました。

新規作成のHP作成に「すぽいと君」を使わして頂きました。
これからも活躍してくれそうです。

ありがとうございました,(^o^),
  【Re:1】 なたで 【HOME】 2011年12月18日(日) 22時08分JST-9 【修正】
[ 5gVsOCn/S8E ]
 
善さん初めまして。

「すぽいと君」使ってくれてありがとうございます!

ぜんぜん話は変わるのですが「オレンジビューア」など
機能はあるのですが使い勝手がよくないものを作ってきました。
そのため、これからは「すぽいと君」を作ったときのように
使いやすさというものを改めて考えて直し、
色々なのを作っていこうと考えております!

これからもよろしくお願いします><

この記事スレッドNo.30に返信する(2)

すぽいと君

【No.29】 VIVEZAと併用してます 2011年12月10日(土) 16時23分JST-9 【修正】
[ Cz79HaDNlTk ]
 
すぽいと君便利です!UIもカッコよくてGoodです。
ありがとうございます。
  【Re:1】 なたで 【HOME】 2011年12月18日(日) 22時03分JST-9 【修正】
[ AwnHyUS/uak ]
 
VIVEZAさんこんにちは。

利用していただき、
ありがとうございます。
プログラムを作るモチベーションがぐーんと上がり、
とってもうれしいです。

この記事スレッドNo.29に返信する(3)

チャット

【No.28】 チャット 2011年04月25日(月) 12時45分JST-9 【修正】
[ w5UkJFj.qfQ ]
 
チャットのサンプルの改良版のUPお願いします><
クライアントに強制退出機能、入室者のIP表示など
サーバー側に名前の隣にIP表示など、入室者数などの表示
よろしくお願いします><
時間の都合上などで無理でしたらヒントだけでも下さい!!
  【Re:1】 natade 2011年05月14日(土) 23時34分JST-9 【修正】
[ BdgTDqz6lvE ]
 
返事が大変遅れて申し訳ございません。m(_ _)m
最近掲示板確認するの忘れていました。

チャットは、今から5年以上前に書いたもので、
ソースコードが下手で分かりづらいですね。

サーバー側は
「player_address」という所にIPアドレスが入っているようです。

クライアント側は、サーバーから来たメッセージをそのまま表示するだけですので、
基本的にIPアドレスを表示させることが出来ません。

ですので、サーバー側の
*sub_player_com_send
のサブルーチン内で

send_message = player_names(cnt) + ":" + player_message(cnt)



send_message = player_names(cnt) + "("+player_address(cnt)+"):" + player_message(cnt)

とすることでクライアント側でIPアドレスが分かるようになります。

また、サーバー側で
socket_player_ch(cnt) が 3
になっているのが、ログイン中の人なので、
この人だけの人数を計算すれば、入室者数になります。

クライアントに強制退出機能は、ちょっと面倒だと思うので、
サーバーに強制退出機能を付ける形のほうが簡単かもしれません。
サーバー側の「gosub *sub_player_miss」のサブルーチンが
強制ログアウト処理になります。

とりあえずソースコードを印刷して、流れを追うといいかもしれません。
サーバー側の「*sub_player_com_receive」がポイントです。

この記事スレッドNo.28に返信する(4)

RxSIDxjnivSObRpOdUK

【No.27】 FfspEwThxS 2010年12月06日(月) 23時29分JST-9 【修正】
[ me56io/IEds ]
 
86x58V kamagra.txt;6;10

この記事スレッドNo.27に返信する(5)


このページのスレッド
[ 32 30 29 28 27 ]

< 後の [ 1 2 3 4 5 6 7 8 ] 昔の >

メニュー

- Type: Mireille NoIconStyle 1.2 -
- Airemix Mireille 1.2.17 -