C#을 사용하여 텍스트 파일을 검색하고 검색 키워드가 포함 된 줄 번호와 전체 줄을 표시합니다.

StackOverflow https://stackoverflow.com/questions/2437716

문제

C#을 사용하여 텍스트 파일 (로그 파일)을 검색하고 검색 키워드가 포함 된 완전한 줄을 표시하는 데 도움이 필요합니다.

도움이 되었습니까?

해결책

이것은 약간의 수정입니다. http://msdn.microsoft.com/en-us/library/aa287535%28vs.71%29.aspx

int counter = 0;
string line;

// Read the file and display it line by line.
System.IO.StreamReader file = new System.IO.StreamReader("c:\\test.txt");
while((line = file.ReadLine()) != null)
{
    if ( line.Contains("word") )
    {
        Console.WriteLine (counter.ToString() + ": " + line);
    }

   counter++;
}

file.Close();

다른 팁

이 게임에서 게임에 늦었지만이 게시물에서 일어 났으며 대안을 추가 할 것이라고 생각했습니다.

foreach (var match in File.ReadLines(@"c:\LogFile.txt")
                          .Select((text, index) => new { text, lineNumber = index+ 1 })
                          .Where(x => x.text.Contains("SEARCHWORD")))
{
    Console.WriteLine("{0}: {1}", match.lineNumber, match.text);
}

이것은 사용합니다 :

  • file.readlines, 이는 a의 필요성을 제거합니다 StreamReader, 그리고 그것은 또한 LINQ와 잘 어울립니다 Where 조항 파일에서 필터링 된 줄 세트를 반환합니다.

  • 과부하 enumerable.select 각 요소의 인덱스를 반환 한 다음 1에 추가하여 일치하는 줄의 줄 번호를 얻을 수 있습니다.

샘플 입력 :

just a sample line
another sample line
first matching SEARCHWORD line
not a match
...here's aSEARCHWORDmatch
SEARCHWORD123
asdfasdfasdf

산출:

3: first matching SEARCHWORD line
5: ...here's aSEARCHWORDmatch
6: SEARCHWORD123

Export Do Excel은 Pessimist가 쓴 것처럼 CSV 파일 형식을 사용할 수 있습니다. 무엇을 쓸지 확실하지 않은 경우 MS Excel에 일부 데이터를 입력하고 메뉴에서 "저장"옵션을 클릭하고 파일 유형으로 CSV를 선택하십시오.

일부 언어에서와 같이 CSV 파일 형식을 작성할 때주의하십시오 값을 분리하기위한 기본값은 쉼표가 아닙니다. 예를 들어, 브라질 포르투갈어에서는 기본값은 소수 분리기로서 쉼표이며, 분리 된 값을위한 수천 개의 분리기로, 세미콜론은 값을 분리합니다. 글을 쓸 때 문화를 염두에 두십시오.

다른 대안은 수평 탭을 분리기로 사용하는 것입니다. 실험을 실험하여 문자열을 작성하고 탭 키를 누른 다음 다른 문자열을 누르고 Microsoft Excel에 붙여 넣습니다. 해당 프로그램의 기본 분리기입니다.

특정 문제에 대한 임시 솔루션을 사용하는 경우 많은 생각없이 대안을 사용할 수 있습니다. 다른 사람 (또는 다른 환경)이 사용할 수있는 것을 프로그래밍하는 경우 문화의 특정 차이점을 염두에 두십시오.

아, 방금 기억했습니다. XML을 사용하여 스프레드 시트를 작성할 수 있습니다. .NET 패키지만으로 수행 할 수 있습니다. 몇 년 전 C# .net 2.0으로 해냈습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top