2013-01-22 79 views
0

我今天學到了Stringbuilder,並且一直在搞亂它,因爲它可能是最簡單或最快速的方法來執行我需要做的事情。C++ Stringbuilder插入,反向和重新排列多個字符串

我有一個文本文件,像這樣:

Zach LCPL Schytt 
Bill CPL John 
Mark LCPL Simmons 
...etc 

我使用下面的函數從列表框中的文本框閱讀。

StringBuilder^ sb = gcnew StringBuilder(); 
     Convertor^ form2 = gcnew Convertor(); 
      for (int i = 0; i < listBox1->Items->Count; i++){ 
       String^ temp = listBox1->Items[i]->ToString(); 
       sb->AppendFormat("{0}", temp)->AppendLine(); 
      } 
      form2->textBox1->Text = sb->ToString(); 
      form2->ShowDialog(); 

我該如何讓它看起來像下面這樣呢?對於每一個名字,

dn: CN=Schytt LCPL Zach,DC=Sample,DC=Site 
changetype: add 
displayName: Schytt.Zach 

我看着insert,和東西,但不太瞭解它。

回答

1

你在找這樣的事嗎?

StringBuilder^ sb = gcnew StringBuilder(); 
for (int i = 0; i < listBox1->Items->Count; i++) 
{ 
    String^ temp = listBox1->Items[i]->ToString(); 

    // First, separate the input string. 
    array<String^>^ strings = temp->Split(); 
    String^ firstName = strings[0]; 
    String^ rank = strings[1]; 
    String^ lastName = strings[2]; 

    // Then build the output string. (Remember that the C++ compiler 
    // concatenates strings at compile time, so we don't need a plus sign.) 
    sb->AppendFormat("dn: CN = {2} {3} {1},DC=Sample,DC=Site{0}" 
        "changetype: add{0}" 
        "displayName: {2}.{1}{0}", 
        Environment::Newline, //0 
        firstName, //1 
        lastName, //2 
        rank); //3 
} 

form2->textBox1->Text = sb->ToString(); 
form2->ShowDialog(); 
+0

這正是我所期待的。你知道一個好的教程在哪裏可以學習更多關於字符串如何工作的知識嗎? String^rank = strings [1]拋出一個System.IndexOutOfRangeException未處理 – TheSecEng

+0

在末尾沒有空白的空格做到了。謝謝你 – TheSecEng