Wie Entferne ich die Anführungszeichen aus .csv-Datei?
Las ich in einem .csv-Datei.
Den Inhalt wie folgt aussieht:
1;"final60";"Vereinigtes Königreich";"2013-12-06 15:48:16";
2;"donnyr8";"Niederlande";"2013-12-06 15:54:32"; etc
Im moment bin ich einfach nur versuchen, entfernen Sie die Anführungszeichen aus jeder Zeile mit der Replace
Methode. Dies ist, was ich versucht habe, die nicht angezeigt wird, etwas zu tun. Obwohl scheint nicht zu brechen, das Programm trotzdem.
try
{
string item2;
List<string> list = File.ReadLines("file.csv").ToList();
foreach (string listLine in list)
{
Console.Write("# ");
//seperate up this line into a new list by ;
List<string> listItems = listLine.Split(';').ToList();
foreach(String item in listItems)
{
if (item == """)
{
item2 = item.Replace(""", "");
}
else
{
item2 = item;
}
Console.Write(item2);
}
Console.WriteLine("\n");
}
}
catch (Exception e)
{
//Let the user know what went wrong.
Console.WriteLine("The file could not be read:");
Console.WriteLine(e.Message);
}
Wie kann ich entfernen Sie die Anführungszeichen in jeder Zeile?
- Ihre Suche nach dem 7-Zeichen-string
"
ist, dass das, was eigentlich in der Datei? Eine HTML-entity und hat keine Bedeutung in C# verwenden"\""
zu ersetzen, die eine grundlegende double-quote.
InformationsquelleAutor crmepham | 2014-01-31
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ein Ansatz wäre mit Regex Folgendes Muster:
Debuggex Demo
Wird es passen alle
"
in der Zeichenfolge, so dass Sie könnte so etwas wie dieses:Hier
input
wäre die ganze Datei oder auch nur eine Zeile, die das Muster wäre\"
, unds
wäre die resultierendestring
nach dem entfernen dieser von doppelten Anführungszeichen.Es ist viel einfacher zu verwenden, einige der bestehenden CSVParser statt dies zu tun, manuell.
Sie verwenden konnten, zum Beispiel:
Parsen von CSV-Dateien manuell stellt eine Menge von potentiellen Risiken. Auch wenn Sie bei der Lösung Ihres vor der Herausforderung, Sie können nicht sicher sein, dass es nicht auch andere Fälle, wenn Ihre CSV-Datei wird nicht geparst werden entsprechend.
Der Grund, warum es nicht funktioniert liegt hier:
Denke darüber nach, welche Art von Daten
item
halten, weil es scheint, dass Sie überprüfen, um zu sehen, ob einchar
gleich"
, welches ist die richtige Sache zu tun, aber vielleichtitem
ist das nicht ein char? Überlegen Sie, wasList<string> listItems = listLine.Split(';').ToList();
undforeach(String item in listItems
tun 🙂listItems
würde ein string sein (was offensichtlich ist ein array von Zeichen). So habe ich dasforeach
Schleife zu Durchlaufen und jedes Zeichen in der Zeichenfolge zu überprüfen, ob jeder von Ihnen war ein Anführungszeichen!?Versuchen, suchen und ersetzen der chr-code anstelle der escape-Sequenz.
Ich glaube, Sie würde wollen, chr(34)
Wie wäre es mit LINQ?
Haben Sie versucht, anstelle der
"
Anführungszeichen?item.Replace(""", "");
nichts macht, weil es keine vorkommen des Teilstrings"
.Ersetzen
mit
item.Replace("\"", "")
statt.