두 텍스트 파일 (+ -15000lines)을 빠르게 비교하고 두 파일에서 다른 출력 문자열을 얻는 가장 좋은 방법을 찾고 있습니다. 첫 번째 인벤토리는 오래된 인벤토리입니다. 새 인벤토리가 현재인데 file2 & file1 사이의 다른 문자열을 포함하는 세 번째 인벤토리를 생성하고 싶습니다. (두 파일 중 95 %가 비슷합니다.)C# 두 텍스트 파일을 비교하여 차이가있는 새 파일을 생성하십시오.
답변
출력 순서가 같은 경우에는 직접 줄을 비교하십시오. 다른 파일에 값이없는 경우 줄을 건너 뛰어야 할 수 있습니다.
그러나 출력이 같지 않은 경우 파일을 메모리에로드하고 한 파일에서 다른 파일로 관련 인벤토리 항목을 조회해야 할 수 있습니다. 그런 다음 찾지 못하거나 다를 때 필요한 것을하십시오. 는 유사한동일한 의미한다고 가정
아주 간단한 방법은 :
var file1Lines = File.ReadLines(file1Path);
var file2Lines = File.ReadLines(file2Path);
IEnumerable<String> inFirstNotInSecond = file1Lines.Except(file2Lines);
IEnumerable<String> inSecondNotInFirst = file2Lines.Except(file1Lines);
넌 라인을 열거 foreach
를 사용할 수있다.
OP가 올바른 것으로 가정하면 – Hardrada
을 upvote합니다. 예를 들어 ToList()를 통해 쿼리를 구체화하거나 원하는 경우 'ObjectDisposedException'을 피하기 위해'File.ReadAllLines'를 사용해야합니다. 두 시퀀스를 모두 사용하십시오. 'File.ReadLines'은 라인을 스트리밍하고 일단 완료되면 기본 스트림이 닫힙니다. 그럼에도 불구하고'ReadLines'는 메모리 소비면에서 가장 좋은 선택이기 때문에 보여주고 있습니다. –
ReadLines & ReadAllLines간에 성능 차이가 있습니까? 15000l의 파일에 차이가 없다면 readAllLines을 사용할 것입니다. 감사합니다. – OwenS
Google의 this diff 라이브러리를 사용할 수 있습니다. 2 개의 문자열을 취하고 차이 목록을 반환하는 diff_main 메서드를 살펴보십시오.
- 1. .bat 파일을 사용하여 두 개의 텍스트 파일을 비교하여 차이를 출력합니다.
- 2. DUnit 두 개의 텍스트 파일을 비교하여 Diff를 표시하십시오.
- 3. 자바 라이브러리 파일을 생성하십시오
- 4. 두 파일을 비교하여 순서를 무시 함
- 5. 두 개의 유닉스 시간 파일을 비교하여 오래된 파일을 삭제하십시오.
- 6. XSL을 사용하여 두 파일을 비교하고 출력 파일을 생성하십시오.
- 7. 차이가있는 두 테이블 비교
- 8. C#에서 텍스트 파일을
- 9. 텍스트 파일을 새 텍스트 파일로 필터링
- 10. 두 개의 CSV 파일을 비교하여 변경 내용을 추적하는 Python 방법
- 11. 두 파일을 비교하여 "match"및 "nomatch"파일에 쓰십시오.
- 12. 두 개의 텍스트 파일을 병합하는 라이브러리
- 13. 두 개의 사운드 파일을 새 파일로 병합
- 14. C++에서 텍스트 파일을 읽으십시오.
- 15. C 텍스트 파일을 읽는 중
- 16. 차이점 Excel 파일을 비교하여 생성하는 C# 방법을 최적화하십시오.
- 17. 다른 XML 파일에서 상속받은 XML 파일을 생성하십시오.
- 18. C#에서 텍스트 파일을 작성하는 방법
- 19. C++에서 텍스트 파일을 두 개의 동적 벡터로 읽는 방법?
- 20. 두 문자열을 비교하여 차이를 얻으십시오
- 21. C++/Objective-C : 클래스의 두 파일을 헤더라고하며 ...?
- 22. C# : IIS 로그 파일을 효율적으로 구문 분석하고 통계를 생성하십시오.
- 23. ctags를 사용하여 .net 라이브러리 (C#)에서 태그 파일을 생성하십시오.
- 24. MySQL에서 두 번 차이가있는 간격
- 25. Windows 응용 프로그램의 두 텍스트 파일을 비교하십시오.
- 26. 두 수치 변수를 비교하여 두 점 차이가 있는지를 알려줍니다.
- 27. 텍스트 파일을 CSV로 구문 분석 C#
- 28. C++에서 증가하는 텍스트 파일을 읽는 방법?
- 29. Excel 두 열을 비교하여 일치하는 행을 새 시트에 복사하십시오.
- 30. wsdl 파일을 사용하여 SOAP 요청 메시지를 생성하십시오.
이 경우 "비슷한"의미가 무엇인지 설명해 주실 수 있습니까? 그리고 프로그래밍 방식으로이 작업을 수행해야합니까, 아니면 [WinMerge] (http://winmerge.org)와 같은 diff 작업을 수행하기를 원하십니까? – Groo
주로 같은 순서로 동일하지만 항목이 누락 될 수 있습니다. 목표는 프로그래밍 방식으로 수행하는 것입니다. 감사합니다. – OwenS