이것은 이상한 질문입니다. 나는 intesively 출력 생성을 위해 GotoXY 함수를 사용하는 파스칼 소스를 가지고 있지만 지금은 콘솔에서 파일로 출력을 리디렉션해야합니다. 어떤 아이디어?파스칼 crt 출력 리다이렉션
0
A
답변
1
마지막으로 완료되었습니다.
uses
Windows;
type
TAttachConsole = function (dwProcessId: DWORD): LongBOOL stdcall;
var
AttachConsole: TAttachConsole;
mProcessID, Hcwnd: Cardinal;
procedure Attach;
begin
@AttachConsole := GetProcAddress(GetModuleHandle('kernel32.dll'), 'AttachConsole');
GetWindowThreadProcessId(FindWindow(nil,'C:\WINDOWS\system32\cmd.exe'),@mProcessID);
AttachConsole(mProcessID);
end;
function get(x, y: byte) : string;
const
SMB = 1;
var
chRead: Cardinal;
BufInfo: _CONSOLE_SCREEN_BUFFER_INFO;
lpCh : PChar;
Coord: _COORD;
begin
Hcwnd:=GetStdHandle(STD_OUTPUT_HANDLE);
GetConsoleScreenBufferInfo (Hcwnd, BufInfo);
GetMem(lpCh,SMB);
Coord.X:=x;
Coord.Y:=y;
lpch := '';
ReadConsoleOutputCharacter(Hcwnd,lpCh,SMB,Coord,chRead);
get:=string(lpCh^);
end;
var x, y : integer;
buf : array[0..24] of string;
begin
for y := 0 to 24 do
begin
for x := 0 to 79 do
buf[y] := buf[y] + get(x,y);
end;
for y := 0 to 24 do
writeln(buf[y]);
end.
0
당신이 Turbo Pascal 기능에 대해 이야기하고 있고 C/C++에서 사용할 수있는 비슷한 이름의 함수가 아니라고 가정합니다. (기능은 매우 유사하지만)
불행히도 Writeln
의 화면과 파일 버전이 달라, GotoXY
은 예약어 등입니다. 가장 좋은 방법은 I/O 호출을 내부적으로 전역 플래그를 기반으로 화면이나 파일로 보내는 공통 함수 호출로 대체하는 것입니다. 또는 개별 IF
문을 삽입하여 I/O가 발생하는 모든 곳에서 사용할 논리를 선택할 수 있습니다.
관련 문제
- 1. 파스칼 출력
- 2. Logcat 문제 (일시 중지, 버퍼, 출력 리다이렉션)
- 3. 파스칼 날짜의 파스칼
- 4. 파스칼 오류
- 5. 파스칼 - 신비 필드 증가
- 6. Python webapp2 : 리다이렉션
- 7. web.xml의 서버 측 리다이렉션?
- 8. 맥 미니 NAT 리다이렉션
- 9. gdb에서 입력 리다이렉션 (MinGW)
- 10. 리디렉션되지 않는 PHP 리다이렉션
- 11. 쉘에서 C++ 입력 리다이렉션
- 12. 언어 특정 리다이렉션
- 13. 자바 서블릿 삭제 리다이렉션
- 14. 쉘에서의 파이썬 리다이렉션
- 15. htaccess 301 봇의 리다이렉션
- 16. msvcprt 및 crt
- 17. CUDA : 커널 CRT 문서?
- 18. C++ - Visual Studio CRT
- 19. Visual C++ CRT 디버깅
- 20. CRT 및 WIN32 API
- 21. C++ CRT 메모리 누수
- 22. VC90 디버그 CRT 오류
- 23. 파스칼 - 파일에 쓰지 않음
- 24. 조합이있는 C의 파스칼 삼각형
- 25. 배열의 파스칼 오류
- 26. 하나의 루프에서 삼각형의 파스칼
- 27. 파이썬 재귀 파스칼 삼각형
- 28. 파스칼 DLL에는 함수가 없습니다.
- 29. 절차 처리 파스칼
- 30. 파스칼 케이스의 가장자리 케이스
예, 약 tp func. 그러나 GotoXY없이 서식이 손실됩니다. 대신이 http://msdn.microsoft.com/en-us/library/windows/desktop/ms684969(v=vs.85).aspx 함수를 사용해보십시오. – yuyoyuppe
어, 어떻게 파일에 쓸 때 "포맷"합니까? 선형 "표현"에 제약이 있습니다. –
알아,하지만 GotoXY는 콘솔 화면에서이 제한을 제거합니다. 아래의 내 솔루션을 참조하십시오. – yuyoyuppe