• ベストアンサー

VB 配列の内容をファイルに書き込む

VB2008を使用しています。 stg_bitという配列に一文字ずつ「abc・・・」 のように入っているものを、テキストファイルに出力したいのですが・・・ stg_bitという配列の内容をファイルに書き込みたいのですが、 うまくいきません。 ご教授お願いします!! Dim i As Integer Dim stg_str As String Dim Writer As New IO.StreamWriter("C:sample.txt") Writer.WriteLine(stg_bit) Writer.Close()

質問者が選んだベストアンサー

  • ベストアンサー
  • mindatg
  • ベストアンサー率48% (110/227)
回答No.3

>「abc...」と改行せずに書き込む方法はどうすればよろしいでしょうか? 出力する前に改行を取り除く strBuff = strBuff.Replace(vbCrLf, "") また、配列の順番どおり出力するならFor Eachより、Forで指定した方がいいかもしれない。 For i As Integer = 0 To stg_bit.Length  strBuff += stg_bit(i).Replace(vbCrLf, "") Next i Writer.WriteLine(strBuff)

sakyyy
質問者

お礼

なるほど! 置換を利用して改行を取り除くんですね!! 改行せずに書き込むことができました。 ありがとうございました!

その他の回答 (2)

  • baq777
  • ベストアンサー率28% (20/71)
回答No.2

WriteLineの引数にString配列のオーバーロードはないはずです。 #1の方が書かれたソースのように、ループで回して String型で一個ずつ取り出しながら書く必要があります。

sakyyy
質問者

補足

ありがとうございます。 string型で取り出しながら書いていかないといけないのですね!! 試してみます。

  • mindatg
  • ベストアンサー率48% (110/227)
回答No.1

For Each strBuff as String In stg_bit  Writer.WriteLine(strBuff) Next strBuff Wiriter.Close()

sakyyy
質問者

補足

ありがとうございます。 Dim Writer As New IO.StreamWriter("C:\sample.txt") For Each strBuff As String In stg_bit Writer.WriteLine(strBuff) Next strBuff Writer.Close() としたら、テキストファイルに書き込むことができました!! でも、改行が入っているので、テキストファイルの中身が a b c となってしまうのですが 「abc...」と改行せずに書き込む方法はどうすればよろしいでしょうか?

