我是直接编写postscript的新手。
我正在读取文件,我正在使用read命令来解析符号。
我要检查的大多数符号长度为2个字符,一个长度为3个字符。我会将长度为3个字符的那个改为两个字符,但由于以下原因,这无济于事:
如果前两个符号匹配,我需要能够“查看”文件中的下一个字符,如果偷看的字符与我想要制作3个字符的符号不匹配则不能修改读取顺序
实施例: 将文本文本作为字符串:“AB3; ABB4;”
在这种情况下,我会读A,然后是B,因为两个字符在一起是“AB”,我需要看看读下一个字符是否会产生B ..如果没有,我不想修改我的阅读顺序,所以我可以正常进行代码提取值。如果是的话,我现在有了3个字符符号,可以继续正常提取值。
谢谢。
答案 0 :(得分:0)
Postscript没有unget
函数,因此您无法将一个字节推回到流上以便稍后再次读取它。但是,根据操作系统支持,Level 2 Postscript允许您重新定位文件。因此,您可以像这样实现peek
函数:
% file peek int true
% false
/peek {
dup fileposition exch dup % pos file file
read { %true: pos file int
3 1 roll exch setfileposition true
}{ %false: pos file
pop pop false
} ifelse
} def