Извличане на CSV тип данни от текстов файл

Имам низ, който дава данни, подобни на csv формат.

&stamp;field1;field2;field3;field4;&event 
10:44:00.6100;0.000;0.000;0.000;0.000; 10:44:00.7100;23.2;0.230;411.2;0.000; 10:44:00.8100;0.000;0.000;1.022;0.000;      10:44:00.9100;8.000;0.000;232.3;0.000;
 10:44:01.2100;0.000;0.000;0.000;0.000; 10:44:01.3100;23.2;0.230;411.2;0.000; 10:44:01.5100;0.000;0.000;1.022;0.000; 10:44:01.7100;8.000;0.000;232.3;0.000;

Искам да десериализирам тези данни.


person user1260967    schedule 23.04.2013    source източник
comment
Какво е съдържанието тук? И какво искате да направите с данните? Сигурни ли сте, че не искате просто да отворите това в Excel или някое подобно приложение?   -  person Kjartan    schedule 23.04.2013
comment
Ако данните са точно като CSV, с изключение на използването на точка и запетая вместо запетаи, тогава използвайте CSV анализатор, който ви позволява да персонализирате разделителя. Ако това е по-прост формат, където можете просто да разделите точките и запетая, тогава направете това. Така или иначе, вижте дубликат.   -  person Peter Duniho    schedule 06.04.2021


Отговори (2)


това ще ви даде списък от низове, "разделени" на всеки ; въглен ще искате да отрежете и анализирате стойностите след това. Надявам се това да помогне

var stringOfData = "0:44:00.6100;0.000;0.000;0.000;0.000;     10:44:00.7100;23.2;0.230;411.2;0.000; 10:44:00.8100;0.000;0.000;1.022;0.000;      10:44:00.9100;8.000;0.000;232.3;0.000;";
List<string> parsed = new List<string>();
parsed.AddRange(stringOfData.Split(';'));
person workabyte    schedule 23.04.2013
comment
Благодаря за предложението, но всеки начин да го десериализирам в някакъв конкретен формат, тъй като чрез използване на split трябва да използвам цикли, масиви, за да го направя в ред .... - person user1260967; 23.04.2013
comment
можете ли да бъдете по-конкретни какво имате предвид в някакъв конкретен формат? можете ли да дадете пример какво получавате и какво искате да получите от това, за да мога да отговоря по-добре на въпроса ви - person workabyte; 23.04.2013

string line = String.Empty;
string[] parts = null;
using (StreamReader sr = new StreamReader(new FileStream(@"C:\yourfile.csv", 
                                          FileMode.Open)))
{
    while ((line = sr.ReadLine()) != null)
    {
        parts = line.Split(new [] { ';' });
        //Do whatever you want to do with the array of values here
    }
}

Що се отнася до частта на въпроса за десериализацията; ще трябва да посочите вида на формата, който искате. Ако просто искате колекция от числа, през които искате да преминете, можете просто да добавите всяка стойност към общ списък.

Ако искате конкретен формат, можете да създадете клас с полета за всяка от тези стойности и да попълните общ списък на този клас, като използвате тези стойности.

person Mark Mintoff    schedule 23.04.2013