2016-09-21 23 views
-2

如果我有这样的一段话:如何逐行解析段落到数组中?

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

如果'','是一个共同的东西,那么为什么你不把数据分割在''上, – MethodMan

+0

目前还不清楚你想要实现什么。您提到的文字输入或其他内容的代码是?输入如何存储?你是从磁盘还是从数据库读取它?你的问题中缺少太多的信息,这几乎不可能回答。看看常见问题,看看如何提出一个好问题。 –

+0

请更具体地说明你希望你的最终结果是什么。你想如何格式化数组中的单个字符串? –

回答

0

使用String.Split功能

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

尝试使用双双引号逃逸字符

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

该字符串格式在我上面发布的那个块中,所以如果我只是像这样粘贴它:string paragraph =“// thatblock”那么我看到这些错误呢?@JaydipJ https://gyazo.com/1aae0d19c02b6636d84fdd80bebb70c7 –

+0

它没有工作。 https://gyazo.com/63bfe0c4fcc87b7165f6145efc6e4b07我的字符串在'本地'之前结束 –

+0

哦,等等,你可以使用双引号在@右转换? –

0

我观察到的格式非常类似于JSON,虽然与其他的分隔符。

因此,为了解决这个问题的一种方式将是将其转换为JSON:用 “=”

  • 替换(和){和}
  • 取代:

    • 全部替换 “=” ,与;
    • 删除模块标签上

    然后你就可以使用JSON解析LIB它,例如NewtonSoft,这是对的NuGet。

    如果事先知道预期的字符串对,可以将其转换为定义的类。否则,将其转换为动态(或者如果.NET版本太老而无法动态添加到字典中)并从此处继续。

  • +0

    这些值非常敏感,对这些字符串非常重要,我无法替换或更改它们中的任何内容。 –

    +0

    他们是如何重要?他们是分隔符,你可以从字面上用任何东西代替它们,然后在需要的时候反过来取代原来的东西。 –