2016-02-26 4 views
-2

Я в процессе преобразования приложения VB. Я пытаюсь создать строку, используя StringBuilder, поскольку я не могу изменить строку, используя функцию Mid. У меня есть цикл, хотя он добавляет только первый символ в строку, остальное - просто пробел. Как я могу добавить все данные в строку?Создание строки с помощью StringBuilder в C#

Ниже приведен фрагмент кода; спасибо за вашу помощь

 int table = 0; 
     string tableData = Strings.StrDup(253, " "); 
     int i = 0; 
     string listData = null; 
     int pointer =0; 
     StringBuilder sb = new StringBuilder(tableData); 
     sb.Insert(0, Strings.StrDup(253, Strings.Chr(32))); 
     sb.Insert(0, typeOfTable + Strings.Chr(0)); 


     pointer = 2; 
     for (i = 0; i <= lstTABLE.Items.Count -1; i++) 
     { 
      listData = lstTABLE.Items[i].ToString(); 
      table = Convert.ToInt32(-(Conversion.Val(listData) * 10)); 
      sb.Insert(pointer, Functions.FNCodeTwoChar(table)); 
      pointer +=2; 
     } 

     sb.Insert (202,Functions.EncodeKP(Convert.ToSingle(Conversion.Val(lblStartTable.Text)))); 
     sb.Insert(205,Functions.EncodeKP(Convert.ToSingle(Conversion.Val(lblEndTable.Text)))); 
     sb.Insert(208, Strings.Space(36)); 
     sb.Insert(244, " 0"); 
     sb.Insert(248, " 0"); 
+3

И вопрос в том, что? –

+0

Почему вы используете 'StringBuilder.Insert', требуя вам управлять глупыми указателями на символы? Используйте ['StringBuilder.Append'] (https://msdn.microsoft.com/en-us/library/system.text.stringbuilder.append.aspx)! – poke

+0

Спасибо, но не нужно сбрасывать – Russ

ответ

2

Ответ на вопрос «У меня есть цикл, хотя это только добавляет первый символ в строке остальное просто пустое пространство. Как я могу добавить все данные в строку? " is:

Второй символ, который вы добавляете к строке, это Strings.Chr (0), который является символом символа окончания строки. Когда C# (или VB.Net, если на то пошло) попадает в этот символ, он перестает читать строку.

Смежные вопросы