에있는 split로 반환했습니다. 내 아파치 로그를 읽고 그것에 대한 처리를 시도하고 있습니다. 내가 그렇게 참조하는 로그 라인을 포함하는 문자열 분할 함수를 사용합니다. 나는 그 선들을 제거하고 싶다. 아래 코드는 내가 가지고있는 것을 보여줍니다. "127.0.0.1"만 제거되지만 모든 "192.168.1.x"행이 나타납니다.각 항목에 대한 텍스트 검색 줄을 C#
모든 분할 문자열을 어떻게 제거합니까? 그런 다음
public void GetTheLog()
{
string path = "c:\\program files\\Zend\\apache2\\logs\\access.log";
string path2 = @"access.log";
int pos;
bool goodline = true;
string skipIPs = "127.0.0.1;192.168.1.100;192.168.1.101;192.168.1.106;67.240.13.70";
char[] splitchar = { ';' };
string[] wordarray = skipIPs.Split(splitchar);
FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
StreamReader reader = new StreamReader(fs);
TextWriter tw = new StreamWriter(path2);
while (!reader.EndOfStream)
{
string line = reader.ReadLine();
// initialize goodline for each line of reader result
goodline = true;
for (j = 0; j < wordarray.Length; j++)
{
pos = -10;
srch = wordarray[j];
ln = line.Substring(0,srch.Length);
pos = ln.IndexOf(srch);
if (pos >= 0) goodline = false;
}
if (goodline == true)
{
tw.WriteLine(line);
listBox2.Items.Add(line);
}
}
// Clean up
reader.Close();
fs.Close();
listBox1.Items.Add(path2);
tw.Close();
}
고마워요. 귀하의 회신을 약간 수정해야했습니다. 나는 "파일을 다른 프로그램에서 사용 중입니다"라는 오류 메시지가 나타나서 원래 파일을 임시 파일로 다운로드 한 다음 임시 파일에 적용하여 제안 사항을 추가했습니다. 그 트릭을 했어! –
@DaveJaswaye 슈퍼, 듣기에 다행입니다. 당신이 새로운 사람 일 때 이것을 올바른 대답으로 표기하거나 투표를하는 것에 대해 생각해보십시오. – Bert