所以我有个奇怪的问题。我已经写了一个重新格式化数据文件的脚本。我基本上是用正确的列顺序、间距等来创建新的文件。然后我unix2dos这些文件(我格式化这些文件的程序是窗口的DIPS,我假设这些文件应该是ansi)。但是,当我去打开DIPS程序中的文件时,会发生错误,并且文件不会打开。
当我通过DIPS程序创建相同类型的数据文件并在便笺簿中打开它时,它与我用脚本创建的数据文件完全匹配。
另一方面,如果我首先打开用我的脚本在Kedit中创建的数据文件,保存它们,然后在DIPS程序中打开它们,一切都正常。
我的问题是,在Kedit中,储蓄可能做什么,而unix2dos却做不到?
(同样,如果我尝试使用便笺簿或字垫来保存而不是Kedit,文件不会以DIPS打开)
下面是使用unix中的diff命令创建的
“1,161,16
*此文件由Windows的Dips生成。
*以下两行是此文件的标题。
巴拿马科布雷
钻孔B 11106-GT
横穿数:0
--
*此文件由Windows的Dips生成。
*以下两行是此文件的标题。
巴拿马科布雷
钻孔B 11106-GT
横穿数:0
18c18
--
440 c440
--
第442c442号
-1
-1
“
任何帮助都将不胜感激!谢谢!
发布于 2012-03-28 22:02:39
好吧!弄明白了。
简单地说,当您unix2dos您的文件,您不会删除任何空格字符之间的最后一个字母在一行和行中断字符。在Kedit中保存时,需要将行中的最后一个字母与断行字符之间的空格去掉。
在我的脚本中,我有一个糟糕的编程实践,在其中我写了这样一个字符串;
“这是一个示例字符串”>> outfile.txt
字符计数为32,如果您可以看到断线字符(chr(10)),则行将读取;
这是一个示例字符串。
如果您使用unix2dos outfile.txt,则该行看起来与上面相同,但具有不同的断线字符。但是,当您将文件放入Kedit并保存它时,现在字符计数为25,行如下所示;
这是一个示例字符串。
这是因为Kedit没有保留行尾的空格。它将返回或换行字符放置在最后一个字母或一行中的“非空格”字符。
因此,读取文字输入(如DIPS (我猜)或更广泛使用的AutoCAD脚本)的程序在返回字符之前的额外空格将有一个真正的问题。基本上,在AutoCAD脚本中,行中的空格被视为返回字符。因此,如果在一行的末尾有10个额外的空格,它将被视为10次返回,而不是您可能想要的。
哦,如果这帮了你的忙,或者它是好的,请给我投一票!
https://stackoverflow.com/questions/9877188
复制相似问题