|
まんじゅう さん、こんばんわ。
>グループ別(先頭1,2,8データ)の分離した各データの末尾に
>先頭9のデータをつけることは可能でしょうか
最後のレコードを追加したいということですか?
配列に入れて処理する方法も考えましたが、一旦書き出したファイルに1行追加する方法でいきます。
Sub test()
Dim s1 As String, flg As Boolean, II As Long, NN As Long, LL As Long
Dim Ifile As String, Ofile As String
Ifile = "C:\D\InputData.TXT"'読みこむファイル
Ofile = "C:\D\out___.txt" '書き出すファイル ___ 部に3ケタの数字が入る
flg = False
'
Open Ifile For Input As #1
Do Until EOF(1)
Line Input #1, s1
'9だったらループから出る
If Left(s1, 1) = "9" Then Exit Do
'ファイルを開いていなければFile Open
If flg = False Then GoSub OutOp
Print #2, s1
'8を書きこんだらFile Close
If Left(s1, 1) = "8" Then GoSub OutCl
Loop
Close #1
'念のため、開きっぱなしのファイルがないかチェック
If flg = True Then GoSub OutCl
'
'最終行の追加(9じゃない時を考慮して分岐を入れました)
If Left(s1, 1) = "9" Then
For II = 1 To NN
'追加モードで開き、書き込みます
Open Replace(Ofile, "___", Format(II, "000")) For Append As #2
Print #2, s1
Close #2
Next
End If
'メイン終了
Exit Sub
'書き出すファイルを開くサブルーチンです
OutOp:
NN = NN + 1
Open Replace(Ofile, "___", Format(NN, "000")) For Output As #2
flg = True
Return
'書き出すファイル閉じるサブルーチンです
OutCl:
Close #2
flg = False
Return
End Sub
こんな感じです。
ファイル名の部分もちょっと変えました。
|
|