//      置き換えモジュール

#module "置き換え"

#deffunc 置き換え文字列設定A val
        mref ok_str_A,24
        sdim 置き換える部分,3000
        sdim 置き換えた後,3000
        sdim 置き換えしたい文章,65000
        sdim 入力用の文章,65000
        sdim 取り出し用の文章,65000
        sdim 出力用の文章,65000
        置き換えしたい文章=ok_str_A
return

#deffunc 置き換え文字列設定B val,val
        mref ok_str_B,24
        mref ok_str_C,25
        置き換える部分 =ok_str_B
        置き換えた後  =ok_str_C
return

#deffunc 置き換え実行 val
        mref ok_str_D,24


入力用の文章=置き換えしたい文章
dim to_count,1
        to_count=0
        取り出し用の文章=""
        出力用の文章=""
dim 置き換える部分のstrsize,1
dim 置き換えた後のstrsize,1
dim 入力用の文章のstrsize,1
strlen 置き換える部分のstrsize,置き換える部分
strlen 置き換えた後のstrsize,置き換えた後

dim 置き換えたい場所,1
dim 移したい文字数,1

        repeat
        strlen 入力用の文章のstrsize,入力用の文章
        instr  置き換えたい場所,入力用の文章,置き換える部分,0

        if 置き換えたい場所=-1{
                出力用の文章+=入力用の文章
                break}

        strmid 取り出し用の文章,入力用の文章,0,置き換えたい場所
        出力用の文章+=取り出し用の文章
        移したい文字数 =入力用の文章のstrsize
        移したい文字数-=置き換えたい場所
        移したい文字数-=置き換える部分のstrsize

        置き換えたい場所+=置き換える部分のstrsize
        strmid 入力用の文章,入力用の文章,置き換えたい場所,移したい文字数
        出力用の文章+=置き換えた後
//      繰り返しなのでawaitいれなきゃね
        if(to_count>255){
                await 1
                to_count=0
        }else{  to_count+=1}
        loop





        ok_str_D=出力用の文章
        sdim 置き換えしたい文章,1
        sdim 置き換える部分,1
        sdim 置き換えた後,1
        sdim 入力用の文章,1
        sdim 取り出し用の文章,1
        sdim 出力用の文章,1
return
#global