試しに10MBのcsvデータを作ってnotegetしてみましたが重くなるなどの動作はありませんでしたよ
#const csvsize 10*1024*1024
randomize 0xF0F0F0F0
sdim csv,csvsize+128
sdim data,csvsize*10
sdim temp2,64,10
temp = ""
len = 0
index = 0
repeat
temp = strf("%d,",rnd(32767))
len = strlen(temp)
memcpy csv,temp,len,index,0
index += len
if cnt \ 10 = 0{
wpoke csv,index,0x0A0D
index += 2
}
if index >= csvsize:break
loop
mes "10MBのCSVを作成しました"
len = 0
index = 0
temp = ""
notesel csv
mes ""+noteinfo(0)+"行です"
pos 0,50
mesbox data,640,430
repeat noteinfo(0)
//長いので100行ずつ読み出します
if cnt \ 100 != 0{
continue
}
ccnt = cnt
noteget temp,cnt
split temp,",",temp2
repeat 10
temp = strf("%d行目 %d番目=%d\n",ccnt,cnt,temp2(cnt))
len = strlen(temp)
memcpy data,data,index,len,0
memcpy data,temp,len,0,0
index += len
loop
objprm 0,data
await
loop
この場合は1つの要素が5B程度しかありませんが、64Bを超える場合は予めsdimで確保した方がいいと思います(上記だと変数temp)