C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: カレンダー作成 VB2008


(過去ログ 109 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■64961 / inTopicNo.1)  カレンダー作成 VB2008
  
□投稿者/ nagi (5回)-(2013/01/25(Fri) 10:16:03)

分類:[VB.NET/VB2005 以降] 

VisualStudio2008/言語:VisualBasic

カレンダーを作るのはできたのですが登録ボタンを押して一時的に登録はされるものの
作ったプログラムを閉じて、また起動した際、登録したのは表示されません。
どのように記述(方法)したら登録したものを呼び出せるようになりますか?
ご回答お願いいたします。

-------------------------------------------------------------------------------------------
Public Class home

  Private Sub HizukeDisplay()
        Dim youbi As String = "日月火水木金土"
        '選択した日付(曜日)を表示
        txtHizuke.Text = MCalendar.SelectionStart & "("
        txtHizuke.Text = txtHizuke.Text & youbi.Substring(MCalendar.SelectionStart.DayOfWeek, 1)
        txtHizuke.Text = txtHizuke.Text & ")"
        ScheduleDataDisplay()

    End Sub
    Private Sub MCalendar_DateChanged(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DateRangeEventArgs) Handles MCalendar.DateChanged
        HizukeDisplay()    '日付表示

    End Sub

    Private Sub home_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'TODO: このコード行はデータを 'AJcanDBsystemDataSet.tbl_jikanwari' テーブルに読み込みます。必要に応じて移動、または削除をしてください。
        SData = "?12008/12/01?2今日の予定123?3?12008/12/02?2今日の予定abc?3?12008/12/03?2今日の予定xyz?3?12008/12/04?2今日の予定***?3"
        HizukeDisplay()
    End Sub
    Private Sub ScheduleDataDisplay()
        Dim hizuke As String, pt(3) As Integer
        hizuke = "?1" & txtHizuke.Text.Substring(0, 10)    '検索する日付データ
        pt(1) = SData.IndexOf(hizuke)    '日付検索
        If pt(1) = -1 Then
            txtMemo.Text = "なし"
            Exit Sub
        End If
        pt(2) = SData.IndexOf("?2", pt(1))    'データ検索
        pt(3) = SData.IndexOf("?3", pt(2))    '終端(終わり)検索
        txtMemo.Text = SData.Substring(pt(2) + 2, pt(3) - pt(2) - 2)    '表示
    End Sub

    Private Sub TorokuButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)       Handles TorokuButton.Click
        Dim work(2) As String
        Dim hizuke As String, pt(3) As Integer
        hizuke = "?1" & txtHizuke.Text.Substring(0, 10)    '検索する日付データ
        pt(1) = SData.IndexOf(hizuke)    '日付検索
        If pt(1) <> -1 Then
            pt(2) = SData.IndexOf("?2", pt(1))    'データ検索
            pt(3) = SData.IndexOf("?3", pt(2))    '終端(終わり)検索
            work(1) = SData.Substring(0, pt(1))   '前半部取り出し
            work(2) = SData.Substring(pt(3) + 2)  '後半部取り出し
            SData = work(1) & work(2)
        End If
        'データの追加登録
        SData = SData & hizuke
        SData = SData & "?2" & txtMemo.Text & "?3"
    End Sub
End class

-------------------------------------------------------------------------------------------

引用返信 編集キー/
■64964 / inTopicNo.2)  Re[1]: カレンダー作成 VB2008
□投稿者/ 魔界の仮面弁士 (128回)-(2013/01/25(Fri) 11:14:04)
No64961 (nagi さん) に返信
> カレンダーを作るのはできたのですが
特殊文字のエスケープ処理が考慮されていないので、例えばメモ欄に
 「メモ欄に?3と書いたら?」
などのデータが入力されたると、データが崩れてしまいます。


> 作ったプログラムを閉じて、また起動した際、登録したのは表示されません。
終了時あるいはボタン押下時に、どこかにデータを保存しておき、
起動時には、そのデータを読み取るという仕組みが必要かと。

保存先はどこでも構いません。
データベース上でもレジストリ上でもクラウド上でも、好きな所を利用してみてください。
(今回の場合は、AJcanDBsystem 上の tbl_jikanwari を想定していたのでしょうか)


> どのように記述(方法)したら登録したものを呼び出せるようになりますか?
変数 SData というのは、String 変数でしょうか?

だとしたら、たとえばこんな手法は如何でしょう。


 (1) ソリューション エクスプローラーの「My Project」を開く。

 (2) [設定]タブに、名前=SData, 型=String, スコープ=ユーザー という行を
  追加して、下記の値を設定しておく。
「?12008/12/01?2今日の予定123?3?12008/12/02?2今日の予定abc?3?12008/12/03?2今日の予定xyz?3?12008/12/04?2今日の予定***?3」

 (3) フォーム Load イベントの、SData をセットしている行を消す(コメント化する)。

 (4) ScheduleDataDisplay メソッド内の一行目に、下記の行を挿入。

Dim SData As String = My.Settings.SData


 (5) 同様に、ボタンの Click イベントの一行目にも同じコードを挿入。

Dim SData As String = My.Settings.SData


 (6) ボタンの Click イベントの最後に、下記の記述を挿入。

My.Settings.SData = SData
My.Settings.Save()
引用返信 編集キー/
■65070 / inTopicNo.3)  Re[2]: カレンダー作成 VB2008
□投稿者/ nagi (6回)-(2013/02/01(Fri) 11:23:41)
2013/02/01(Fri) 11:42:51 編集(投稿者)
2013/02/01(Fri) 11:42:47 編集(投稿者)

回答ありがとうございます。
教えていただいたことを活用してがんばります
ありがとうございましたm(__)m
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -