• 締切済み

VB.NETで日記ソフトを作成したいのですが。

VB.NETでオリジナルな日記ソフトを作りたいと思っています。 日記の内容(日付と日記本文のみ)はテキストファイルで保存・読込で 済んでしまうような簡単な作りです。 お聞きしたいのですが,テキストデータを読み込むときに, どのようなクラスにデータを取り込むと, 日付をキーにした検索・削除・更新がし易い作りになるでしょうか? 私が調べた範囲なのですが, 二次元配列,ハッシュテーブルやDataTableクラスなど がありましたが,どのようにデータをプログラム内で 持っておけば良いのかが分かっていません。 SQL文は多少使えるのですが。。。 ご助言いただけませんでしょうか? よろしくお願いします。

みんなの回答

  • JeanneNet
  • ベストアンサー率48% (100/208)
回答No.1

こんにちは、じゃんぬねっと です。 まずはファイル設計から始めましょう。 そのテキスト ファイルにはどんな情報を詰め込み、 日にちによってファイルを分けるのか分けないのかなどです。 ちなみに私は、テキスト ファイルではなく、XML をお勧めしますよ。 修正や検索などもしやすいですからね。

ion12wat
質問者

お礼

ご指摘頂いたように,やはりファイル設計から必要ですね。 本当に簡単な物を作ろうと思っていましたので,設計はコーディングをしながら考えれば良いと思っていました。 お勧めのように,XMLを調べてみます。 ありがとうございました。

