テキストエディタについてアドバイスを求めています
ROCKMAN 2013/6/3(Mon) 18:10:53|NO.54524
;text Editor
#define bn_y 20
#define printf print
#define maxsize 32000
redraw 2
fn="-"
onexit *qq
sdim buff,maxsize
objsize 100,bn_y
pos 0,0
button "名前をつけて保存(ctrl+shift+s)", *new_save
objsize 60,bn_y
pos 100
button "上書き保存(ctrl+s)",*save
pos 160
button "読み込み(ctrl+l)",*load
pos 220
button "新規作成(ctrl+n)",*new
mesbox buff,winx,winy-24
redraw 3
stop
*new_save
dialog "txt",17,"txt file"
if (stat==0){
dialog "\a保存できません", 1,"error"
if t==1 : goto*@forward
stop
}
getpath fn,refstr,1
fn=fn+".txt"
notesel buff
notesave fn
stop
*save
if (fn=="-"){
printf ("\a")
stop
}
notesel buff
notesave fn
if t==1 : goto*@forward
stop
*load
dialog "txt",16,"txt file load"
if (stat==0){
dialog "読み込めません",1,"error"
stop
}
notesel buff
noteload (fn=refstr)
strlen num,buff
if (num>=maxsize){
dialog "サイズが許容範囲を超えています",1,"error"
stop
}
*new
screen 1,240,120
pos 108,20
k=""
objsize 200,24
input k
clist=".txt\n.c\n.as\n.html"
cb=0
pos ,50
combox cb,,clist
*qq
dialog "セーブしますか?",2,"save?"
if (stat==6&&fn!="-"){
t=1
goto *save
stop
}
else if (stat==6){
t=1
goto *new_save
}
*@
end
テキストエディタです
まだ全然使えません。
どこを改善していいかわかりません
教えてください。
狐 2013/6/3(Mon) 18:46:31|NO.54527
初心者(実質一か月未満)からだけどどんなことがしたいかまとめて
まずgoogle先生に聞いてみたらどうでしょ?
KA 2013/6/3(Mon) 21:00:18|NO.54528
感で何となく聞きたい事は分かりますが、そのスクリプトを
作った本人が、内容を理解していないことが問題です。
自分でそこまで作ったんでしょ。
あり 2013/6/4(Tue) 01:06:20|NO.54534
ごく基本的なアドバイスとして
機能を一つ作ったらその都度動作確認をするべきです。
それを行うだけで少なくとも何処に問題があるのかを
悩むという事は大幅に減少するはずです。
また、KAさんも仰っていますが
自分で明確な目的を持ってプログラムしておきながら
使った命令が何をしているのかを理解できていないという事は
あきらかな準備・勉強不足だと言われても仕方ありませんよ。
本題の何処を改善すればいいのか分らないという事ですが
問題点が複数個所に存在するので不具合を確認してその都度直していくより
HSPへの理解を深めつつ最初から作り直した方がよほど有効的で
結果完成も早いと思います。
・命令の意味・使い方を詳しく調べる。
(サンプルの中に自分の使いたい機能のものがあればそれを参考にするのもよし)
・エラーの意味と発生した行を確認する。
・細かい動作確認を怠らない。
(一度に大量の処理を書かない)
・処理の流れを確認しやすい記述にする
(コメントをつける、スペースを多めに入れる等)
以上を行うだけでも格段に開発効率が上がるはずですので
一から勉強しなおすつもりで再挑戦してみてください。
K 2013/6/4(Tue) 12:16:05|NO.54539
まず、プログラムにコメントを付けてみましょう。
コメントを付けるとプログラムの流れがわかりやすくなります。
以下に、コメントの記述の仕方を示します。
/* テキストエディタプログラム */
上の場合は、"/*"から"*/"までの部分がコメントとなります。
// [名前を付けて保存]ダイアログ
上の場合は、"//"で始まる1行がコメントとなります。
; 新規作成
上の場合も、";"で始まる1行がコメントとなります。
K 2013/6/4(Tue) 12:23:23|NO.54540
それから、変数の名前はできるだけわかりやすいものにしましょう。
tやfnだけ書いてあっても後で見直した時に分からなくなりますよ?
たとえば、
FileName = "hoge.txt" // ファイル名を代入する変数
FileSize = 256 // ファイルのサイズを代入する変数
FileExt = ".txt" // ファイルの拡張子を代入する変数
// ファイルが保存された場所(パス)を代入する変数
FilePath = dir_cur + "\\" + FileName
K 2013/6/4(Tue) 12:29:43|NO.54541
また、プログラムにインデントを入れてください。
インデントは、字下げを意味します。たとえば、
if (a == 5) {
mes "aは5です"
} else {
mes "aは5ではありません"
}
という書き方よりは、
if (a == 5) {
mes "aは5です"
} else {
mes "aは5ではありません"
}
の方が見やすいでしょう。
KA 2013/6/4(Tue) 13:03:01|NO.54542
";"は、それ以降の行末までがコメント扱いです。
; 1行コメント
mes "Comment" ; 文末コメント
ROCKMAN 2013/6/4(Tue) 20:43:36|NO.54557
何かすみません。
まだ初心者なので、いまいちよく分からなくて。
しかも、HSP2xの本しか家になく、どこが変わったのかもよく分からないんです。
KA 2013/6/4(Tue) 21:00:04|NO.54563
本を見なくてもマニュアルに、変更点とサンプルが豊富に有ります。
ROCKMAN 2013/6/6(Thu) 20:56:56|NO.54632
ありがとうございます。
皆さんの言うとおりにやってみます