ab.com コミュニティ

ActiveBasicを通したコミュニケーション
現在時刻 - 2024年3月28日(木) 22:12

全ての表示時間は UTC+09:00 です




新しいトピックを投稿する  トピックへ返信する  [ 6 件の記事 ] 
作成者 メッセージ
投稿記事Posted: 2006年3月09日(木) 17:21 
オフライン

登録日時: 2006年3月09日(木) 17:09
記事: 24
アラームソフトを作りました。ソースを書きます。
#N88BASIC
10 dim hour As Integer
13 dim min As Integer
15 dim sec As Integer
20 dim chk As String
23 dim chk1 As String
25 dim chk2 As String
28 dim chk3 As String
29 dim chk4 As String
30 print "何時";
40 input hour
50 If hour<0 or hour>23 Then goto 30
60 print "何分";
70 input min
80 If min<0 or min>59 Then goto 60
90 print "何秒";
100 input sec
110 If sec<0 or sec>59 Then goto 90
112 If hour<10 Then chk1="0"+Str$(hour As Double) Else chk1=Str$(hour As Double)
115 If min<10 Then chk2="0"+Str$(min As Double) Else chk2=Str$(min As Double)
117 If sec<10 Then chk3="0"+Str$(sec As Double) Else chk3=Str$(sec As Double)
120 chk=chk1+":"+chk2+":"+chk3
130 print chk
140 print "この時刻でよろしいならyを、そうでなければnを入力してください。";
150 input chk4
160 If chk4="n" or chk4="N" Then goto 30
170 If chk4<>"y" and chk4<>"Y" Then goto 140
180 If chk<>Time$() Then goto 180
200 print "時間です。"
210 beep
改良するにはどうすればよいのでしょうか。GUIにしたいと思っているのですが、自分ではできません。どうすればよいのでしょう。


通報する
ページトップ
 記事の件名: 補足
投稿記事Posted: 2006年3月21日(火) 17:20 
オフライン

登録日時: 2006年3月09日(木) 17:09
記事: 24
このソフトの肝は、時刻の設定形式です。
時・分・秒ともに1桁の場合は常に10の位に0が補われる。…(イ)
例1.11時14分27秒→11:14:27
例2.11時14分3秒→11:14:03
例3.11時9分16秒→11:09:16
例4.11時9分7秒→11:09:07
例5.8時16分19秒→08:16:19
例6.8時16分3秒→08:16:03
例7.8時9分19秒→08:09:19
例8.8時9分3秒→08:09:03

50行・80行・110行がないと無限ループに陥るおそれがあります。
なぜならここで入力値のチェックを行っているからです。
112行から117行までは(イ)に従ったフォーマットに変形する手順です。
無効な入力のチェックは150行での入力でも必要でそれが
160行・170行です。あとは180行で時間がくるまで待たせるだけです。
時間がきたら190行・200行が実行されておしまいというわけです。


通報する
ページトップ
 記事の件名: 170行目
投稿記事Posted: 2006年3月28日(火) 12:43 
オフライン

登録日時: 2005年7月25日(月) 13:27
記事: 893
お住まい: 埼玉県東松山市
180行目前後において、後何秒であるかを出力し続ける機能を追加してみました。
コード:
'差分
16 Dim Time As String
17 Dim st As SYSTEMTIME
18 Dim Remainder$ As String
19 Dim Remainder As Long

171 If Time=Time$() Then goto 171
172 GetLocalTime(st)
173 Remainder=((hour-st.wHour)*3600+(min-st.wMinute)*60+(sec-st.wSecond)+24*3600) Mod (24*3600)
174 Remainder$=Str$(Int(Remainder/3600))+"時間"+Str$(Int(Remainder/60) Mod 60)+"分"+Str$(Remainder Mod 60)+"秒"
175 Locate 0,5
176 Print Remainder$+"  "

'書き換え
180 If chk<>Time$() Then goto 171

'差分
181 Locate 0,5
182 Print "0時間0分0秒     "
しかし行番号が久しいですね。

_________________
Website→http://web1.nazca.co.jp/himajinn13sei/top.html
ここ以外の場所では「暇人13世」というHNを主として使用。

に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。


通報する
ページトップ
 記事の件名: GUI化
投稿記事Posted: 2006年3月28日(火) 13:57 
オフライン

登録日時: 2005年7月25日(月) 13:27
記事: 893
お住まい: 埼玉県東松山市
暇だったのでGUI化もしてみました。
アラームとタイマーの書き分けができずにプロジェクト名がおかしくなってますがご愛嬌^^
http://web1.nazca.co.jp/himajinn13sei/BasicTimer.zip
(最終更新:2006年3月28日14時20分)

内部のコードで分からない所があったら説明しますので気楽にソースコードを読み進めてください。そして自分のものにしてください。

_________________
Website→http://web1.nazca.co.jp/himajinn13sei/top.html
ここ以外の場所では「暇人13世」というHNを主として使用。

に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。


通報する
ページトップ
投稿記事Posted: 2006年3月30日(木) 17:52 
オフライン

登録日時: 2006年3月09日(木) 17:09
記事: 24
ありがとうございました。ダウンロードしましたので後でゆっくり研究します。そういえば、ホームページから見るとリンクから孤立しているようですが何か理由でもあるのでしょうか。


通報する
ページトップ
 記事の件名:
投稿記事Posted: 2006年3月30日(木) 18:43 
オフライン

登録日時: 2005年7月25日(月) 13:27
記事: 893
お住まい: 埼玉県東松山市
さすがに、人の作ったものを改良して発表するような真似はできませんよ。
作るなら関数を全て調べ上げて、コピーによる転載をせずに0から手打ちで打つほうが個人的にしっくり来るソフトが作れるのでね。
関数の使い方も頭に入るし。

_________________
Website→http://web1.nazca.co.jp/himajinn13sei/top.html
ここ以外の場所では「暇人13世」というHNを主として使用。

に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。


通報する
ページトップ
期間内表示:  ソート  
新しいトピックを投稿する  トピックへ返信する  [ 6 件の記事 ] 

全ての表示時間は UTC+09:00 です


オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[13人]


トピック投稿:  可
返信投稿:  可
記事編集: 不可
記事削除: 不可
ファイル添付: 不可

検索:
ページ移動:  
Powered by phpBB® Forum Software © phpBB Limited
Japanese translation principally by ocean