2011-01-17 8 views
0

시스템이 파일을 읽을 때 데이터베이스의 데이터가 채워지는 시스템을 만들었습니다. 이 파일은 나중 단계에서 채워질 수 있으며, 동일한 파일을 다시 읽도록 요구합니다.행이 서로 동일 할 수있는 텍스트 파일에서 행 중복 찾기

데이터 자체는 파일의 각 행에 표시되며 어려운 부분은 고유 한 값을 찾는 것이므로 그 이유를 알려 드리겠습니다.

123 20110101 4123 Hello 
123 20110101 4123 Hello 
124 20110102 6133 Hello again 
125 20110103 6425 Yes 

여기 진짜 문제는 처음 두 선이 중복되지 있다는 것입니다, 그래서 그들은 모두 시스템에 의해 데이터베이스에 읽기를받을거야 :

파일은 다음과 같이 보일 수 있습니다.

이전에 말했듯이이 파일은 나중 단계에 추가 될 수 있으므로 다시 읽어야합니다. 텍스트가 파일에 추가되는 방법에 익숙하지 않았기 때문에 새로운 데이터가 파일의 끝에 추가 될 것이라고 가정했습니다. 따라서 데이터베이스의 각 행에 파일 행 번호를 추가하여 행을 고유하게 만들었습니다. 그러나, 내가 틀렸어 ...

그것이 나온 것처럼 데이터도 중간에 파일에 추가됩니다.

123 20110101 4123 Hello 
123 20110101 4123 Hello 
124 20110102 6133 Hello again 
123 20110101 4123 Hello 
125 20110103 6425 Yes 

그리고 지금 우리는 우리가 파일을 읽을 두 번째 앞에 서서 :

이것은 우리가 다음과 같은 파일이있을 수 있습니다 의미합니다. 이 경우 유일하게 새로운 행이므로 4 행만 읽으 려합니다. 새 줄을 찾아 다른 줄을 어떻게 없앨 수 있습니까?

+0

잘 모르겠습니다. 파일에 추가 된 새로운 라인을 찾고 싶습니까? 또는 이전에 추가 된 행과 중복되지 않은 경우에만 사용할 수 있습니까? – Thomas

+0

새로운 라인을 찾고 싶습니다. 새 행에는 이전에 추가 된 다른 행과 동일한 문자가 포함될 수 있지만이 경우에는 중복되지 않습니다. – Awesome

+0

임시 파일에 추가를 통해 [IPC] (http://en.wikipedia.org/wiki/Interprocess_communication)를 시도하는 것이 조금 두려워요. 한 프로그램에서 다른 프로그램으로 텍스트 줄을 전달하고 싶습니까? 이 작업은 파일을 포함하지 않고 훨씬 효율적이고 강력한 방법으로 수행 할 수 있습니다. – ulidtko

답변

0

이전 버전의 파일을 저장 한 다음 이전 버전과 새 버전에서 diff을 실행하십시오. 그러면 새로 추가 된 행이 생깁니다.

+0

아니요, 둘 사이에 필요하지 않습니다. – Awesome

+0

신난다, 내일 시험해 볼 것이다! 고맙습니다! – Awesome