- Как вы собираетесь читать из файла?
- Если вы делаете File.ReadAllLines , что он возвращает? Строковый массив.
- Имеет ли массив строк такие свойства, как
line1
? Нет, но у них есть индексы.
- Как вы получаете доступ к элементу в массив строк? С индексом , например.
array(0)
.
- Имеет ли строка такие свойства, как
field1
? Нет.
- Можете ли вы использовать String.Split для разделения на запятые и разделения полей? Да.
- Не могли бы вы написать класс, который имеет определенные свойства, определенные для каждого поля, которое имеет конструктор, который возьмет строку, представляющую строку, и поместит значение в правильные поля? Да.
- Может ли тот же класс знать, как преобразовать себя в одну строку стиля CSV? Yup.
- Есть ли другая библиотека, которая могла бы вам помочь? Возможно.
Все, что было сказано, вы, вероятно, может уйти с делать что-то простое, как это (предупреждение: наивным код образца):
Dim fileName = "C:\testFile.csv"
Dim lines = File.ReadAllLines(fileName)
Dim output As New List(Of String)
For Each line In lines
Dim fields = line.Split(","c)
fields(0) = "000" 'Blank out number
If fields(3) = "Y" Then 'Change Y to True
fields(3) = "True"
End If
output.Add(String.Join(","c, fields))
Next
File.WriteAllLines(fileName, output)
Я дал ему вход, выглядел так:
123,abc,Y,Y,N
456,def,Y,N,Y
789,ghi,N,Y,Y
012,jkl,N,N,N
, и это изменило файл следующим образом:
000,abc,Y,True,N
000,def,Y,N,Y
000,ghi,N,True,Y
000,jkl,N,N,N
утилиты для работы с CSV будет делать работу лучше, чем это. Существуют различные способы, по которым это не сработает (не обрабатывает никаких управляющих последовательностей и т. Д.).), но этого может быть достаточно, если вы просто хотите сделать что-то быстро и грязно и не нужно беспокоиться о некоторых вещах. По крайней мере, надеюсь, это даст вам лучшее представление о том, как вы решили решить такую проблему.
Я бы рекомендовал записать вывод в другой файл для проверки.
Просто используйте CSV-библиотеку, такую как [FileHelpers] (http://filehelpers.sourceforge.net/). – sloth
@sloth Ваша ссылка на Filehelpers дал 503 ошибку. – Mych
посмотрим, спасибо! – JustAnAverageSQLuser