将vbscript字符串转换为c#字符串

时间:2009-10-28 15:50:53

标签: c# vb.net vbscript

好的,我在wsf文件中有一个vbscript字符串,如下所示:

 Dim strTransData = "1,1,2,123457,1,20051012093000" & vbCrLf & _
                    "2,1" & vbCrLf & _
                    "2,2" & vbCrLf & _
                    "2,3" & vbCrLf & _
                    "3,""5449000000996"",0,3,39" & vbCrLf & _
                    "3,"""",100,1,500" & vbCrLf & _
                    "4,0,200,"""""

我需要做的是将此字符串转换为ac#string,我知道vbscript &amp; 转换为c#字符串连接中的 + 但是< strong> vbCrLf 和 _ 转换为?

5 个答案:

答案 0 :(得分:3)

或者,您可以使用逐字字符串文字,在这种情况下,您的引号编码将保持不变,并且您的换行符是实际换行符:

string transData = @"1,1,2,123457,1,20051012093000
2,1
2,2
2,3
3,""5449000000996"",0,3,39
3,"""",100,1,500
4,0,200,""""";

答案 1 :(得分:2)

C#使用:

  • “+”用于连接
  • 没有行继续符(VB.NET中的“_”)
  • \“表示文字引用(而不是像”VB.NET“)
  • \ r \ n表示CR和LF(字面意思是在字符串内)
  • 或者,您可以使用Environment.NewLine

所以:

 string strTransData = "1,1,2,123457,1,20051012093000" + "\r\n" + 
     "2,1" + "\r\n" + 
     "2,2" + "\r\n" + 
     "2,3" + "\r\n" + 
     "3,\"5449000000996\",0,3,39" + "\r\n" + 
     "3,\"\",100,1,500" + "\r\n" + 
     "4,0,200,\"\"";

答案 2 :(得分:2)

string TransData = new StringBuilder("1,1,2,123457,1,20051012093000",100).AppendLine("")
         .AppendLine("2,1")
         .AppendLine("2,2")
         .AppendLine("2,3")
         .AppendLine(@"3,""5449000000996"",0,3,39")
         .AppendLine(@"3,"""",100,1,500")
         .Append(@"4,0,200,""""")
         .ToString();

这将避免任何字符串连接(在.Net中可能很慢)并预先分配一个可以保存整个结果字符串的缓冲区。请注意,使用未转义字符串可以更轻松地转换转义引号。

答案 3 :(得分:1)

Environment.NewLine

如果您有很多要转换的内容,请使用http://www.developerfusion.com/tools/convert/vb-to-csharp/之类的内容。

编辑:这个链接现在看来已经死了..还有其他免费的在线转换器。但对于像这样的字符串这么简单的东西;你可以手动完成;)

答案 4 :(得分:0)

vbCrLf是行尾(Environment.NewLine)的同义词。

_(下划线)允许在VB中使用多行语句。

另外,双引号""是转义引号的VB方式。