Split mit Trennzeichen außer als Trennzeichen entkommen

Bin ich beim Lesen von Daten der Zwischenablage aus excel mit

var stream = (System.IO.Stream) ( Forms.Clipboard.GetDataObject() ).GetData( Forms.DataFormats.CommaSeparatedValue );,

aber leider, excel ist vorbei text der Zelle statt Zelle-Werte. Wenn die Zellen werden mit besonderer Formatierung (wie die Tausende seperator), die Daten in der Zwischenablage für eine Reihe von Zellen, die in Spalten, die wie folgt aussieht:

 1,234,123.00    2,345.00    342.00      12,345.00

gespeichert ist, als diese:

\" 1,234,123.00 \",\" 2,345.00 \", 342.00 ,\" 12,345.00 \"

wenn das, was ich wirklich will, ist dieses:

 1234123.00, 2345.00, 342.00, 12345.00

Hatte ich zuvor mit der clipData.Split(new string[] { "," }, StringSllitOptions.None)) - Funktion, um meine CSV-Daten aus der Zwischenablage in eine Reihe von Zellen, aber dieser schlägt fehl, wenn es entkam formatierten text mit Kommas.


Frage ich mich, wenn jeder denken kann ein Weg, um split-diesen string in eine Reihe von Zellen, ignoriert die Kommas escaped innerhalb der \" bits, da diese wie Excel ist die Auswahl an Flucht-Zellen mit Kommas.

Kurz gesagt, wie kann ich aus einem string mit dieser:

\" 1,234,123.00 \",\" 2,345.00 \", 342.00 ,\" 12,345.00 \"

in ein array von strings mit diesem:

{ "1,234,123.00", "2,345.00", "342.00", "12,345.00" }

Ohne zu ruinieren, meine Fähigkeit zu analysieren, eine einfache Komma getrennte Zeichenfolge.

******* edit*

Follow-up-Frage (formuliert als ein DFA) hier: Aufteilen einer Zeichenfolge basiert auf jeder Zeit einen Deterministischen Endlichen Automaten erreicht einen Endzustand?

  • Sind Sie tatsächlich sehen, ein \ gefolgt von einem " oder sind Sie nur mit\", um anzuzeigen, dass ein doppeltes Anführungszeichen anstelle einer Bezeichnung für den Beginn einer Zeichenkette.
  • Bekommst du nicht die Daten in ein anderes format? Verwenden Sie IDataObject.GetFormats zum abrufen einer Liste der verfügbaren Formate und sehen, wenn Sie eine finden, die besser funktioniert.
  • Okay ich nehme meine Zeit zu bewerten und zu testen mehrere dieser Lösungen und erhalten zurück zu Euch.
  • Viele Lösungen scheitern aufgrund der Tatsache, dass excel nicht immer in Anführungszeichen gesetzt werden die Zellwerte nur dann, wenn Sie die ein Komma enthalten. Jedem Fall mit "split", die dodge versehentlich Spaltung Kommas innerhalb von Anführungszeichen nicht korrekt Spaltung auf, Kommas als Anführungszeichen werden nicht verwendet.
InformationsquelleAutor Alain | 2010-12-09
Schreibe einen Kommentar