2017-10-20 87 views
0

换号,我试图改变这是写在下面的顺序我的输入文件的XYZ数据:在记事本中的一些行++

8455 529 8 -0.141000 24.508381 8.604702 16.976215 

最后三个数字是XYZ。

但每次出现问题。首先,CR LF将在数字之间移动并更改值。然后我试图处理它们,但似乎删除了一些行。

我想这样做:

我有9600线,如在记事本above_mentiones线++,我想从一个不同的文件修改的最后三个数字与其他一些数字。我应该怎么做,记事本+ +文件中的这些行和其他行不会受到影响?

+0

你知道如何编程吗?我可能会用一个小的自定义脚本(Javascript或Python)来解决这个问题 – Konstantine

+0

我对python非常陌生,但我认为我可以多解释一下。 –

+0

那么这个想法是打开包含你的坐标的文件,遍历每一行(例如使用for循环),并采取每一行,并使用空格字符拆分它作为分隔符。这将给你一个7值的列表,其中最后3个分别是xyz。然后,我会再次采用该行,并使用该语言的字符串替换函数来相应地替换每个X,Y,Z值。这个解释大部分是算法化的,但我并不熟悉Python来告诉你究竟要运行哪些命令。 – Konstantine

回答

0

我希望我能理解你,我不知道如何在记事本++中做类似的事情,但我建议使用工具q在文本文件上执行SQL选择。

如果你的文件1貌似

a e f g 
a e f g 
8455 24.508381 8.604702 16.976215 
8456 24.508381 8.604702 16.976215 
8457 24.508381 8.604702 16.976215 
8458 24.508381 8.604702 16.976215 
8459 24.508381 8.604702 16.976215 
8460 24.508381 8.604702 16.976215 

和文件2的样子

a b c d e f g 
a b c d e f g 
8455 529 8 -0.000000 24.000000 8.000000 16.000000 
8456 529 8 -0.000000 24.000000 8.000000 16.000000 
8457 529 8 -0.000000 24.000000 8.000000 16.000000 
8458 529 8 -0.000000 24.000000 8.000000 16.000000 
8459 529 8 -0.000000 24.000000 8.000000 16.000000 
8460 529 8 -0.000000 24.000000 8.000000 16.000000 

可以使用

q.py -H "SELECT file02.a, file02.b, file02.c, file02.d, file01.e, file01.f, file01.g from ..\q\01.txt file01 JOIN ..\q\02.txt file02 ON file01.a=file02.a">03.txt 

得到

a b c d e f g 
8455 529 8 -0.000000 24.508381 8.604702 16.976215 
8456 529 8 -0.000000 24.508381 8.604702 16.976215 
8457 529 8 -0.000000 24.508381 8.604702 16.976215 
8458 529 8 -0.000000 24.508381 8.604702 16.976215 
8459 529 8 -0.000000 24.508381 8.604702 16.976215 
8460 529 8 -0.000000 24.508381 8.604702 16.976215 

双头是强制q将值视为字符串的技巧 - 也许有一个我不知道的参数。