2008年8月22日金曜日

テキストFILEの更新 ver02

データに決まった内容を書き込むサンプルスクリプトはできましたが
今度は入力した内容をデータに書き込みます

変更前のテキストFILE
FILE名:dat\\y_tack_page.txt
NO.001
TITLE:ずざざん ざん♪
URL :http://space.geocities.jp/digital_clock_2006
memo1:author
memo2:y.tack
memo3:
memo4:
memo5:
memo6:
memo7:
NO.002
TITLE:TACK BLOG
URL :http://space.geocities.yahoo.co.jp/gl/digital_clock_2006
memo1:author
memo2:y.tack
memo3:
memo4:
memo5:
memo6:
memo7:
NO.003
TITLE:ブログを ずざざん ざん♪
URL :http://ytack.blogspot.com/
memo1:author
memo2:y.tack
memo3:
memo4:
memo5:
memo6:
memo7:


テキストFILEの更新のスクリプトver02

以前作成したdiv_strモジュールを使用しています
#include "FILE_div_str.hsp"

bt_str_01="NO.001"
bt_str_02="NO.002"
bt_str_03="NO.003"

sl_bt_str_01="→NO.001"
sl_bt_str_02="→NO.002"
sl_bt_str_03="→NO.003"
sl_NO=1

bt_cmd_str_01="項目"
bt_cmd_str_02="TEXT"

sl_bt_cmd_str_01="→項目"
sl_bt_cmd_str_02="→TEXT"
sl_CMD=1

sdim s_title,1000
s_title=""
sdim s_url ,1000
s_url=""
sdim s_memo ,2000
s_memo=""
t_null ="TITLE:\nURL :\nmemo1:\nmemo2:\nmemo3:\n"
t_null+="memo4:\nmemo5:\nmemo6:\nmemo7:"
sdim s_text ,4000
s_text=t_null

sdim to_chg_topic,4,256
to_chg_topic.1="HSPTV!"
to_chg_topic.2="http://hsp.tv/"
to_chg_topic.3="ONION software"

sdim to_chg_text,10,256
to_chg_text.1="TITLE:HSPTV!"
to_chg_text.2="URL :http://hsp.tv/"
to_chg_text.3="memo1:ONION software"
to_chg_text.4="memo2:"
to_chg_text.5="memo3:"
to_chg_text.6="memo4:"
to_chg_text.7="memo5:"
to_chg_text.8="memo6:"
to_chg_text.9="memo7:"

gosub *ld_dat
gosub *set_topic_pre

*begin
cls 0
gosub *draw_button
if sl_CMD==1{ gosub *draw_topic }
if sl_CMD==2{ gosub *draw_text }
stop

*set_topic_pre
if sl_NO==1:i=1
if sl_NO==2:i=11
if sl_NO==3:i=21
s=""
gosub *get_inside
s_title=t
i++
gosub *get_inside
s_url=t
i++
s_memo=""
repeat 7
gosub *get_inside
s_memo+=t
i++
loop
return

*get_inside
noteget s,i
l=strlen(s)
l-=6
t=strmid(s,6,l)
return

*set_text_pre
if sl_NO==1:i=1
if sl_NO==2:i=11
if sl_NO==3:i=21
s_text=""
s=""
repeat 9,i
noteget s,cnt
s_text+=s+"\n"
loop
return

*set_topic_tmp
s_title=to_chg_topic.1
s_url =to_chg_topic.2
s_memo =to_chg_topic.3
return

*set_text_tmp
s_text=""
repeat 9,1
s_text+=to_chg_text.cnt+"\n"
loop
return

*draw_text
pos 120,25
mesbox s_text,480,450,1,-1
return

*draw_topic
pos 120,25
mes "title"
mesbox s_title,360,40,1,-1
mes "URL"
mesbox s_url,360,100,1,-1
mes "memo"
mesbox s_memo,360,250,1,-1
return

*draw_button
objsize 120.25
pos 0,0
if sl_CMD==1{
button sl_bt_cmd_str_01,*cmd01 }
else{ button bt_cmd_str_01,*cmd01 }
if sl_CMD==2{
button sl_bt_cmd_str_02,*cmd02 }
else{ button bt_cmd_str_02,*cmd02 }
button "tmplate挿入",*cmd_insert
button "更新",*cmd_chg
button "RESET",*cmd_reset
button "LOAD",*cmd_load
pos 120,0
if sl_NO==1{
button sl_bt_str_01,*sl_1 }
else{ button bt_str_01,*sl_1 }
pos 240,0
if sl_NO==2{
button sl_bt_str_02,*sl_2 }
else{ button bt_str_02,*sl_2 }
pos 360,0
if sl_NO==3{
button sl_bt_str_03,*sl_3 }
else{ button bt_str_03,*sl_3 }
return

*sl_1
sl_NO=1
goto *set_dat
*sl_2
sl_NO=2
goto *set_dat
*sl_3
sl_NO=3
goto *set_dat

*set_dat
if sl_CMD==1{ gosub *set_topic_pre }
if sl_CMD==2{ gosub *set_text_pre }
goto *begin

*cmd01
sl_CMD=1
goto *set_dat
*cmd02
sl_CMD=2
goto *set_dat

*cmd_insert
if sl_CMD==1{ gosub *set_topic_tmp }
if sl_CMD==2{ gosub *set_text_tmp }
goto *begin

*ld_dat
sdim dat,1024
notesel dat
noteload "dat\\y_tack_page.txt"
return

*cmd_chg
if sl_CMD==1{ gosub *topic2text}
if sl_CMD==2{ gosub *mb2text}
stop
*topic2text
s = "TITLE:"+div_one_at_div_str(s_title)
t = "URL :"+div_one_at_div_str(s_url)

init_at_div_str 16
set_str_at_div_str s_memo
div_str_at_div_str 16
if sl_NO==1:i=1
if sl_NO==2:i=11
if sl_NO==3:i=21
noteadd s,i,1 :i++
noteadd t,i,1 :i++
j=3
k=1
repeat 7,i
noteadd ("memo"+k+":"+get_str(j)),cnt,1
j++
k++
loop
notesave "dat\\chg_dat.dat"
exec "notepad dat\\chg_dat.dat"
stop

*mb2text
init_at_div_str 16
set_str_at_div_str s_text
div_str_at_div_str 16
if sl_NO==1:i=1
if sl_NO==2:i=11
if sl_NO==3:i=21
j=1
repeat 9,i
noteadd get_str(j),cnt,1
j++
loop
notesave "dat\\chg_dat.dat"
exec "notepad dat\\chg_dat.dat"
stop

*cmd_load
sdim dat,2048
notesel dat
noteload "dat\\chg_dat.dat"
goto *set_dat

*cmd_reset
gosub *ld_dat
goto *set_dat

ToDoリストによるとまだまだ
作成すべき機能もありますが
サンプルスクリプトも作成するのがめんどうなので
サンプルスクリプトの作成は一段落させて
本体のスクリプトを作成していこうと思います

0 件のコメント: