gpt4 book ai didi

algorithm - PostScript 的读取字符串 : Is there a more efficient way to parse lines?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:52:04 25 4
gpt4 key购买 nike

我的一个非常古老的解析输入行的 PostScript 代码是这样的:

/buff 1 string def      % check for line wrap every character
/EOLchar (\n) def % line feed

{ %loop
currentfile buff readstring exch
dup EOLchar eq
{ %ifelse
%...
}
{ %else
%...
} ifelse
not { %if readstring found EOF
exit % end of file
} if
} loop

是否有更有效的方法来读取整行以进行进一步处理?

我想将数据嵌入到文件中,每一行都描述一个线段。每行由多个数字字段组成,由 TAB 字符分隔(因此我会将这些行拆分为字段,并将字段字符串转换为 intreal 以便于处理)。

当然我可以在外部转换绘图数据(例如转换为 PostSript 数组),但我的想法是为每个数据文件添加一些固定的神奇 PostScript header ,然后它将呈现数据...

最佳答案

更像这样的东西怎么样?readline 为您处理行(最多由解释器定义的字符串容量)。 token 处理跳过空格并将数字适本地转换为实数或整数。

另请注意,文件读取运算符的 bool 结果可用于提前退出循环,这似乎很有效。

/buf 65535 string def
/f currentfile def
{
f buf readline not {exit} if
{ token {exch}{exit} ifelse } loop
{lineto} stopped {moveto} if
} loop
100 200
300 400
500 600

关于algorithm - PostScript 的读取字符串 : Is there a more efficient way to parse lines?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56472993/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com