関連するQ&A

  • ファイルの作成からその使用に際して

    VB2008Expressでプログラミング中です。 早速ですが、この度ボタンを押すと3種の.txtファイルを作成し、ある文字列をそこに保存する、といったプログラムが必要になったのですが不具合がでて困っています。 sub createfile() IO.file.create("d:\1.txt") IO.file.create("d:\2.txt") IO.file.create("d:\3.txt") end sub private sub button_click()handles button1.click call createfile() Dim Writer As New IO.StreamWriter("d:\1.txt") Writer.WriteLine(Richtextbox1.Text) Writer.Close() Dim Writer As New IO.StreamWriter("d:\2.txt") Writer.WriteLine(Richtextbox2.Text) Writer.Close() Dim Writer As New IO.StreamWriter("d:\3.txt") Writer.WriteLine(Richtextbox3.Text) Writer.Close() end sub といった感じでファイルを作成したらそこにテキストを保存するようにしたいのですが、「ファイルが使用中でアクセスできません」とエラーになります。 いろんなサイトで勉強してみたのですが、いまいち理由がわかりません。どなたか教えていただける方はいませんでしょうか?

  • 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() どなたか、教えていただけませんでしょうか?

  • ファイルに追記していくには?

    お世話になります。 vb2005を使用しております。 Dim Writer As New IO.StreamWriter("C:\VTest.txt") Writer.WriteLine(TextBox1.Text) Writer.Close() for loopでまわすたびにtextbox1の内容がかわるというfor loopの中にこのようなコードを記述しているのですが、これだと追記できず上書きされてしまって困っています。追記する形にするにはどうすればよろしいでしょうか?教えてください。お願いします。

  • 重複データを書き込まないようにするには?(VB)

    VB(2010)初心者です。 ボタンクリックで、テキストボックスに入力したデータをテキストファイルに 追加書き込みしていますが、同じデータは書き込めないようにしたいです。 下記コードにどのような記述を付け加えたら良いのでしょうか。 Dim fsFile As System.IO.FileStream = System.IO.File.OpenWrite("C:\List.txt") Dim sw As System.IO.StreamWriter = New System.IO.StreamWriter(fsFile) sw.BaseStream.Seek(0, System.IO.SeekOrigin.End) sw.WriteLine(TextBox1.Text) sw.Flush() sw.Close() fsFile.Close()

  • VB.NET テキストファイルにデータを書き込み

    テキストファイル("c:\test.txt")に「かきくけこ」と全角5文字で1行のデータがあるとします。 このテキストファイルに「あいうえお」を先頭に追加で書き込みたいのですが、どうすればいいのでしょうか? あくまで「かきくけこ」を変数化せずファイルに直接、書き込む方法がある場合、教えてください。 'テキストファイルを開いたときの内容 あいうえお かきくけこ ちなみにですが、テキストファイル("c:\test.txt")に「かきくけこ」と全角5文字で1行のデータがあるとして、 末尾に「さしすせそ」を追加で書込みする方法は下記の通りでした。 'ファイルを書き込み用に開く、指定したファイルがない場合は作成する dim fsFile As System.IO.FileStream = _ System.IO.File.OpenWrite("c:\test.txt") 'StreamWriterオブジェクトを作成し、テキストデータが書き込めるようにする Dim sw As System.IO.StreamWriter = _ New System.IO.StreamWriter(fsFile) 'ファイルの末尾に移動する sw.BaseStream.Seek(0, System.IO.SeekOrigin.End) 'データを書き込む sw.WriteLine("さしすせそ") 'ファイルを更新する sw.Flush() 'ファイルを閉じる sw.Close() fsFile.Close() 'テキストファイルを開いたときの内容 かきくけこ さしすせそ

  • .NETで文字列のエンコードの仕方+ファイル操作

    .NETで文字列のエンコードの仕方が知りたいです。 あと、ファイル操作についてわかりやすいホームページを探しています。 '指定したファイルに文字列を追加します Dim filename as String = "test.txt" Dim data as string = "美味ソ溝" System.IO.File.AppendAllText(filename, data, System.Text.Encoding.GetEncoding("euc-jp")) 'これと同じことを以下のStreamWriterでしたいのですが、文字のエンコードの方法がわかりません。どのようにすればうまくいきますか。 Dim filename as String = "test.txt" Dim data as string = "美味ソ溝" Dim fs As System.IO.FileStream = System.IO.File.OpenWrite(filename) Dim sw As System.IO.StreamWriter = New System.IO.StreamWriter(fs) sw.BaseStream.Seek(0, System.IO.SeekOrigin.End) '書き込む前にエンコード?? sw.WriteLine(data) sw.Flush() sw.Close() fs.Close()

  • ASP.NETでStreamWriterクラスを使ってファイルに書き込む時にアクセスエラーが出ます

    ASP.NETでStreamWriterクラスを使い、abc.txt(中身は空です)に書き込みをしたいと思っていますが、Page_Loadイベントハンドラを使っても、ボタンClickイベントハンドラを使っても、ファイルにアクセスするときにエラーが出てしまいます。 ブラウザのエラーは以下の通りです。 '/kensyu' アプリケーションでサーバー エラーが発生しました。 パス "C:\abc.txt" へのアクセスが拒否されました。 また、イベントハンドラ内のコードは以下の通りです。 Dim sw As New System.IO.StreamWriter("C:\abc.txt") sw.WriteLine("Hello") sw.WriteLine("World") sw.Close() エラー内容を読む限りではabc.txtのプロパティにユーザを追加しろ、とあるように読めるのですが、追加ができません・・・ネットでも調べてみましたがわかりませんでした。解決方法をご存知の方がいらっしゃいましたら、どうぞよろしくお願いいたします。

  • VB 配列

    今,VBでテキストファイルを読込み配列に入れるという作業を書いたのですが,うまくいきません. 初回例外が発生してしまいます.配列は文字列の配列になります. どなたかご教示のほどよろしくお願いいたします. 'ファイルの読込み Dim path1 As String = "C:\Users\aleph_H.S\Desktop\気象台データインポートツール\気象台データインポートツール\" Dim path2 As String = "気象台データリスト.txt" Dim Mypath As String = path1 + path2 ' StreamReader の新しいインスタンスを生成する Dim cReader As New System.IO.StreamReader(Mypath, System.Text.Encoding.Default) ' 読み込んだ結果をすべて格納するための変数を宣言する Dim stResult As String = String.Empty Dim matrix(,) As String Dim ic As Long = 0 Dim icc As Long = 0 ReDim Preserve matrix(80, 3) ' 読み込みできる文字がなくなるまで繰り返す While (cReader.Peek() >= 0) ' ファイルを 1 行ずつ読み込む Dim stBuffer As String = cReader.ReadLine() ' 読み込んだものを追加で格納する stResult &= stBuffer & System.Environment.NewLine ic = ic + 1 'カンマ区切りで分割して配列に格納する Dim stArrayData As String() = stResult.Split(","c) For Each sstData In stArrayData icc = icc + 1 '文字列をInteger型に変換 matrix(ic - 1, icc - 1) = sstData Next End While cReader.Close()

  • ファイルを読み込み各行の両端にダブルクオーテーションをつけて保存するには?

    お世話になります。 テキストファイルを読み込みファイルの各行の両端に"をつけたいのです。たとえば、 今日は友人と焼肉を食べに行った。 雨の中、外を歩くのはつらかったが、 久々に会える友達のため東京まででかけた。 という文があったとしてプログラムを通しての出力結果が "今日は友人と焼肉を食べに行った。" "雨の中、外を歩くのはつらかったが、" "久々に会える友達のため東京まででかけた。" というように出力されるようにしたいのです。 下記のコードを自分で考えてみましたが、テキストファイルに保存がうまくできませんでした。どうすればよろしいでしょうか? 教えてください。お願いします。 Dim Reader As New IO.StreamReader("C:\aa.txt") Do Until Reader.EndOfStream ListBox1.Items.Add(Chr(&H22) & Reader.ReadLine & Chr(&H22)) Loop Reader.Close() Dim dtmStart As DateTime = DateAdd(DateInterval.Second, 10, Now) Do While Now < dtmStart Application.DoEvents() Loop Dim Writer As New IO.StreamWriter("C:\bb.txt") Writer.WriteLine(ListBox1.Text) Writer.Close() End Sub

  • textファイルの内容の削除について(C#です)

    C#でプログラミングをしています。 WriteLineを使って、textに書き込みをしているのですが、最後いったんこのファイルに書き込んだ文字をすべて消去できるようにしたいんですが、どのように書けばいいですか? 例えば、 StreamWriter writer = new StreamWriter("E:\\sample\\sample.txt"); writer.WriteLine("りんご"); と書き込んで、最後に「りんご」という文字を全て消去できるようにしたいんです。初心者なので、あんまり分からないので教えて下さい(><)

専門家に質問してみよう