PostScript:“cvs”是否终止字符串缓冲区?

2024-05-07

使用时的一个想法cvs是通过重用字符串缓冲区来帮助垃圾收集器,例如

/s 5 string def
s 2 cvs %...
s 66 cvs %...

然而,当在循环中执行此类操作时,实际在缓冲区中找到的字符串是:

(-40.0)
(-30.0)
(-20.0)
(-10.0)
(0.0.0)
(10.00)
(20.00)
(30.00)
(40.00)

因此,当转换结束时,字符串似乎并未终止(在 GhostScript 9.26 中找到)。不幸的是,GhostScript 参考手册对于字符串是否会被终止有些沉默。

所以问题是:预期的行为是什么?

当尝试类似的事情时val str dup 2 0 put cvs结果是(如图所示==):

(-40.0)
(-30.0)
(-20.0)
(-10.0)
(0.0\0000)
(10.00)
(20.00)
(30.00)
(40.00)

那么,重新使用字符串缓冲区到底是一个坏主意吗?

更新1:

我发现放入堆栈的值是正确的,而缓冲区中的值则不正确:

val s1 cvs pop            % leaves the wrong value in s1
val s1 cvs /s2 exch def   % leaves the correct value in s2

Postscript 字符串不是 C 字符串。特别是,它们不是以 NUL 结尾的;相反,它们具有明确的长度,就像 Postscript 数组一样。字符串(或数组)一旦创建就无法修改其长度,但可以创建子字符串(或子数组)的视图(Postscript 术语中的“间隔”)。区间不是副本;它与底层字符串(数组)共享存储。

