ho un file CSV con il campo di intestazioni che alcuni di essi contiene due \ tre parole separate con lo spazio:
Impossibile leggere il file CSV con campo di intestazione che contiene due tre parole separate da spazi utilizzando CsvHelper biblioteca
Si può vedere nella foto sopra le intestazioni di campo che separavano con spazi:
"Ora del giorno", "Nome processo", "Percorso Immagine"
Quando ho provato a leggere il CSV ho ricevuto un errore:
L'errore è: "Fields 'TimeOfDay' non esiste nel file CSV."
Questo perché la mia classe DataRecord
non può contenere variabili con spazi.
Voglio trovare un modo per leggere il file CSV senza modificare il file CSV (perché viene esportata da software di terze parti)
codice C#:
public static class Logic
{
public static StringBuilder GetLoadImagesLogs(String i_FilePathAndName)
{
StringBuilder o_ConvertedLogs = new StringBuilder();
using (var sr = new StreamReader(i_FilePathAndName))
{
var reader = new CsvReader(sr);
do
{
reader.Read();
IEnumerable<DataRecord> records = reader.GetRecords<DataRecord>();
} while (!reader.IsRecordEmpty());
}
return o_ConvertedLogs ;
}
class DataRecord
{
//Should have properties which correspond to the Column Names in the file
//i.e. CommonName,FormalName,TelephoneCode,CountryCode
public String TimeOfDay { get; set; }
public String ProcessName { get; set; }
public String PID { get; set; }
public String Operation { get; set; }
public String Path { get; set; }
public String Result { get; set; }
public String Detail { get; set; }
public String ImagePath { get; set; }
}
}
Perché non analizzare il CSV da soli invece di utilizzare un fuori biblioteca partito 3 ° scatola? –
@DJKRAZE, non l'ho ancora gestito. prima ho bisogno di trovare una soluzione per il problema dell'intestazione di campo – E235
hai familiarità con VB.NET usando 'Microsoft.VisualBasic.FileIO; 'Ho scritto il mio parser usando questo semplice assembly .. fai una ricerca su google su come usare' TextFieldParser' per analizzare .CSV File C# Posso postare il mio parser esatto che uso/scritto dovresti apportare piccole modifiche nel codice per adattarsi al tuo caso d'uso – MethodMan