2012-04-11 3 views
0

Я новичок в vb.net. У меня большой опыт использования vb 6. Я хочу знать, как заменить объект файловой системы. В частности, я хочу использовать массивы textstream. Как написать следующее в vb.netЗапись в несколько открытых текстовых потоков

Для простоты я исхожу с предположениями, что у меня есть текстовый файл длиной 1 байт и всего лишь повторяющийся ряд из # от 0 до 9. I хотите любую запись, которая имеет 1, чтобы перейти к tsout (1), 2 в tsout (2) ЭСТ ...

dim fso as new filesystemobject, tsIN as textstream, tsOut(10) as textstream 
dim lineIN, i 
set tsin = fso.opentextfile("C:\input.txt",forreading,false) 
for i = 1 to 10 
set tsout(i) = fso.createtextfile("C:\output" & i & ".txt",true) 
next 
do while not tsin.atendofstream 
linein = mid(tsin.readline,1,1) 
tsout(linein).writeline(linein) 
loop 
for i = 1 to 10 
tsout(i).close 
next 
tsin.close 

ответ

0

Использование System.IO.StreamWriter s и s System.IO.StreamReader:

Using in As New StreamReader("C:\input.txt") 
    Dim out(9) As StreamWriter 

    For i As Integer = 0 To 9 
     out(i) = New StreamWriter("C:\output" & i & ".txt") 
    Next 

    While in.Position < in.Length 
     Dim l As Integer = Integer.Parse(in.ReadLine().Substring(1, 1)) 

     out(l).WriteLine(l.ToString()) 
    End while 

    For i As Integer = 0 To 9 
     out(i).Close() 
     out(i).Dispose() 
    Next 
End Using 

Примечание: Это предполагает Imports System.IO в начале вашего файла или по всему проекту.

+0

Это то, что я искал, большое спасибо, я попросил нескольких других людей, с которыми я работал, и все они должны были знать vb.net, и никто из них не имел понятия о том, как это сделать в 6, .net или любой другой язык. ваша помощь больше всего ценится –

+0

Нет проблем! Вы можете проверить это как правильный ответ, пожалуйста? – Ryan