• 締切済み

VB2005 テキストデータの保存、読出し

フォームの画面上にあるTextbox内の数値データを、.txt形式に保存したり、読み出してTextbox内に数値データを表示したいのですが、txt形式に保存するとデータが横に追加されてしまいます。1行保存したら次のデータは次の行に保存したいのですが、どうしたらできるのか分かりません。どなたか教えて頂きたいのですが。よろしくお願いします。

みんなの回答

  • HIROs-NET
  • ベストアンサー率78% (15/19)
回答No.1

私のサイトの http://hiro.wankuma.com/VBNET2005/File/File02.htm をご覧ください。 行単位での書き込みサンプルを示しています。 不明点ありましたら、再度ご質問ください。

shimakichi
質問者

お礼

HIROs-NET 様のサンプルを参照しながらコードを記述したらできました。本当にありがとうございました。

関連するQ&A

  • VBのテキスト書き込み読み出し

    VB初心者です。 VBのテキスト書き込み読み出しについて質問させていただきます。 ~使用オブジェクト~ textbox1 textbox2 button1 button2 現在下記の通りtextbox1とtextbox2に書いた文字(length 10まで)をbutton1 clickで C:\test.txtに書き出し、 button2 clickでtextbox1 と textbox2に戻すプログラムを書いてみました。 読み込みのところが現在は2個ですが、実用的には膨大な数にしたいと思っています。 単純に沢山書けばいいのでしょうが現実的ではないのでスッキリと書く書き方はないでしょうか? さらに、例としてtextbox1にAさんの名前textbox2にAさんの年齢をいれたとします。 その際、Bさん以降を登録したいのですがその場合テキストへの書き込みを次行に書き込み 次行を読み込むにはどのように書けばよろしいでしょうか? ご教授お願い致します。 Public Class Form1 '##################################################### '"C:\test.txt"へ書き込み '##################################################### Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click Dim write_data As New System.IO.StreamWriter("C:\test.txt", False, _ System.Text.Encoding.Default) Dim str As String Dim str1 As String str = String.Format("{0, -10}", TextBox1.Text) str1 = String.Format("{0, -10}", TextBox2.Text) write_data.Write(str & str1) write_data.Close() End Sub '##################################################### '"C:\test.txt"の読み込み '##################################################### Private Sub Button2_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button2.Click Dim Reader As New IO.StreamReader("C:\test.txt", System.Text.Encoding.GetEncoding("Shift-JIS")) While Reader.Peek() > -1 '10文字取得 Dim c(9) As Char Dim d(9) As Char Reader.ReadBlock(c, 0, c.Length) Reader.ReadBlock(d, 0, d.Length) TextBox1.Text = c TextBox2.Text = d End While Reader.Close() End Sub End Class

  • VB2008 txtファイル保存

    こんにちは、Vb2008を勉強しています。 デスクトップに保存している、TXTファイルに、 フォームで入力したデータを追加保存したいと思い、ネットで調べたり…で 入力しましたが、txtファイルを開いてみると文字化けしてしまします。 Dim writer As System.IO.FileStream = _ System.IO.File.OpenWrite("C:\Users\Desktop\顧客管理.txt") 'SystemWriterオブジェクトを作成し、テキストデータが書き込めるようにする Dim sw As System.IO.StreamWriter = New System.IO.StreamWriter(writer) 'ファイルの末尾に移動する sw.BaseStream.Seek(0, System.IO.SeekOrigin.End) 'データを書き込む sw.WriteLine(TextBox1.Text & "," & TextBox2.Text & "," & TextBox3.Text) 'ファイルを更新する sw.Flush() 'ファイルを閉じる sw.Close() writer.Close() 上記の方法で文字化けだったので、またまた、調べて入力しましたが 今度は、改行されず…単純な、データの追加のようになってしまっています。 私は、新しい行に追加できるようにしたいです。 下のコードは文字コードの指定をしたので、保存はできますが、 改行されません。 Dim FileName As String = "C:\Users\Desktop\確認.txt" Dim Writer As IO.StreamWriter Dim Encode As System.Text.Encoding '文字コードにShiftJISを指定。 Encode = System.Text.Encoding.GetEncoding("Shift-JIS") '既に存在するテキストに追加する場合は第2引数をTrueにする。 Writer = New IO.StreamWriter(FileName, True, Encode) Writer.Write(TextBox1.Text & "," & TextBox2.Text) Writer.Close() どなたか、教えていただけませんでしょうか?

  • VB6 テキストファイルへの保存方法

    みなさん教えてください。 いまVB6.0で、テキストボックス(textbox1)に入力するデータ(数値)を名前を指定するテキストファイルに内容を保存したいと考えています。 これをやろうと、下記のように構文を作成したのですが、何故かうまくいきません。 みなさんアドバイスを頂けないでしょうか。 宜しくお願いします。 Private Sub Command1_Click() Dim StrFN As String Dim sw As System.Io.StreamWriter 'テキストファイルを上書きで保存する StrFN = Application.GetSaveAsFilename("", "測定データ(*.txt),*.txt,全てのファイル(*.*),*.*", , "測定データファイル名指定") 'ダイアログ表示 If Dir(StrFN) <> "" Then If vbYes <> MsgBox("同名ファイルがあります。" & vbLf & _ "上書きしますか?", vbYesNo) Then Exit Sub End If End If sw = StrFN '書込み sw.Write (textbox1.Text) sw.Close () End Sub

  • textarea形式のフォームで複数行入力したテキストデータを保存すると、複数行のデータができてしまう現象を回避する方法

    「テキストファイルのデータを読み込み、html画面のフォームに表示させ、データを修正後、元のテキストファイルに書き戻す」というCGIを作成中です。 テキストファイルのデータの並びは決まっていて、例えば3番目のデータが「名前」4番目のデータが「住所」だったりします。 ここで、複数行の入力が必要なフィールドをが必要となり、"textarea"形式のフォームを設定したところ、複数行のインプットをすると、テキストファイルにも複数のデータができてしまいました。2行のデータをインプットすると、データも2行になってしまい、後のデータがずれてしまいます。 そこで「複数行のテキストデータを、改行マークをつけたまま、1行のデータとして保存し、読み込んでtextarea 形式のフォームに表示させるときは、改行されて表示する」という処理が実現できるよう、時間をかけて調べておりますが未だ判らない状態です。  ご存じの方がいらっしゃいましたら是非教えて頂きたく、宜しくお願いいたします。

    • ベストアンサー
    • CGI
  • データを追加するテキストの型

    MySQLを勉強し始めたばかりです。環境はWindows XpにWampServerを入れ、MySQL consoleを起動させています。 データベースにテーブルを作り、同じフォルダーに"data.txt"を入れてデータをテーブルに追加しました。 load data infile "data.txt" into table tablename; 初めはメモ帳で作り、data.txtで保存。上記の通り入力したらエラーが出ました。 次にwordにメモ帳で作った内容をコピーし、書式なしテキスト形式 data.txtで保存し、同じ文で実行したら成功しました。 全く同じ内容(タブも同じ位置)のテキスト形式(.txt)であっても作るソフトにより何か型が違うのでしょうか。2度目の方法で成功しましたが、何が違うのか理解したいので教えてください。

    • ベストアンサー
    • MySQL
  • VB.netでAccess操作

    タイトル通り、VB.netでAccessを操作するプログラムを作っています。 項目が、『番号』『氏名』『選択科目1』『選択科目2』 VBのフォーム上にAccessのファイルに登録されている全てのデータを取り出して二次元配列のように表示させます。 ボタンは編集、削除、行追加です。 編集 --- このボタンを押すとAccessに反映 削除 --- このボタンを押すとチェックボックスにチェックされた行が削除される 行追加 --- このボタンを押すと、表示されているデータの下に一行分、行が追加され、そこから入力できるようになる 私はtextboxを動的に配置して、textboxを二次元配列で処理できるようにプログラムを組んでみたのですが 何だか上手なプログラムが組めなくなってしまいまして困っているところです・・・。 仕様には、登録データ分だけの行数が表示されなくてはいけないと書いてあります。 つまり削除がある時点で、一行分を削除するためにはtextboxを消さなくてはいけなくなってしまいました。 (ex データが四件あるとして、その時点ではtextbox(0,0) ~ textbox(3,3)    ですが、一件削除するとtextbox(0,0)~textbox(2,3)になり  textbox(3,0)textbox(3,1)textbox(3,2)textbox(3,3)を削除しなければいけない) 非表示ではなく、textboxコントロール自体を削除したいのですが、そんな方法はあるのでしょうか? それともこのプログラムの組み方は間違った方法なのでしょうか? VB.net初心者のため、未だにどんなコントロールを使えばうまく処理できるのか分かっていないところがありますので、 どんな些細なことでもお気づきのことがありましたら、教えてください。 自分だったらこんな機能や処理をする!ということもお待ちしております。 宜しくお願いします。

  • VBを使い、テキストをする保存について

    VBで、あるデータを取得したテキストを保存する際に「テストyyyyMMdd.txt」と日付を保存名に入れて保存したいのですが、この場合の方法が解りません。ご教授お願いします。

  • ユーザーフォームのTextに数値を入れるとセルにエ

    ユーザーフォームTextboxに数値を入力して保存すると対象になるセルの左横に!がついてこのセルにある数値がテキスト形式かアポストロフィーで始まる・・・・と出ます。 そのセルを書式設定で数値にすれば直るのですがユーザーフォームをたちあげてもう一度保存をすると同じようになります。 セルに数値を入力しエラーにならないようにしたいのですが方法を教えて下さい。

  • VB2010 テキスト書き出し位置

    VisualBasic初心者です。 VB2010でフォームでフォームから複数のTextBoxに入力したものを Buttonクリックイベントでテキストファイルに書き込みを行おうと思っています。 その際、テキストファイルへの書き込み位置を指定したいと思っています。 TextBox1の内容はテキストファイルの1文字目から10文字目 TextBox2の内容は11文字目から20文字目という感じにしたいです。 現在下記のプログラムです。 どなたかご教授ください。 Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button2.Click Dim write_data As New System.IO.StreamWriter("C:\test.txt", False, _ System.Text.Encoding.Default) write_data.Write(Textbox1.text) write_data.Close() End Sub

  • VBで、テキストボックスを保存する方法

    VBで、テキストボックスを保存する方法 現在、VBでプログラムを書いていますが テキストボックスの中をテキスト形式で保存したいのです 保存したいのは、 textbox9です 現在、VBの(2010無料版をつかっています よろしくです

専門家に質問してみよう