A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
vb2005に限らず.netは浅い知識(触っているが仕事と言うわけではない)なんですが・・・
お手軽にやるなら、全部読み込んで、crlfとtabで分解してあげる。
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim sr As New System.IO.StreamReader("C:\test.txt")
Dim line() As String = Split(sr.ReadToEnd(), vbCrLf) 'line()に改行区切りで読み込み
For row As Integer = 0 To UBound(line)
Dim field() As String = Split(line(row), vbTab) 'field()にタブ区切りで読み込み
'以下field(col)で各種処理
For col As Integer = 0 To UBound(field)
Debug.Print(row & "-" & col & "=" & field(col))
Next
Next
sr.Close()
sr = Nothing
End Sub
End Class
というのはどうでしょう?
Dim sr As New System.IO.StreamReader("C:\test.txt", System.Text.Encoding.GetEncoding("Shift_JIS"))
とかすると、いろんなコードが読めます。
でもせっかくvb2005ならTextFieldParserなんかはどうでしょう?
それと、vb2005から使えるUsingも2005以前のvbユーザはもちろん、vb6系からの人は助かるかも・・・
Imports Microsoft.VisualBasic.FileIO 'TextFieldParser使う時は必要
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Using parser As New TextFieldParser("c:\test.txt")
parser.TextFieldType = FieldType.Delimited 'フィールド区切りあり
parser.SetDelimiters(vbTab) 'フィールド区切りはタブ
Dim row As Integer = 0
Do While Not parser.EndOfData
Dim field As String() = parser.ReadFields() ' 1行読み込み
'以下field(col)で各種処理
For col As Integer = 0 To UBound(field)
Debug.Print(row & "-" & col & "=" & field(col))
Next
row = row + 1
Loop
End Using
End Sub
End Class
というのはどうでしょう?
これを使うメリットは、"aaa"とか"abc[tab]def"とか、""を"に変換するとかをしてくれます。
(場合によっては余計なお世話と言う事もありますが・・・)
ちなみに、
Dim parser As New TextFieldParser("text.csv", System.Text.Encoding.GetEncoding("Shift_JIS"))
とかすると、いろんなコードが読めます。
using~end usingは、今まで new (dim new や set ??=new)で宣言した場合、最後にdispose(close)してあげないといけなかったのが、不要になるそうです。
特にエラー処理なんかがある場合に便利そうです。
vb6やvbaからの人は、忘れがちなdispose(close)の心配がなくなりそうです。
最初の
Dim sr As New System.IO.StreamReader("C:\test.txt")
も
using sr As New System.IO.StreamReader("C:\test.txt")
にして、
sr.Close()
sr = Nothing
を
end using
にできます。
以前からですが、.net系になってからの変数の宣言と初期化が一緒にできるのもありがたかった・・・
p.s.
浅い知識なので、間違っていたら、誰か指摘してください。
独り言
csvは Comma Separated Valuesのことだから、tab区切りの場合は「tab区切りのテキストファイル」の方が・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) CSVファイルがカンマ区切りにならない。対処法を教えていただきたいです。 仕事でSMS一斉送信ができ 2 2022/07/01 21:24
- Excel(エクセル) Excel Powerクエリーの質問、行数指定は可能でしょうか? 2 2022/08/22 12:54
- Excel(エクセル) PowerQueryに詳しい方教えてください(Office365) 1 2022/07/24 21:11
- Excel(エクセル) Excelについて教えてください。 帳票データがあります。 アクセスに取り込むため、 データ形式にし 1 2022/06/08 19:59
- Visual Basic(VBA) マクロを教えてください。 7 2023/06/01 19:47
- その他(プログラミング・Web制作) データ解析ソフトRでのファイル入力read.csvがエラーになります 7 2022/03/27 22:11
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Excel(エクセル) VBA エラーの件 4 2022/10/10 19:14
- その他(プログラミング・Web制作) Sikulix2.0.5(Jython2.7.3)でcsvを読込WEB検索条件にpasteで文字化け 1 2023/03/31 11:02
- Visual Basic(VBA) VBA 毎日取得するデータを順番に反映していく方法 6 2023/08/26 16:22
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CSVファイルの中で、「 , 」カ...
-
エクセルで数値を全角文字(カ...
-
カンマ区切りの数字をCSVフ...
-
EXCELからCSVにすると余計なカ...
-
マクロを使ってフォルダー内に...
-
openoffice calcで#DIV/0! の...
-
WORDで改ページすると時々グレ...
-
EXCELの文字が指数になる
-
C#で、テキストボックスの入力...
-
[VBA][Excel]クリップボードか...
-
区切り文字をTABにしたい
-
VBAでtxtファイルを読み込む際...
-
Excel 住所の分割(文字数制限...
-
VB2005のTextBoxでカン...
-
CSVの定義
-
文字の網掛け設定後段区切りを...
-
カンマ区切り
-
テキストファイル内の「誤改行...
-
コンピュータの書籍の文の句点...
-
何故、日本は未だに数字を3桁...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CSVファイルの中で、「 , 」カ...
-
何故、日本は未だに数字を3桁...
-
エクセルで数値を全角文字(カ...
-
EXCELからCSVにすると余計なカ...
-
マクロを使ってフォルダー内に...
-
カンマ区切りの数字をCSVフ...
-
桁区切りについて
-
CSVの定義
-
WORDで改ページすると時々グレ...
-
[VBA][Excel]クリップボードか...
-
データにカンマが入ったCSVデー...
-
カンマ区切り
-
3桁ごと?4桁ごと?コンマの...
-
VB2005のTextBoxでカン...
-
openoffice calcで#DIV/0! の...
-
ひとつの命令を複数行に記述
-
JPY ¥1,500.00は日本円でお幾ら?
-
パス区切りの文字について
-
VBAでtxtファイルを読み込む際...
-
C#で、テキストボックスの入力...
おすすめ情報