#author("2018-06-22T23:59:22+09:00","","")
**NO_660_EDIT [#i74d2a1c]
~
追加・編集・削除・挿入~
ザックリ書きました~
Le.Antillaで書きましたよー~
~
 #module one_block_data many_data,data_title,del_flag
 #modinit int p_size
 	data_title=""
 	del_flag=0
 	sdim many_data,100,p_size
 	return
 #modfunc local set_del_flag
 	del_flag=-1
 	sdim data_title,1
 	sdim  many_data,1.1
 	return
 #modfunc local set_title str p_str
 	data_title=p_str
 	return
 #modcfunc local get_title
 	return data_title
 #modcfunc local get_data_length
 	return length(many_data)
 #modfunc local set_one_data int p_index,str p_str
 	if p_index >= length(many_data):dialog "p_index is too big",1:return
 	many_data.p_index=p_str
 	return
 #modcfunc local get_one_data int p_index
 	if p_index >= length(many_data):dialog "p_index is too big",1:return -1
 	return many_data.p_index
 #modfunc local str_dump
 	logmes "\ntitle:"+data_title+" del_flag:"+del_flag
 	repeat length(many_data)
 	logmes ""+cnt+":"+many_data.cnt
 	loop
 	return
 #modfunc local reset int p_size
 	data_title=""
 	del_flag=0
 	sdim many_data,100,p_size
 	return
 #modfunc local resize int p_size,local loc_length,local loc_array
 	loc_length=length(many_data)
 	sdim loc_array,100,loc_length
 	repeat loc_length
 	loc_array.cnt=many_data.cnt
 	loop
 	if loc_length > p_size {
 		sdim many_data,100,p_size
 		repeat p_size
 		many_data.cnt = loc_array.cnt
 		loop
 	}else{
 		sdim many_data,100,p_size
 		repeat loc_length
 		many_data.cnt = loc_array.cnt
 		loop
 	}
 	return
 #global
 


 // 試しにこんなデータ入力する
 begin_var  // case 1: def label
   sta_l {
     subr_do_eq_ldef4 1,"a",1,label_pc
     if is_jump_p==1:is_jump_p=0:goto global_label
   }
 begin_do // case 2: cls 0  
   sta_c {
     subr_do_eq_1 1,en_cls0
     if is_jump_p==1:is_jump_p=0:goto global_label
   }
 begin_do // case 3: objsize
   sta_c {
     do_eq_three(1,en_objsize,120,24)
   }
 begin_do // case 4:
 // read label
   sta_c {
     do_eq_three_lread(1,en_get_my_label,"aa1",11)
   }
 // button
   sta_c {
     switch my_pc_B
       eq_B 4:cp1="X足す1":goto *sw_begin
       eq_B 5:bt_pc_1=my_label: goto *sw_begin
       eq_B 6:cr_com=en_button_A:cmd_fin
     swend
   }



 #module block_manage
 #deffunc local init
 	sdim _4note,10000
 	notesel _4note
 	num=0
 	return
 #deffunc local add_block
 	newmod one_block_obj,one_block_data,8
 	num++
 	return num-1
 #deffunc local many_dump
 	repeat num
 	str_dump@one_block_data one_block_obj@block_manage.cnt
 	loop
 	return
 #deffunc local more_correct_dump
 	repeat notemax
 	tmp=""
 	noteget tmp,cnt
 	str_dump@one_block_data one_block_obj@block_manage.int(tmp)
 	loop
 	return
 #global
 	init@block_manage
 
 //	追加
 	add_block@block_manage
 	index=stat
 	noteadd ""+str(index),-1,0
 	set_title@one_block_data one_block_obj@block_manage.index,"case 1: def label"
 	tmp_data={"begin_var  // case 1: def label
   sta_l {
     subr_do_eq_ldef4 1,\"a\",1,label_pc
     if is_jump_p==1:is_jump_p=0:goto global_label
   }"}
   sdim tmp_array,100,8
   split tmp_data,"\n",tmp_array
   repeat length(tmp_array)
   set_one_data@one_block_data one_block_obj@block_manage.index,cnt,tmp_array.cnt
   loop
 
 	str_dump@one_block_data one_block_obj@block_manage.index
 	
 //	追加
 	add_block@block_manage
 	index=stat
 	noteadd ""+str(index),-1,0
 	set_title@one_block_data one_block_obj@block_manage.index,"case 2: cls 0  "
 	tmp_data={"begin_do // case 2: cls 0  
   sta_c {
     subr_do_eq_1 1,en_cls0
     if is_jump_p==1:is_jump_p=0:goto global_label
   }"}
   sdim tmp_array,100,8
   split tmp_data,"\n",tmp_array
   repeat length(tmp_array)
   set_one_data@one_block_data one_block_obj@block_manage.index,cnt,tmp_array.cnt
   loop
   str_dump@one_block_data one_block_obj@block_manage.index
 //	追加
   	add_block@block_manage
 	index=stat
 	noteadd ""+str(index),-1,0
 	set_title@one_block_data one_block_obj@block_manage.index,"case 3: objsize"
 	tmp_data={"begin_do // case 3: objsize
   sta_c {
     do_eq_three(1,en_objsize,120,24)
   }"}
   sdim tmp_array,100,8
   split tmp_data,"\n",tmp_array
   repeat length(tmp_array)
   set_one_data@one_block_data one_block_obj@block_manage.index,cnt,tmp_array.cnt
   loop
   str_dump@one_block_data one_block_obj@block_manage.index
   
 //	追加
 	add_block@block_manage
 	index=stat
 	noteadd ""+str(index),-1,0
 	set_title@one_block_data one_block_obj@block_manage.index,"case 4:"
 	tmp_data={"begin_do // case 4:
 // read label
   sta_c {
     do_eq_three_lread(1,en_get_my_label,\"aa1\",11)
   }
 // button
   sta_c {
     switch my_pc_B
       eq_B 4:cp1=\"X足す1\":goto *sw_begin
       eq_B 5:bt_pc_1=my_label: goto *sw_begin
       eq_B 6:cr_com=en_button_A:cmd_fin
     swend
   }"}
   sdim tmp_array,100,8
   split tmp_data,"\n",tmp_array
   tmp_num=stat
   if stat >= 8{
 	resize@one_block_data one_block_obj@block_manage.index,stat
   }
   repeat length(tmp_array)
   set_one_data@one_block_data one_block_obj@block_manage.index,cnt,tmp_array.cnt
   loop
   str_dump@one_block_data one_block_obj@block_manage.index
 //	削除
   set_del_flag@one_block_data one_block_obj@block_manage.1
   repeat notemax
   tmp=""
   noteget tmp,cnt
   if tmp==1:notedel cnt:break
   loop
 // クリア
   reset@one_block_data one_block_obj@block_manage.2,8
 // 編集
 	index=2
 	set_title@one_block_data one_block_obj@block_manage.index,"case 1: def label"
 	tmp_data={"begin_var  // case 1: def label
   sta_l {
     subr_do_eq_ldef4 1,\"a\",1,label_pc
     if is_jump_p==1:is_jump_p=0:goto global_label
   }"}
   sdim tmp_array,100,8
   split tmp_data,"\n",tmp_array
   repeat length(tmp_array)
   set_one_data@one_block_data one_block_obj@block_manage.index,cnt,tmp_array.cnt
   loop
 // 挿入
 	add_block@block_manage
 	index=stat
 	noteadd ""+str(index),2,0
 	set_title@one_block_data one_block_obj@block_manage.index,"case 2: cls 0  "
 	tmp_data={"begin_do // case 2: cls 0  
   sta_c {
     subr_do_eq_1 1,en_cls0
     if is_jump_p==1:is_jump_p=0:goto global_label
   }"}
   sdim tmp_array,100,8
   split tmp_data,"\n",tmp_array
   repeat length(tmp_array)
   set_one_data@one_block_data one_block_obj@block_manage.index,cnt,tmp_array.cnt
   loop
 ;  str_dump@one_block_data one_block_obj@block_manage.index
 ;  many_dump@block_manage
   more_correct_dump@block_manage