現在我通過幫助解決了這個問題後,在我創建的一個小文本文件中從兩個標記之間獲取文本,只用4行進行測試。現在我想創建一個新的文本文件,該文件將包含原始文件的內容,但在每個找到標籤之間的文本的地方我都想看到空格爲空字符串。所以,如果原來的文本文件看起來像現在這樣:indexof和substring的問題
daniel<Text>THISISOUTisthere</Text>
<Text>hellobye</Text>
<Text>danielTHISishereandnotthere</Text>
danie <Text> is THIS here and not THERE</Text>
因此,新的文件看起來想:
daniel<Text> </Text>
<Text> </Text>
<Text> </Text>
danie <Text> </Text>
下面是現在無法正常工作的代碼。我用一些幫助變量,但上線運行這段代碼時,我得到一個錯誤:
string hh = f.Substring(lastIndex, currentIndex);
錯誤說:索引和長度必須引用位置的字符串中。 參數名:長度
這是完整的代碼,現在不工作:
private void test()
{
w = new StreamWriter(@"d:\testFile.txt");
int currentLength;
int currentIndex;
int lastIndex = 0;
string startTag = "<Text>";
string endTag = "</Text>";
int startTagWidth = startTag.Length;
//int endTagWidth = endTag.Length;
index = 0;
while (true)
{
index = f.IndexOf(startTag, index);
if (index == -1)
{
break;
}
// else more to do - index now is positioned at first character of startTag
int start = index + startTagWidth;
currentIndex = start;
index = f.IndexOf(endTag, start+1);
if (index == -1)
{
break;
}
// found the endTag
string g = f.Substring(start, index - start - 1);
currentLength = index - start - 1;
string hh = f.Substring(lastIndex, currentIndex);
w.WriteLine(hh);
lastIndex = currentIndex + currentLength;
listBox1.Items.Add(g);
}
}
請幫我這個代碼。
**使用XML解析器**。 – SLaks
或HTML解析器,如果你想允許怪癖HTML ... –
@SLaks這將無法正常工作,該文件似乎不是有效的XML –