cvs接受一个字符串(用作缓冲区)作为参数,用转换为字符串的值参数覆盖缓冲区的初始段,并且返回该段作为区间。 (参见 PLRM 第 568 页;我懒得重新输入它。)如果您不希望转换后的值末尾有垃圾,您将需要使用该返回值。 (但是只有当您不将底层缓冲区用于其他用途时,返回的值才有效。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PostScript:“cvs”是否终止字符串缓冲区? 的相关文章

  • 如何将从 date_parse 返回的日期数组转换回日期字符串

    我有一个由 php 例程 date parse 返回的格式的日期数组 我需要将此日期数组转换回日期字符串 我正在寻找一个与 date parse 例程相反的函数 这是一个接受日期数组作为参数并返回日期字符串的函数 http php net
  • 从 PHP 中的字符串中删除转义序列

    我正在使用一个已转义字符序列的 mysqldump 文件 我需要知道字符串的长度作为其数据库值 但转储中包含转义字符 这会增加字符串的长度 我用过stripslashes 它正确地取消转义单引号和双引号 但它不会触及 r n 我担心其中还有
  • Objective-C 使用字符串池吗?

    我知道Java https stackoverflow com questions 3801343 what is string pool in java and C http msdn microsoft com en us librar
  • 如何在 C++ 中将 CString 转换为 double?

    我如何转换CString to a double在 C 中 Unicode 支持也很好 Thanks A CString可以转换为LPCTSTR 这基本上是一个const char const wchar t 在 Unicode 版本中 知
  • 将字符串转换为双精度 - VB

    VB中有没有一种有效的方法来检查字符串是否可以转换为双精度型 我目前正在尝试将字符串转换为双精度型 然后查看它是否引发异常 但这似乎减慢了我的申请速度 Try if number then format it current CDbl x
  • 如何在字符串vba中包含引号

    我想存储以下文本 Test1 Monday Test Abcdef 全部在字符串中包含引号 我知道要在字符串中包含引号 我必须包含 之前 但在这里这不是一个很好的解决方案 因为我在文本中有太多这样的解决方案 知道如何一次完成这一切吗 您有两
  • NHibernate 获取 & 字符串 Id

    我在 NHibernate 上有一个分配了字符串 Id 的实体 并且在通过 Id 获取实体时遇到了一些问题 例子 假设有这样的数据库记录 Id Description AAA MyDescription 现在 如果我使用搜索 ID aaa
  • 清理 .txt 并计算最常见的单词

    我需要 1 从停用词列表中清除 txt 我将其放在单独的 txt中 2 之后我需要统计最常见的 25 个单词 这是我为第一部分想到的 usr bin python coding iso 8859 15 import re from coll
  • Swift:检查 UISearchBar.text 是否包含 url

    如何检查 UISearchBar text 是否包含 URL 我想做这样的事情 if searchBar text NSTextCheckingType Link 但我收到错误 String is not convertible to NS
  • 为什么在 C# 中使用 String.Concat()?

    我想知道这个问题有一段时间了 为什么使用String Concat 而不是使用 操作员 我明白了String Format因为它是一个空洞使用 运算符并使您的代码看起来更好 例如 string one bob string two jim
  • 十六进制字符串的运行长度编码(包括换行符)

    我正在使用以下方法实现游程长度编码GZipStreamC winforms 应用程序中的类 数据以一系列由换行符分隔的字符串形式提供 如下所示 FFFFFFFF FFFFFEFF FDFFFFFF 00FFFFFF 在压缩之前 我将字符串转
  • 什么是仅匹配空字符串的正则表达式?

    有很多关于正则表达式的帖子来匹配潜在地空字符串 但我找不到任何提供正则表达式的字符串only匹配一个空字符串 我知道 将匹配任何行的开头并且 将匹配任何行的结尾以及字符串的结尾 像这样 匹配的内容远不止空字符串 如 n foobar n n
  • 将字符串连接到python列表中所有元素的末尾

    我想知道如何将字符串连接到列表中所有元素的末尾 例如 List1 1 2 3 string a output 1a 2a 3a 在列表理解和使用中重建列表str format在两个参数上 gt gt gt string a gt gt gt
  • 获取两个字符串之间的公共部分c# [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我需要的是获取两个单词之间的共同部分并获取差异 例子 场景1 word1 感言 word2 Test 将返回 公共部分Test 不同之
  • 在C#中的某个单词之后/之前过滤字符串中的值

    我有很长的字符串 它们是 IMAP 请求的响应 我想从中提取一些值 它通常的格式类似于 x someword 或 someword x 如何获取某个单词 已知 的x 它可以超过一位数字 响应的每一 行 如下所示 x someword r n
  • Golang中按长度分割字符串

    有谁知道如何在 Golang 中按长度分割字符串 例如 每 3 个字符分割 helloworld 那么理想情况下它应该返回一个 hel low orl d 数组 或者 一个可能的解决方案是在每 3 个字符后附加一个换行符 所有的想法都非常感
  • 将 Excel 范围转换为 VBA 字符串

    我想将给定范围内的值转换为 VBA 字符串 其中原始单元格值由任何选定的列分隔符和行分隔符分隔 分隔符可以是一个字符或更长的字符串 行分隔符是行末尾的字符串 该字符串应该像我们从左上角 从左到右 到右下角读取文本一样完成 以下是范围 A1
  • 如何衡量两个字符串之间的相似度? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 给定两个字符串text1 and text2 public SOMEUSABLERETURNTYPE Compare string t
  • XSL字符串多重替换功能

    如何让这个函数进行多重替换 经验 替换aaa with 111并替换bbb with 222 etc
  • 执行 Boyer-Moore 模式匹配时是否必须考虑编码?

    我即将实现 Boyer Moore 模式匹配算法的变体 具体来说是星期日算法 我问自己 我的字母表大小是多少 它是否取决于编码 可能的字符数 或者我可以假设我的字母表由 256 个符号组成 一个字节可以表示的符号数 在许多其他情况下 将字符

随机推荐

  • 如何包含塞尔维亚语的 2 种变体?带有拉丁字母和西里尔字母

    我有一个 Android 应用程序 我想翻译成塞尔维亚语 并且我想要该语言的两种变体 拉丁字母和西里尔字母 我尝试过这个变体 value sr rRS Latn value sr Latn value sr rRS Cyrl value s
  • 登录成功后如何开始新的活动?

    我想在登录成功后开始一项新活动 也就是说 当登录正确时 新的活动应该自动启动 我不知道在哪里提到启动活动 请帮我解决这个问题 我是 Android 新手 这是我的代码 public class BackgroundTask extends
  • UIScrollView 移动到导航和状态栏下方

    我有包含滚动视图的视图 当视图显示时 图像会以全屏 320x480 形式显示 隐藏状态栏和导航栏 当我点击屏幕时 状态和导航栏出现在屏幕上 但是这个东西将 UIScrollView 移到了导航栏下方 我希望状态和导航栏显示在我的滚动视图上
  • 如何在 IntelliJ IDEA 13 中创建 JAXB 项目?

    我正在学习JAXB 我需要知道如何在 IntelliJ IDEA13 中为 JAX B 创建一个简单的 java 项目 如果有人有想法 请更新我并使用 IDEA 的任何插件更新我 Thanks 创建项目时 您无需执行任何特殊操作 只需一个简
  • 像在 Windows 7 中一样在进度条中进行一些渐变无限移动

    我想知道是否可以仅使用 CSS3 功能在 div 内从左到右无休止地进行渐变移动 不需要支持所有浏览器 我只是想尝试一下 示例是蓝色进度条顶部的闪亮效果 举一个例子表示赞赏 使用这个CSS你可以让渐变无限移动 基于link http www
  • 是否有更好的方法来实现可继承的方法,该方法返回继承该类类型的对象?

    我正在尝试创建一个基类 它指定一个返回的方法 比如它自己类型的列表 我希望这个方法能够在继承类上正确工作 即 返回继承类的列表 这是我能想到的唯一方法 public abstract class Base
  • Postgres 在并发更新插入时出现死锁

    我们有一个从数据流中读取信息并将该信息更新到数据库中的应用程序 数据是 Google Drive 上发生的变化 这意味着影响相同对象的许多事件可能会非常接近地发生 将此信息更新插入数据库时 我们遇到了死锁 日志中显示的内容如下 我已经重建并
  • Java AWT/Swing:获取有关窗口位置/大小变化的通知

    我有一个窗口 我希望在位置或大小发生变化时收到通知 哪种类型的听众最适合 WindowListener不适合我 您可以使用组件监听器 http docs oracle com javase tutorial uiswing events c
  • Django 说端口已被使用

    当我运行 Django 时runserver命令显示端口已在使用中 所以每次我都需要杀死使用该端口的进程并再次运行服务器 谁能给我一个永久的解决方案 您可以使用另一个端口 因为可能是port您正在使用的有一些问题 python manage
  • 通过反射获取给定类的可访问方法列表

    有没有办法获取给定类可访问 不一定是公共 的方法列表 有问题的代码将属于完全不同的类 Example public class A public void methodA1 protected void methodA2 void meth
  • 无法在 Mac 上将 JanusGraph 连接到本地 Cassandra

    我已在 Mac OS X 10 11 6 上安装并运行 Cassandra 3 11 1 跑步cqlsh在终端中打印以下消息 Connected to Test Cluster at 127 0 0 1 9042 cqlsh 5 0 1 C
  • Android 在 ListView 中获取精确的滚动位置

    我想获得 ListView 滚动的确切像素位置 不 我指的不是第一个可见位置 有办法实现这一点吗 好的 我找到了一个解决方法 使用以下代码 View c listview getChildAt 0 int scrolly c getTop
  • 内部框架与新的 C# 技术

    如果我们开发了自己的 ORM 框架 并且该框架多年来运行良好 那么我们为什么要学习和使用全新的 net 技术 例如LINQ or Entity Framework or NHibernate or CSLA NET对于我们即将进行的软件项目
  • 使用 Apache POI 将结果集转换为 Excel (*.xlsx) 表

    我正在尝试写结果集到 Excel xlsx 表使用 Apache Poi Office Excel 中的无效表对象错误 但是 即使它写入 Excel 文件时没有任何错误 但当我尝试在 Office Excel 2013 中打开它时 它会显示
  • 如何确定 Windows 当前是否正在播放任何声音?

    如何确定 Windows 当前是否正在通过主音频设备播放任何声音 我需要知道 这样我才能让我的程序自动调节音量 您可以使用 CSCore 在这里下载 gt http cscore codeplex com http cscore codep
  • 使用 matplotlib 显示网格中的值

    我正在尝试为一些数据生成热图 我的代码如下所示 data basis 2007 2008 1 2 2 3 4 2 0 2 2 3 4 1 2 5 4 5 8 1 2 5 5 4 3 6 6 1 4 5 9 x header data 0 1
  • 运行命令后存在来自 rocker/r-ver:4.0.4 的容器

    这是我的 Dockerfile FROM rocker r ver 4 0 4 在 cmd 中我构建 docker build t myfolder myimage 它塑造的形象很好 然后我跑 docker run myfolder myi
  • 使用 OAuth2 对应用程序*和*网站进行身份验证

    我正在开发一个主要通过应用程序访问的网站 我想使用 OAuth2 进行用户注册和身份验证 由于它是一个 Android 应用程序 我将开始使用 Google 的 OAuth2 东西 因为它在 Android 上提供了一个不错的 UI 谷歌表
  • 在 PHP 中生成 Excel 输出的最佳方法是什么? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 还有其他类似 PHPExcel 的 PHP 组件吗 有一些类可以生成 PHP Excel 文件 真正的 Excel 文件 而不是 csv
  • PostScript:“cvs”是否终止字符串缓冲区?

    使用时的一个想法cvs是通过重用字符串缓冲区来帮助垃圾收集器 例如 s 5 string def s 2 cvs s 66 cvs 然而 当在循环中执行此类操作时 实际在缓冲区中找到的字符串是 40 0 30 0 20 0 10 0 0 0