将带有')'字符的字符串分配给postscript中的变量

问题描述 投票:0回答:3

我想将“asd)asd”这个字符串赋给变量。但每当我这样做时,它都行不通。

我有一个类似的代码与字符串像“asdasd”,并且工作。但每当我介绍')'字符时,它就会停止工作

%this works
%!PS-Adobe-1.0
/units (asdasd) def
/Times-Roman findfont 20 scalefont setfont
300 300 moveto units show
showpage

%this does not 
%!PS-Adobe-1.0
/units (asd)asd) def
/Times-Roman findfont 20 scalefont setfont
300 300 moveto units show
showpage
postscript
3个回答
2
投票

字符)是PostScript中的一个特殊标记,如果你想在字符串中使用它,有几种方法。首先,您可以使用十六进制字符串:

/units <61736429617364> def

或者,与其他语言一样,您可以在字符串中“转义”特殊标记。您可以在第3版PostScript语言参考手册的第29页中找到此描述。

/units (asd\)asd) def

1
投票

实际上有一种方法可以将asd)asd原样放在你的程序中,只要它只是一行(即,它没有新的行字符),你可以在任何{ }之外进行(即,你可以在proc中使用它:

currentfile 1000 string readline asd)asd
pop

你的字符串从readline之后的一个空格开始,直到该行的结尾。

要定义名称/units

/units currentfile 1000 string readline asd)asd
pop def

当然,根据需要调整字符串大小(示例中为1000)。


1
投票

查找“psrefman.pdf”(PostScript语言参考手册®,第二版),并阅读“第3章:语言”(第28页)中的“字符串”部分。一切都在那里:

在文本字符串中,\(反斜杠)字符被视为“转义”用于各种目的,例如包括不平衡括号,非打印字符和\字符本身。紧跟在\后面的字符决定了它的精确解释。

如果你更喜欢ps3refman.pdf(PostScript®语言参考,第三版),它可以在第29页,“语言”一章,“语法”一节,“ASCII编码”小节,“字符串”子小节,“文字文本字符串”一节。

© www.soinside.com 2019 - 2024. All rights reserved.