У меня есть таблица Excel, которая преобразуется в CSV файл в С#, но у меня проблема с разрывами строк. Например:
"John","23","555-5555"
"Peter","24","555-5
555"
"Mary,"21","555-5555"
Когда я читаю CSV файл, если запись не начинается с двойной кавычки ("), тогда разрыв строки происходит по ошибке, и я должен удалить ее. У меня есть некоторые классы чтения CSV из Интернета, но я что они потерпят неудачу при разрыве линии.
Как я должен обрабатывать эти разрывы строк?
Спасибо всем за помощь.
heres - это то, что было сделано до сих пор, мои записи имеют фиксированный формат, и все начинаются с
JTW;...;....;...;
JTW;...;...;....
JTW;....;...;..
..;...;... (wrong record, line brak inserted)
JTW;...;...
поэтому я проверил ;
в позиции [3] каждой строки. если true, я пишу, если false ill append на последнем * удалении прерывания строки)
У меня возникают проблемы, потому что im сохраняет файл как txt.
Кстати, я конвертирую excell spreadshit в csv, сохраняя как csv в excell. но я не уверен, что клиент делает это.
Итак, файл как TXT идеален. ive проверил записи и итоги. Но теперь мне нужно преобразовать его обратно в csv, и мне бы очень хотелось сделать это в программе. Кто-нибудь знает, как это сделать?
вот мой код:
namespace EditorCSV
{
class Program
{
static void Main(string[] args)
{
ReadFromFile("c:\\source.csv");
}
static void ReadFromFile(string filename)
{
StreamReader SR;
StreamWriter SW;
SW = File.CreateText("c:\\target.csv");
string S;
char C='a';
int i=0;
SR=File.OpenText(filename);
S=SR.ReadLine();
SW.Write(S);
S = SR.ReadLine();
while(S!=null)
{
try { C = S[3]; }
catch (IndexOutOfRangeException exception){
bool t = false;
while (t == false)
{
t = true;
S = SR.ReadLine();
try { C = S[3]; }
catch (IndexOutOfRangeException ex) { S = SR.ReadLine(); t = false; }
}
}
if( C.Equals(';'))
{
SW.Write("\r\n" + S);
i = i + 1;
}
else
{
SW.Write(S);
}
S=SR.ReadLine();
}
SR.Close();
SW.Close();
Console.WriteLine("Records Processed: " + i.ToString() + " .");
Console.WriteLine("File Created SucacessFully");
Console.ReadKey();
}
}
}