2014-05-21 9 views
0

레거시 TP5 프로그램이 있습니다. TP7을 사용하여 컴파일하고 OK를 실행합니다. write/writeln 문을 캡처하고 기록하고 싶습니다. 필자와 필자 모두를 위해 글로벌 검색 및 교체를 할 수 있으므로 코드 변경에 신경 쓰지 않아도됩니다. 그것은 형식화 된 출력을 사용합니다 : 쓰기 (r : 4 : 2) 그래서 저는 이것을 갖고 싶습니다.Turbo Pascal, 스트림을 사용하여 Writeln을 캡처 하시겠습니까?

파일에 쓰는 것 이외에 write/writeln을 캡처 한 다음 각 줄을 다시 읽고 다시 쓰는 방법을 모르겠다. ~ (그러나 그것은 스트림에 쓰는 것과 같습니다. 다음 다중 출력에 사본을 스트리밍) Tp5.5에 도입.

는 누구? 전에 이런 짓을 했나요이 가능합니까? 다른 방법이 있습니까?

답변

0

이 가능하며, 일반적으로 FPC 및 델파이에서 수행 AFAIK, 유일한 문제는 TEXTREC이 TP에 의해 수출되지 않기 때문에 소스에서 다른 곳으로 복사해야한다는 것입니다.

t extrec에는 I/O를 처리하기 위해 자신의 함수에 설정할 수있는 여러 함수 변수 (C의 함수 포인터와 같은)가 있습니다. 이 변수를 설정하는 것은 Assign()이하는 일입니다.

문제는 상태 (예 : 스트림에 대한 포인터)를 저장할 공간을 찾는 것입니다. IIRC TP 텍스트는 Delphi보다 빡빡합니다.

어쨌든 StreamIO 단위를 검색하십시오. 이것은 당신이 채택해야 할 FPC/Delphi 유닛이지만 적어도 그것이 원리를 증명합니다. 어쨌든 더 새로운 무언가로 단순히 옮기는 것이 낫습니다. 어쩌면 SWAG도 같은 가치가 있습니다.