質問するログイン新規登録

回答編集履歴

3

サンプルコードをvb.netに変更

2018/11/09 15:10

投稿

kmyzr
kmyzr

スコア305

answer CHANGED
@@ -2,19 +2,37 @@
2
2
  その一行をsplitを使い カンマで分割すれば簡単に
3
3
  ばらせます
4
4
 
5
+
5
6
  単純に一行づつ読み込むサンプルです
7
+ [引用ページ](http://jeanne.wankuma.com/tips/vb.net/stream/readline.html)
6
- ```vba
8
+ ```vb.net
7
- Sub Sample2()
9
+ ' StreamReader の新しいインスタンスを生成する
10
+ Dim cReader As New System.IO.StreamReader("C:\Hoge.txt", System.Text.Encoding.Default)
11
+
12
+ ' 読み込んだ結果をすべて格納するための変数を宣言する
8
- Dim buf As String
13
+ Dim stResult As String = String.Empty
14
+
15
+ ' 読み込みできる文字がなくなるまで繰り返す
16
+ While (cReader.Peek() >= 0)
17
+ ' ファイルを 1 行ずつ読み込む
18
+ Dim stBuffer As String = cReader.ReadLine()
19
+ ' 読み込んだものを追加で格納する
9
- Open "C:\Sample\Data.txt" For Input As #1
20
+ stResult &= stBuffer & System.Environment.NewLine
10
- Do Until EOF(1)
11
- Line Input #1, buf
12
- msgbox buf
13
- Loop
14
- Close #1
15
- End Sub
21
+ End While
22
+
23
+ ' cReader を閉じる (正しくは オブジェクトの破棄を保証する を参照)
24
+ cReader.Close()
25
+
26
+ ' 結果を表示する
27
+ MessageBox.Show(stResult)
16
28
  ```
17
29
 
18
30
  ただし値がダブルクォーテーションとかで
19
31
  囲まれていたり、各項目の列数が違う場合等は
20
- 一工夫必要ですが...
32
+ 一工夫必要ですが...
33
+
34
+ Vb.net自体は触ったことがないですが考えかたは使えると思うので...
35
+ `stResult &= stBuffer & System.Environment.NewLine `をやめて
36
+ `dim stSplit as String()`を宣言して
37
+ `stSplit = stBuffer.Split(","c)`として
38
+ 受け取った後に各要素を別の変数に割り振ればいいと思います。

2

間違い分の追記

2018/11/09 15:10

投稿

kmyzr
kmyzr

スコア305

answer CHANGED
@@ -4,11 +4,13 @@
4
4
 
5
5
  単純に一行づつ読み込むサンプルです
6
6
  ```vba
7
- Sub Sample1()
7
+ Sub Sample2()
8
8
  Dim buf As String
9
9
  Open "C:\Sample\Data.txt" For Input As #1
10
+ Do Until EOF(1)
10
- Line Input #1, buf
11
+ Line Input #1, buf
11
- MsgBox buf
12
+ msgbox buf
13
+ Loop
12
14
  Close #1
13
15
  End Sub
14
16
  ```

1

脱字修正

2018/11/09 12:23

投稿

kmyzr
kmyzr

スコア305

answer CHANGED
@@ -1,5 +1,5 @@
1
1
  一行づつ読み込んで
2
- その一行をsplitを使い カンマ分割すれば簡単に
2
+ その一行をsplitを使い カンマ分割すれば簡単に
3
3
  ばらせます
4
4
 
5
5
  単純に一行づつ読み込むサンプルです