テキストファイルを読み込み、TAB区切りでtxtファイルに書き出す方法について
- 題名: テキストファイルを読み込み、TAB区切りでtxtファイルに書き出す方法について
- 著者: ice
- 日時: 2009/05/28 23:55:11
- ID: 24644
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: テキストファイルを読み込み、TAB区切りでtxtファイルに書き出す方法について
- 著者: 管理人
- URL: http://dobon.net/
- 日時: 2009/05/29 4:00:24
- ID: 24645
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: テキストファイルを読み込み、TAB区切りでtxtファイルに書き出す方法について
- 著者: ヴァン
- 日時: 2009/05/29 10:30:59
- ID: 24646
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[3]: テキストファイルを読み込み、TAB区切りでtxtファイルに書き出す方法について
- 著者: ice
- 日時: 2009/05/29 21:55:07
- ID: 24649
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[4]: テキストファイルを読み込み、TAB区切りでtxtファイルに書き出す方法について
- 著者: 管理人
- URL: http://dobon.net/
- 日時: 2009/05/30 2:23:50
- ID: 24650
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[5]: テキストファイルを読み込み、TAB区切りでtxtファイルに書き出す方法について
- 著者: ice
- 日時: 2009/05/31 21:23:35
- ID: 24652
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
2009/05/29(Fri) 00:00:09 編集(投稿者)
こんにちは。
初心者で申し訳ないです。
TAB区切りで区切られたテキストファイルを読み込み、決められた順番に別のファイルにTAB区切りで書き出すプログラムに挑戦してますが、うまく行きません。
どうかご指南の程をよろしくお願いします。
<読み込むファイル>
ファイル名:ABC.txt
ABC.txtの中身は以下のようになっています。
no 0002
name bbb
date yyy/mm/dd
・
no 0001
name aaa
date yyy/mm/dd
.
※ドットが切れ目を表してます。
※空白はTABで区切られています。
これを読み込み、mess_w.txtとして以下のように出力したいのです。
0001<TAB>aaa<TAB>yyy/mm/dd
0002<TAB>bbb<TAB>yyy/mm/dd
※<TAB>部分はTAB区切り部分を表します。
ところが、私が作ったプログラムを実行すると以下のように出力されてしまい困っています。
<TAB>0001<TAB><TAB><TAB>aaa<TAB><TAB>yyy/mm/dd
<TAB>0002<TAB><TAB>bbb<TAB><TAB>yyy/mm/dd
そこでこれを上記の正しい形に修正したいのですが、試行錯誤しても中々直りません。多分根本的な部分で間違えていると思いますが・・・具体的な修正項目としては以下のようになります。
・どうしても先頭にTABが入ってしまうのを無くしたい
・1行目は001の後にTABが3つある事と、aaaとyyy/mm/dd の間にはTABが2つ入っているのを1つにしたい
・001とaaaの間に2つTABが入ってしまうのを1つにしたい。
・2行目は002とbbbの間にTABが2つ入ってしまうのを1つにしたい。
・bbbとyyy/mm/ddの間にTABが2つ入ってしまうのを1つにしたい。
以下に私が書いたコードを示します。
どうにも初心者ですみませんが、どうかご教授下さい。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim No(500) As String
Dim No_fix(500) As String
Dim namae(500) As String
Dim namae_fix(500) As String
Dim dete(500) As String
Dim dete_fix(500) As String
Dim initial As String '項目名
Dim kijino As String
Dim namae_data As String
Dim dete_data As String
Dim txt_put As String
Dim txtline As String
Dim tab As Char
Dim i As Integer
Dim Encode As System.Text.Encoding
Encode = System.Text.Encoding.GetEncoding("Shift-JIS")
Dim abc_txt As New IO.StreamReader("C:\massage.txt", Encode)
Dim mess_W As New IO.StreamWriter("C:\mess_w.txt", False, Encode)
tab = vbTab
Do Until i = 500
'項目名の取得
txtline = abc_txt.ReadLine()
initial = Strings.Left(txtline, 2)
'NOの値取得
If initial = "no" Then
No(i) = Strings.Mid(txtline, 3, 10)
No_fix(i) = Trim(No(i))
kijino = No_fix(i)
End If
'nameの値取得
If initial = "na" Then
namae(i) = Strings.Mid(txtline, 5, 50)
namae_fix(i) = Trim(namae(i))
namae_data = namae_fix(i)
End If
'dateの値取得とファイル書き出し
If initial = "da" Then
dete(i) = Strings.Mid(txtline, 5, 50)
dete_fix(i) = Trim(dete(i))
dete_data = dete_fix(i)
txt_put = kijino + tab + namae_data + tab + dete_data
mess_W.Write(Trim(txt_put))
mess_W.Write(vbNewLine)
End If
i = i + 1
Loop
abc_txt.Close()
mess_W.Close()
MsgBox("処理完了")
End Sub
以上、よろしくお願いします。