|
发表于 2012-4-4 17:36:38
|
显示全部楼层
不好意思。下面的代码我后来测试了一下,Windows中不行。而且我想,就算行也是要用到Text文件,也就是临时文件,也得写磁盘,不合你的要求。
看来你的方法应当时最好的了。实现一个ReadLn应当可行。你看是不是可以读入一个词(空格,回车或者逗号等分隔),然后try一下,看能否转换;应当还要判断一下输入参数的类型。
---------------
我花了些时间帮你翻了一下Free pascal的帮助文档。找到如下代码,好像是可以指定ReadLn读取的Pipe,应该有帮助。但能否真的使用,我不知道。看其包含的是Unix,不知道windows有没有这样的功能。我也没有测试代码。
关键字是 Pipe
Program Example36;
{ Program to demonstrate the AssignPipe function. }
Uses BaseUnix,Unix;
Var pipi,pipo : Text;
s : String;
begin
Writeln ('Assigning Pipes.');
If assignpipe(pipi,pipo)<>0 then
Writeln('Error assigning pipes !',fpgeterrno);
Writeln ('Writing to pipe, and flushing.');
Writeln (pipo,'This is a textstring');close(pipo);
Writeln ('Reading from pipe.');
While not eof(pipi) do
begin
Readln (pipi,s);
Writeln ('Read from pipe : ',s);
end;
close (pipi);
writeln ('Closed pipes.');
writeln
end. |
|