2016-09-21 2 views
-2

Wenn ich einen Absatz wie folgt aus:Wie parsen Sie einen Absatz zeilenweise in ein Array?

MODULE Local (Parent := "Local", 
      ParentModPortId := 1, 
       CatalogNumber := "1756-L71S", 
       Vendor := 1, 
       ProductType := 14, 
       ProductCode := 158, 
       Major := 27, 
       Minor := 11, 
       PortLabel := "RxBACKPLANE", 
       ChassisSize := 13, 
       Slot := 11, 
       Mode := 2#0000_0000_0000_0001, 
       CompatibleModule := 0, 
       KeyMask := 2#0000_0000_0001_1111, 
       SafetyNetwork := 16#0000_3acc_033e_6fa0) 
END_MODULE 

und es wird zur Zeit als nur eine einfache Zeichenfolge in meinem Programm gespeichert. Jetzt möchte ich jede Zeile als Eintrag in einem Array speichern. Wie würde ich das machen?

+0

Wenn das ',' ist die eine Sache gemeinsam, warum teilen Sie nicht die Daten auf der ',' – MethodMan

+0

Es ist nicht klar, was Sie überhaupt erreichen wollen. Ist der eingegebene Code eine Texteingabe oder etwas anderes? Wie wird die Eingabe gespeichert? Lesen Sie es von Diskette oder von einer Datenbank? Es gibt so viele Informationen in Ihrer Frage, die Sie kaum beantworten können. Werfen Sie einen Blick auf die FAQ, um zu sehen, wie Sie eine gute Frage stellen können. –

+0

Bitte seien Sie genauer, was Sie wollen, dass Ihr Endergebnis ist. Wie sollen die einzelnen Strings im Array formatiert werden? –

Antwort

0

Verwenden String.Split Funktion

string[] paragraph =yourString.Split(","); 

Try Doppel doppelte Anführungszeichen als Escape-Zeichen

String Para = @"MODULE Local (Parent := ""Local"", 
     ParentModPortId:= 1, 
      CatalogNumber:= ""1756-L71S"", 
      Vendor:= 1, 
      ProductType:= 14, 
      ProductCode:= 158, 
      Major:= 27, 
      Minor:= 11, 
      PortLabel:= ""RxBACKPLANE"", 
      ChassisSize:= 13, 
      Slot:= 11, 
      Mode:= 2#0000_0000_0000_0001, 
      CompatibleModule:= 0, 
      KeyMask:= 2#0000_0000_0001_1111, 
      SafetyNetwork:= 16#0000_3acc_033e_6fa0) 
     END_MODULE"; 
+0

Die Zeichenfolge ist in diesem Block formatiert ich oben so, wenn ich es einfach so einfügen: string paragraph = "// thatblock" dann bekomme ich diese Fehler zu sehen? @JaydipJ https://gyazo.com/1aae0d19c02b6636d84fdd80bebb70c7 –

+0

Es hat nicht funktioniert. https://gyazo.com/63bfe0c4fcc87b7165f6145efc6e4b07 Meine Zeichenfolge endet vor "Local" –

+0

Oh, Moment, Sie können doppelte Anführungszeichen verwenden, um in @ Recht zu entkommen ?? –

0

Ich beobachte zu verwenden, dass das Format JSON ziemlich ähnlich ist, wenn auch mit anderen Separatoren.

daher eine Möglichkeit, es zu lösen, wäre es zu JSON konvertieren:

  • ersetzen alle ": =" mit "="
  • ersetzen (und) mit {und}
  • ersetzen mit;
  • löschen die MODULE
  • Dann

Etiketten Sie es mit einem JSON lib analysieren kann, zum Beispiel NewtonSoft, die auf NuGet ist.

Wenn Sie vorher wissen, welche String-Paare zu erwarten sind, können Sie sie in eine definierte Klasse umwandeln. Andernfalls wandeln Sie es in dynamic um (oder in ein Dictionary, wenn Ihre .NET-Version zu alt für dynamic ist) und fahren von dort fort.

+0

diese Werte sind sehr empfindlich und sind wichtig für diese Zeichenfolgen, ich kann nichts in ihnen ersetzen oder ändern. –

+0

Wie sind sie lebenswichtig? Sie sind Separatoren, Sie können sie buchstäblich durch irgendetwas ersetzen und dann den Ersatz umkehren, um das Original bei Bedarf zu erhalten. –

Verwandte Themen