関連するQ&A

  • VB.NETで、配列をテーブルに変換する。

    VB.NETで、一次元配列string()にあるデータを、DataTableに変換 したいのですが、「型'String'の値を'System,Data,DataTable'に変換できません。」 と、エラーが発生してしまいます。 s1に、配列データが入っています。 Dim dt As DataTable Dim cnt As Integer Dim i As Integer dt = New DataTable count = s1.Length For i = 0 To cnt - 1 dt = CType(s1(i), DataTable) Next 解決方法が見つからず、行き詰っております。 宜しくお願い致します。

  • MySQLで日記を作成

    MySQLのDBに簡単な日記を保存したいのですが、 データのレコード方法のアドバイスをお願いします。 記録する項目は、日付、題名、本文としたときを想定します。 DBに既に8/1の日記、8/3の日記、という順にデータがレコードされているとします。 今、8/2の日記をレコードしようとします。 このときの考えられる記録の処理で、 1.DBの末尾に8/2のデータを記録する。  出力の際に、日付でソートする。 2.DBに既に登録してあるデータを日付でソートし、8/1、8/2、8/3の順で記録する。  出力はデータの順番通り。 どっちの方がスマートでしょうか。 アドバイス、お願いします。

    • ベストアンサー
    • MySQL
  • VB.NETのSQL文について

    質問失礼します。 VB、SQLともに勉強しはじめて日が浅い初心者ですが、どなたかお力をお貸しください。 データベースに登録しているデータをNPOIを使って、出力したいと考えています。 DataTableを使用して作りましたが、上手くできない部分があります。 テーブルのカラムは、社員番号、事務物販名、登録数、登録日、更新日のようなものが入っているイメージです。 登録日を検索して、全てのテーブルを抽出したいのですが、○月○日〜○月○日にデータを登録した人というときに、つまづいてしまいました。 SQL.Append("SELECT " ) ・ ・ SQL.Append("WHERE ") SQL.Append(" 登録日 BETWEEN パラメータ1 AND パラメータ2 ) のように、書いたところ問題なく、出力されました。 パラメーターの部分は、DateTimePickerコントロールを配置して、日付を入力した値を設定しています。 2023/1/1 と 2023/1/2と2つ入力して、この2日間のデータを出そうとしたところ、1/1の文しか出力されませんでした。 原因は、データベースに入っているのは、Date型で、YYYY/MM/DD HH:mm:SS形式でした。 1/2の0時以降は、該当データに含まれないということは分かっているのですが、それを含めてのSQLの書き方がわかりません。 単純にSQLを書くには、 BETWEEN 2023/1/1 AND 2023/1/2 23:59:59 で、2日の文を抽出されますが、VBに書く時がうまくできない状態で、 時間の部分を、結合すれば良いのかと思い、 SQL.Append("SELECT " ) ・ ・ SQL.Append("WHERE ") SQL.Append(" 登録日 BETWEEN パラメータ1 AND パラメータ2 II '23:59:59' ") と、DataTimePickerから持ってきた、パラメータの日付に時間を結合してみたところ、ダメでした。 型の問題なのか、よくわからず、勉強している状態です。 基礎がなっておらず、初歩的なミスかと思いますが、ご指導ください。 データベースはOracleを使用しています。

  • VB.netでのPerlのような配列操作

    VB.net 2003 を使用してカンマ区切りのテキストファイルから データを読み込み、ソートや検索や絞込みをしたいと思っています。 Perlで記述する場合、SortやGrepでかなり自由な配列操作ができましたが、VB.netではGrepにあたるものが見当たりません。 データは1件ごとに暗号化したいので、XMLを使うのは現実的ではないのかなと考えます。 CSVを読み込み、インデックス的な配列を作成し ソート結果などに応じてテキストファイルから必要なデータを読む という事を行ないたいのですが、何かよい方法はありませんか? そもそも配列を使うこと自体ナンセンスなのでしょうか?

  • VB6でやると構造体の配列になる変数をVB2008では何で作ればいいか

    VB6でプログラムを作っていたときは 値のセットが配列になるとき 構造体を動的配列で宣言してデータを足して作りました。 VB2008で開発をすることになり 同じようなことをしたいのですが もっと便利なやり方が登場したりするのでしょうか? クラスで挑戦したのですが動的配列はできないようでした。

  • VB2005 コントロール配列について教えていただけませんか?

    現在VB2005を用いてプログラムを行なっている初心者です。 ここのサイトでVB2005ではコントロール配列は使用できないことを知りました。そこで、例えばフォーム上にTextBoxを5個配置して、各TextBoxに入力された値を配列に格納するのにはどのようにすれば良いでしょうか? data(0) = textbox1.text data(1) = textbox2.textと一つずつやるしかないでしょうか・・・ For文などを用いて簡単にできる方法を教えてください。 よろしくお願い致します。

  • GridViewのデータソース

    VisualStudio2005で開発をしています。 ASP.NETでDBからデータを抽出し、そのデータを少し編集し、画面に表示とExcelにデータを出力しています。 Excelに出力をする関係上、データをDataTableで取得した後に、二次元配列に編集をしています。その配列に編集したデータをGridViewを使って表示させようかと思っています。 二次元配列の値を簡単にGirdViewのデータソースに設定することはできるのでしょうか? 二次元配列ではなくDataTableに編集してもよかったのですが、そうするとExcelに出力するのが行数分Loopさせなければならなくなるようなので・・・。 よろしくお願いします。

  • VBで配列の差分を取りたいのですが

    VB2005を使用しています。 エクセルに2つのシートには更新前と更新後のデータがあって、 それの差分を取るために一度2次元配列に確保してから処理を行い たいのですが、配列を入れ子にして順にループ、比較させると時間がかかりすぎてしまいます。 どうしたらよいのでしょうか?

  • DataTableの使い方についてアドバイス

    VB2008、SQLServer2008で開発しています。 フォームにリストボックス、ボタンを追加します。 リストにはテーブルから全データを表示します。 選択後、ボタンを押すと選択されたデータのコードを テーブルに書込みにいきます。 こういうものを作る場合、DataTableはフォームクラスでパブリックで作り 書込みで使うコードもDataTableから取得し フォームが終わるときに解放するのでしょうか? DataTableがオブジェクトとしてある間はDBにつなぎっぱなしでしょうか?

  • VB.NETで、配列をテーブルに変換して表示する。

    VB.NET初心者です 一次元配列string()に、下記データが格納されており、 そのデータを、ListBox1に表示したいのですが、 そのまま表示する方法が不明な為、DataTableに変換して から表示する方法で、実行しましたが、 syaintable = CType(syaindata_Obj(i), DataTable)の部分で、 「型 'System.String' のオブジェクトを型 'System.Data.DataTable' にキャストできません。」 というエラーが発生してしまいます。 列1 列2 列3 1 社員A 営業 2 社員B 総務 3 社員C 開発 4 社員D 開発 5 社員E 営業 6 社員F 営業 7 社員G 総務 8 社員H 営業 9 社員I  営業 10 社員J 開発 Dim syaindata As String() Dim syaindata_Obj As Object Dim syaintable As New DataTable Dim cnt As Integer Dim i As Integer i = 0 cnt = syaindata.Length syaindata_Obj = CObj(syaindata) For i = 0 To cnt - 1 syaintable = CType(syaindata_Obj(i), DataTable) Next ListBox1.DataSource = syaintable 以上、この方法以外でも良いので、リストボックスに表示 するようにしたいと思います。 宜しくお願い致します。

専門家に質問してみよう