![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
3回目の質問です! お願いします。
まったく分からないところから、個人的な練習としての”足し算で答えが出させる”ところまで理解出来ました。
それで、次に進もうとしているのですが、上記の例題で入力して数字と答えが残っていく方法はデーターベースとかいうのを理解すれば良いのでしょうか?
また、その記録を利用して必要なものを・・例えば3回目の計算と10回目の計算ではどちらが大きいか?・・というプログラムもデーターベースを利用してそこからデーターを取り出して必要な計算をさせるプログラムを作るということで良いのでしょうか?
初めてからまだ3回目の質問ということで、質問内容も素人内容だとは思いますが、貧乏でVB2008の本まで買う余裕がないので・・すみませんが誰かお付き合いして頂けませんでしょうか^^
No.4ベストアンサー
- 回答日時:
> 私には無理です 分かりませんでした・・
参考に書いたのは,MSDNという,Microsoftの一次情報源 (正確には日本語版なので英語版を一次情報とする二次情報源ですが) のURLでした。
最初の頃はわからないとは思いますが,MSDNの読み方がわかると宝の山になります。
> 残すだけではなく、質問にも書いたのですがそれを再度利用するようにしてみたいのです。
再度利用するというのは,プログラムを一度終了した後にもう一度起動した場合にも,元のデータを残したいということでしょうか。
これを実装するのは,結構手間のかかることです。
一番簡単な方法は,
・保持したい情報をシリアライズ可能なオブジェクトに保持させて,起動時にファイルからデシリアライズして終了時にファイルにシリアライズする。
ことなのですが,簡単に済ます代わりに.NET Frameworkに対する知識が必要になります。
このため,初心者の方にはまったくお勧めできません。
まずは,ファイルの入出力に慣れるところから始めるのがよいでしょう。
例えば,
Dim col As List(Of Integer) ' 過去の履歴を保持するためのオブジェクト。新規データはAddで追加していく。
があるとして,
・出力
' 出力ファイル名を決定する
Dim outputFile As String = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "data.txt")
Using writer As New StreamWriter(outputFile, False, Encoding.Default) ' 出力用のライタを作成する
For Each value As Integer In col ' 履歴に含まれる全ての値について...
writer.WriteLine(value) ' ライタに出力する
Next
writer.Close() ' 一応,ライタを閉じておく (End Usingで自動で閉じられるが)。
End Using
・入力
' 入力ファイル名を決定する
Dim inputFile As String = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "data.txt")
If File.Exists(inputFile) Then ' 入力ファイルが存在すれば
Using reader As New StreamReader(inputFile, Encoding.Default, true) ' 入力用のリーダを作成する
Do
Dim line As String = reader.ReadLine() ' リーダから一行読む
If line Is Nothing Then Exit Do ' 最後まで読んだのであればループから抜ける
Dim value As Integer = 0
If Integer.TryParse(line, value) Then col.Add(value) ' その行がIntegerの値を書き込んだ物であれば,履歴に追加する
Loop
End Using
End If
のようなコード (上記は未テストに付きバグがある可能性アリ) を作り,
・起動時に入力を行う
・終了時に出力を行う
とすれば,データを保存できます。
# どのように保存されたかは,マイドキュメント (WindowsXP) or ドキュメント (Windows Vista)にできる,data.txtを確認してください。
<MSDN>
・Path.Combine
http://msdn.microsoft.com/ja-jp/library/system.i …
・Environment.GetFolderPath
http://msdn.microsoft.com/ja-jp/library/system.e …
・Environment.SpecialFolder
http://msdn.microsoft.com/ja-jp/library/system.e …
・StreamWriter
http://msdn.microsoft.com/ja-jp/library/f5f5x7kt …
・Encoding.Default
http://msdn.microsoft.com/ja-jp/library/system.t …
・StreamWriter.Close
http://msdn.microsoft.com/ja-jp/library/system.i …
・File.Exists
http://msdn.microsoft.com/ja-jp/library/system.i …
・StreamReader
http://msdn.microsoft.com/ja-jp/library/akzyzwh9 …
・StreamReader.ReadLine
http://msdn.microsoft.com/ja-jp/library/system.i …
・Int32.TryParse
http://msdn.microsoft.com/ja-jp/library/f02979c7 …
・List(Of T).Add
http://msdn.microsoft.com/ja-jp/library/3wcytfd1 …
No.5
- 回答日時:
こんにちは、
>貧乏でVB2008の本まで買う余裕がないので・
本を買わなくとも、以下のホームページを読んで、理解でいれば
いろいろなことができる様になりますよ
http://homepage1.nifty.com/rucio/main/main.htm
基本的なことが、詳しく説明されているし、
サンプルも沢山あります。
No.3
- 回答日時:
#1です。
例えばExcelであれば結果をシートに書き出す事で、コードの実行を停止した後でも
それまでの値を引き出して利用する事は出来ます。
VBならテキストファイルに書き出すとかデータベースにするとか方法はありますが、
Excelで行なう方法よりもレベルが上がるかなと。
⇒Excelでも同様の事は出来ます。
データベース講座
http://homepage1.nifty.com/rucio/main/VBdotNet/D …
私も”やってみたい”と思い突き進んだ事もありますが、結局混乱したので
ちょこちょこ進めてVBAも初級レベルになったかな位です。
⇒昔Basic(X-BASIC)を少しいじっていたのが役だったとは思います。
No.2
- 回答日時:
答えを残すだけが目的であればデータベースは不要です。
List(Of Integer)にAddしていけば残すことができます (プログラムの終了までですが)。
参考URL:http://msdn.microsoft.com/ja-jp/library/6sh2ey19 …
リンク先に行ってみました!
私には無理です 分かりませんでした・・
#1さんも回答ありがとうございました
残すだけではなく、質問にも書いたのですがそれを再度利用するようにしてみたいのです。
No.1
- 回答日時:
今回のものに参考になるかはわかりませんが、
ボタンを1個用意する。
プロジェクト>参照の追加でCOMタブ。
Microsoft Scripting Runtime を追加する。
Private mydic As New Scripting.Dictionary
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim i As Integer
Dim j As Integer
i = mydic.Count
mydic(i + 1) = 10 * i
For j = 1 To mydic.Count
MsgBox(j & "番目の値は" & mydic(j))
Next
End Sub
とかでも実行中は値を保持していたりします。
⇒これが全てではなく、且つ正しいかは勉強不足ですけど。
VBAを少しやっているので何となくは出来た(?)位ですので、ご参考になるかどうか・・・
>初めてからまだ3回目の質問ということで、質問内容も素人内容だとは思いますが、貧乏でVB2008の本まで買う余裕がないので・・
他の方はわかりませんが、私は参考書から初めました。
まず基本部分は押さえておかないとなりませんし。
別段2008が最新と言っても2005から初めても宜しいんじゃないでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- YouTube Googleアカウント1個で複数のYouTubeチャンネルを作った場合、登録者数などは通算される? 4 2022/05/16 14:22
- C言語・C++・C# C言語 3 2022/10/04 15:07
- 高校 有効数字計算 確定した値を含む 2 2023/01/18 06:03
- その他(プログラミング・Web制作) python コードについて(初学者です) 3 2023/07/20 14:44
- 数学 時々、回答者の見識に疑念を抱いてしまうんです。私だって本当は皆様のことを疑いたくはありません。しかし 2 2022/11/27 12:23
- 数学 情報処理詳しい人!! A4縦のレポート文書に4:3の大きさの横向きの写真画像を貼り付けることにした。 2 2022/12/18 02:30
- 生物学 【生命科学】ヒトが1日に消費するATP量?(精度を変えて再計算) 3 2022/10/07 18:48
- メルカリ メルカリで古着販売、古物商許可証必要でしょうか。 3 2023/02/20 10:42
- 金融業・保険業 もうすぐ大学の金融論の試験なのですが問題が全然解けません...泣 どなたか分かる方いたら教えてもらえ 1 2023/07/21 22:03
- 情報処理技術者・Microsoft認定資格 応用情報処理技術者試験のシステム利用率の計算について 2 2022/03/28 07:43
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
二次元配列をクリップボードに...
-
C言語のプログラムが異常終了し...
-
Acccess レポートをグループ別...
-
C言語でBMP画像(ファイル)は...
-
MATLABのCSV形式での書き込みに...
-
C言語での印刷方法
-
シェルコマンドの 2>&1 とはど...
-
C言語の標準エラー出力について...
-
VB2008少し理解しました^^
-
マイクラでPythonのプログラミ...
-
C言語初心者の質問失礼します。
-
windows.hがincludeされない
-
実行時のエラー。動作環境の確保
-
[C#]このコードはもっと速くな...
-
winsock recvでの文字化け
-
バイナリエディタのつかいかた
-
シェルスクリプトで「HTMLのテ...
-
dataファイルをxtxファイルにす...
-
exeファイルをすぐに終了させな...
-
C++Builder 6のOpenDialogでフ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンド(例えばls)の出力結果...
-
VC++でUTF-8のファイルを出力し...
-
Acccess レポートをグループ別...
-
ファイル出力の場所を指定
-
ファイル形式またはファイル拡...
-
シェルコマンドの 2>&1 とはど...
-
Wordマクロで指定したフォルダ...
-
テキストファイルに改行コード...
-
fwprintf()について
-
外国語とCSVについて
-
二次元配列をクリップボードに...
-
ファイルの文字コードをUTF-8に...
-
csvファイルでの出力について
-
C言語での印刷方法
-
フォルダにあるPDF情報の抽出(VBA)
-
(VBA)書式が変更されてしまい...
-
C言語での縦方向のファイル出力...
-
CSVファイルを任意の場所に出力...
-
標準出力とファイルに効率的に...
-
CreateProcess関数と実行後の戻...
おすすめ情報