Перевод строки vbscript в строку c # - PullRequest
0 голосов
/ 28 октября 2009

Хорошо, у меня есть строка vbscript в файле wsf, как показано ниже:

 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 #, я понимаю, что vbscript & преобразуется в + в конкатенации строк c #, но что делает vbCrLf и _ перевести на?

Ответы [ 5 ]

3 голосов
/ 28 октября 2009

В качестве альтернативы, вы можете использовать дословный строковый литерал, и в этом случае ваша кодировка кавычек останется прежней, а ваши новые строки будут действительными новыми строками:

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,""""";
2 голосов
/ 28 октября 2009
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) и выделит буфер, который может содержать всю строку результата. Обратите внимание на использование неэкранированных строк для упрощения конвертации экранированных кавычек.

2 голосов
/ 28 октября 2009

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,\"\"";
1 голос
/ 28 октября 2009
Environment.NewLine

Или используйте что-то вроде http://www.developerfusion.com/tools/convert/vb-to-csharp/, если у вас есть много для конвертации.

РЕДАКТИРОВАТЬ: Эта ссылка пока не работает ... Есть и другие бесплатные онлайн-конвертеры. Но для чего-то такого простого, как строка, подобная этой; Вы можете сделать это вручную;)

0 голосов
/ 28 октября 2009

vbCrLf является синонимом конца строки (Environment.NewLine).

_ (подчеркивание) допускает многострочные операторы в VB.

Кроме того, двойные-двойные кавычки "" - это VB-способ избежать кавычек.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...