我的應用程序應該閱讀一個C#代碼樣品即不縮進,然後縮進代碼編程。我這樣做的方式可能不正確,但仍可能取得部分結果。應用該縮進在C#中沒有鋸齒的代碼
當找到{
然後用該行的其餘部分相同的空間繼續被讀取,我可以設置空格。當再次找到另一個{
時,請添加空格,併爲其餘行添加此新空間。爲此,我這樣做了:
private void btn_format_Click(object sender, EventArgs e)
{
string lineInfo = "";
string fl = "";
string ctab= char.ConvertFromUtf32(32)+char.ConvertFromUtf32(32)+char.ConvertFromUtf32(32);
foreach (string line in txt_codepage.Lines) // text_codepage is a textbox with code
{
if (line.Contains("{"))
{
string l = line.Replace("{", ctab+"{");
lineInfo = lineInfo + (l + "\n");
fl = fl + ctab;
ctab = ctab + ctab;
}
else
{
lineInfo = lineInfo + (char.ConvertFromUtf32(32)+fl+ line + "\n");
}
我可以實現我想要的適當的縮進,直到這裏。現在,當我找到一個}
我應該做的逆過程,但不幸的是這是不可能的字符串。我的意思相反的過程是這樣的:
if (line.Contains("}"))
{
string l = line.Replace(ctab + "}", "}");
lineInfo = lineInfo + (l + "\n");
fl = fl - ctab;
ctab = ctab - ctab;
}
else
{
lineInfo = lineInfo - (char.ConvertFromUtf32(32) + fl + line + "\n");
}
}
MessageBox.Show(lineInfo.ToString());
我知道代碼的上面部分是一個完整的大錯,但讓我知道如何去實現它在正確的方式
Visual Studio內置了這種自動縮進功能。你有沒有檢查它是否暴露了API中的功能? – 2012-08-12 12:45:09