텍스트 파일에서 각 단어를 읽고 다른 단어로 바꾸려고합니다. 작은 텍스트 파일의 경우 잘 작동합니다. 그러나 더 큰 텍스트 파일을 우리는 예외가 계속 ". 문자열 길이가 0 매개 변수 이름이 될 수 없습니다 oldValue입니다"예외 "문자열의 길이는 0이 될 수 없습니다."
void replace()
{
string s1 = " ", s2 = " ";
StreamReader streamReader;
streamReader = File.OpenText("C:\\sample.txt");
StreamWriter streamWriter = File.CreateText("C:\\sample1.txt");
//int x = st.Rows.Count;
while ((line = streamReader.ReadLine()) != null)
{
char[] delimiterChars = { ' ', '\t' };
String[] words = line.Split(delimiterChars);
foreach (string str in words)
{
s1 = str;
DataRow drow = st.Rows.Find(str);
if (drow != null)
{
index = st.Rows.IndexOf(drow);
s2 = Convert.ToString(st.Rows[index]["Binary"]);
s2 += "000";
// Console.WriteLine(s1);
// Console.WriteLine(s2);
streamWriter.Write(s1.Replace(s1,s2)); // Exception occurs here
}
else
break;
}
}
streamReader.Close();
streamWriter.Close();
}
우리는 그 이유를 찾을 수 없습니다. 미리 감사드립니다.
당신은 빈 문자열을 받고 할 수있다. 두 개의 공백 문자가있는 곳이 없는지 확인하십시오. – Tudor
나중에 예외의 스택 추적을 포함하고 가능한 경우 예외가 발생한 줄을 지적하십시오. 이는 대개 사람들이 프로그램을 분석하여 알아 내야하는 대신 문제의 원인을 신속하게 식별합니다. –