回答編集履歴

3

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

2018/11/09 15:10

投稿

kamikazelight
kamikazelight

スコア305

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

2

間違い分の追記

2018/11/09 15:10

投稿

kamikazelight
kamikazelight

スコア305

test CHANGED
@@ -10,15 +10,19 @@
10
10
 
11
11
  ```vba
12
12
 
13
- Sub Sample1()
13
+ Sub Sample2()
14
14
 
15
15
  Dim buf As String
16
16
 
17
17
  Open "C:\Sample\Data.txt" For Input As #1
18
18
 
19
- Line Input #1, buf
19
+ Do Until EOF(1)
20
20
 
21
+ Line Input #1, buf
22
+
21
- MsgBox buf
23
+ msgbox buf
24
+
25
+ Loop
22
26
 
23
27
  Close #1
24
28
 

1

脱字修正

2018/11/09 12:23

投稿

kamikazelight
kamikazelight

スコア305

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