You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Dyalog APL在Win10下使用⎕NGET读取txt文件结果异常问题

Dyalog APL 读取TXT按行拆分问题解决

问题原因

你对⎕NGET的参数规则和返回值结构理解存在偏差,是运行结果不符合预期的核心原因:

  • ⎕NGET标准调用的返回值为3元素向量,结构为(文件内容 编码格式 换行符类型),你直接将完整返回值赋值给input变量,拿到的是包含三类信息的三元数组,不是纯文件内容。
  • 你传入的第二个参数1是编码指定参数(对应UTF-16编码),并不是控制按行拆分的开关,⎕NGET本身默认不会自动按行拆分内容,只会返回整个文件的单一字符向量。
  • 你后续调用⍕input[1]的操作中,input[1]本身已经是未拆分的整段字符向量,⍕格式化操作只会打平内容,不会自动做行拆分。

可行解决方案

两种常用方式实现你要的「每一行存储为数组一个元素」的需求:

  • 方案1:⎕NGET读取后手动按换行符拆分
⍝ 先拆解返回值拿到纯内容、换行符标识
content encoding newline ← ⎕NGET 'input.txt' 1
⍝ 用换行符作为分隔符拆分内容为行向量
lines ← newline (≠⊆⊢) content
  • 方案2:直接用⎕CSV按行读取,更适配你的场景
⍝ 空字符作为分隔符、0代表保留原始字符类型不做自动转换,直接返回每行的字符向量
lines ← ⊃⎕CSV 'input.txt' '' 0

内容的提问来源于stack exchange,提问作者erbsenhexler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 19:45:07