我正在尝试将C
源文件从 vms alpha 复制到 Windows 机器,以便更轻松地编辑代码。(VMS 编辑器只是一个文本编辑器,最好有语法高亮等)
我可以使用 Exceed FTP 复制它,这可以处理带有 vms 具有的版本后缀的重复文件名的问题:
- 文件.c;1
- 文件.c;2
- Flle.c;3
但是当我打开一个我传输的文件时,所有的换行符都丢失了,整个文件只有一行。
任何人都可以推荐解决方案或提供任何提示吗?
提前致谢
附言。我需要能够将文件复制回 vms 并仍然保持格式。
现在可能已经不感兴趣了,但如果您仍然想知道 FTP 传输后的“单行”文本文件。
简短的回答:在您的 FTP 客户端中将 FTP 传输模式强制为 ASCII(或文本)。这将确保您传输的 C 文件(实际上是所有文件)被视为文本,否则它们被假定为二进制,因此您得到一个字节流。
长答案:有 2 种 FTP 传输模式:ASCII/文本和二进制/图像。默认值有时是 clent 或特定于服务器的。
许多客户端具有自动模式,可以解释文件扩展名以设置正确的传输模式(.TXT、.CSV 等)
当您通过 FTP 客户端访问 VMS 服务器时,通常 [Win-based] 客户端不是 VMS 友好的,因此它无法正确解析文件列表。因此,它会被附加到“通常”文件名的版本号混淆:filename.ext;ver ==> file.c;1
因此,它没有看到 .C(并假设为文本),而是看到 .C;1 并认为它是二进制的。
我使用 Filezilla FTP 客户端到/从 VMS 并且到目前为止它做得很好(尽管版本支持不是我有时想要的)。
每次要编辑时,将文件复制到 Windows 桌面或从 Windows 桌面复制文件很快就会过时。
您也许可以实现更好的替代方案。VMS 下有一些软件允许将VMS 目录树视为windows 下的“网盘”。一旦你设置好它,并设置你的 windows 来识别网络磁盘,你可以直接用 windows 文本编辑器打开文件,而不用将它从 VMS 移动到 windows。您还可以浏览目录树,它看起来像一棵文件夹树。
当您从文本编辑器发出保存时,保存的副本会取代 VMS 领域中的先前版本。它在 RMS 格式和嵌入的换行符格式之间正确调解。为此,它比 FTP 方便得多。
快速谷歌搜索后,我认为 VMS 软件的名称是 PATHWORKS。但我不确定。
我对此有几点看法
PATHWORKS 相当陈旧并且(据我记得 - 我不使用它)不能很好地与最近的 Windows 版本一起使用,例如支持 Active Directory。在过去的几年里,HP 已经将 SAMBA 移植到了 VMS,如果您想让 Windows 机器可以看到磁盘区域,这就是您要走的路。应该很容易在 HP 网站上找到。
如果您想尝试 FTP/SFTP 路由,我会尝试 SFTP 并选择至少 8.2 的 VMS 版本。此时 TCPIP 套件已被重写(或从 Unix 版本报告)。
VMS 支持多种文本文件格式。除了上面描述的复杂记录结构外,还有与 unix 文件相同的 STREAM_LF 和 STREAM_CRLF
我发现了一些关于OpenVMS 文本文件结构的有趣信息。这与我对 VMS 如何处理文本文件的模糊记忆相对应。它们不像 Windows 和 Unix 系统那样存储为字节流,而是存储为一系列记录(每条记录都是一个文本行)。记录可以是固定宽度或可变宽度。读取文件的任何内容都负责“纸张控制”,这些天我们通常称之为换行符。
您可以检查 Exceed FTP 中的选项,以确保您正在以适当的 ASCII 模式传输文件。您可能还需要在 FTP服务器上设置特殊选项,以便在适当的模式下读取和写入文件。
我不是专家——让我们把它公之于众;)
我在将文件从 OVMS Alphaserver 传输到 Win7 桌面时遇到了类似的问题,因此我可以迁移到 SQL。FTP [Attachmate & WIn CLI] 在 WinNT 下运行良好。我怀疑 Win7 不喜欢 OVMS 文件的 name.ext;version 格式。
Filezilla - 不起作用。
腻子 - 不起作用
Window CLI FTP - 不工作 [部分文件传输;超时并截断文件]。
使用 Attachmate 的“Reflections for the Web 2011”来模拟 Vax 终端 - 工作正常。认为我将不得不回到 Attachmate 寻求帮助,但部分受到我们的 [Australian Fed Govt] IT 服务的影响,该服务拥有最终决定权
一些编辑器,例如 Mac 上的 BBEdit,支持通过 FTP/SFTP/等直接打开/保存文件。(BBEdit 还支持在不同平台上使用的各种不同的行尾,这将有助于解决您的其他问题)。我希望必须有一个具有类似功能的 Windows 编辑器——我使用 Windows 的同事都对一个叫做 CodeWrite(或 CodeWright?)的东西赞不绝口,所以我想我会看看类似的东西。