#module
#defcfunc getlist var A,int c,int d,int e
;P1:読みだす文字列変数
;P2:列(X)
;P3:行(Y)
;P4:区切り文字コード(例 ','でカンマ 9でタブ)
    f=0
    notesel A
    noteget G,D
    repeat C+1
        getstr B,G,F,E
        F+=strsize
    loop
    return b
#global

#module
#deffunc listadd var A,str B,int C,int D,int E
;P1 内容を変更する変数
;P2 追加したい内容(中身があれば置き換える)
;P3 列(X座標)
;P4 行(Y座標)
;P5 区切る文字コード
    dim F,1
    F=strlen (A)
    sdim G,F
    sdim H,F
    F=0
    G=""
    p=""
    poke p,0,E

    
    notesel A
    nm=noteinfo(0)
    if nm<=D{;指定行数が最終行よりも大きいときは改行を付け足す
        repeat D-nm+1
        a+="\n"
        loop
    }
    noteget G,D

    repeat C
        getstr I,G,F,E
        H+=""+I+""+p
        F+=strsize
    loop
    getstr I,G,F,E
    getstr I,G,F+strsize,E
    if strsize=0{ 
        H+=""+B
        goto*@f
    }
    H+=""+B+""+p
    getstr I,G,F,E
    F+=strsize
    repeat 
        getstr I,G,F,E
        if i="":break
        H+=""+I+""+p
        if strsize=0:break
        F+=strsize
        await 0
    loop
*@
    noteadd H,D,1
    return
#global
;Sample
    /*
    a={"
    A1  B1  C1
    A2  B2  C2
    A3  B3  C3
    "}
    mes "置き換え前"
    mes a
    b="AAAAA"
    
    pos 0,200
    mes "B2="+getlist(a,1,1,9)
    mes "C1="+getlist(a,2,0,9)
    listadd a,b,2,2,9
    pos 250,0
    mes "置き換え後"
    mes a
    */