문제

많은 항목이있는 텍스트 파일을 가져 오는 프로그램이 있습니다.

###
Starttime: 06.03.2008
Data: SOME RECORDS HERE

###
Starttime: 21.03.2008
Data SOME RECORDS HERE

... 등등

"데이터 다음에 종료 시간을 갖고 싶지 않아요 :"다음 시작 시간 -1이므로

###
Starttime: 06.03.2008
Data: SOME RECORDS HERE
EndTime: 20.03.2008

###
Starttime: 21.03.2008
Data SOME RECORDS HERE
EndTime: (next starttime -1)

... 등등

도움이 되었습니까?

해결책

가장 쉬운 방법은 파일을 TStringList 그리고 거기서 일하십시오.

의사 코드 :

var 
  S: TStringList;
  i: Integer;
  LastDate: TDateTime;
  CurDate: TDateTime;
begin
  S := TStringList.Create;
  S.LoadFromFile('c:\...');

  i := 0;
  while i < S.Count do
  begin
    if S[i] = "###" then
    begin
      CurDate := StrToDate(S[i+1])
      S.Insert(i-3, DateToStr(CurDate));
      LastDate := CurDate;
      i := i+2;
    end else
    begin
      i := i+1;
    end;
  end;
  S.SaveToFile('c:\...');
end;

이 코드는 그다지 강력하지 않으며 첫 번째 시작 날짜와 같이 특별한 경우를 확인하지 않지만 시작하기에 충분해야합니다.

다른 팁

글쎄, 당신은 파일을 한 줄씩 복사하고 적절한 순간에 새 줄을 삽입해야합니다. 텍스트 파일에서 물건을 이동할 수 없습니다.

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