先谢谢大家的关注!
问题:
将文件中含“N”和“ F”字符的行合并到下一行
......
N2 F1000.0000
N3 X29.31016 Y27.67405 Z-15.00000 I0.000000 J0.000000 K1.000000
N4 X29.86335 Y29.54488 Z-15.00000 I0.000000 J0.000000 K1.000000
N5 X29.65850 Y31.48499 Z-15.00000 I0.000000 J0.000000 K1.000000
N6 X28.72679 Y33.19903 Z-15.00000 I0.000000 J0.000000 K1.000000
N47 F1000.0000
N48 X-23.83488 Y20.89310 Z-5.00000 I0.000000 J0.000000 K1.000000
N49 X-26.27462 Y18.00000 Z-5.00000 I0.000000 J0.000000 K1.000000
......

解决方案 »

  1.   

    这样?
    N2 F1000.0000 N3 X29.31016 Y27.67405 Z-15.00000 I0.000000 J0.000000 K1.000000
      

  2.   

    读一行,然后判断,如果不含“N”和“ F”字符,就写到文件
    如果包含“N”和“ F”字符,就不写文件,继续读原文件,把读到的和前面的内容拼接起来出力。
      

  3.   


    这样就可以:N2 F1000.0000 N3 X29.31016 Y27.67405 Z-15.00000 I0.000000 J0.000000 K1.000000谢谢!
      

  4.   

    用Line input 读一行数据
    连行=false
    if instr(数据,"F") then
     if instr(数据,"N") then
       连行=true
     endif
    endif
    if 连行 then 
    print #2,数据 ; '注意,这里有个分号
    else
    print #2,数据
    endif
    读下一行#2,是新生成的文件.
      

  5.   

    如果这样:N3 X29.31016 Y27.67405 Z-15.00000 I0.000000 J0.000000 K1.000000 N2 F1000.0000 还有什么好办法?谢谢!
      

  6.   

    str = ""  '循环外,放数据用用Line input 读一行数据
    连行=false
    if instr(数据,"F") and instr(数据,"N") then
       连行=true
    endif
    if 连行 then 
      str = 数据
    else
      str = str + 数据  (或者str = 数据+str)
      print #2,数据
      str = ""  '打印好后,清空
    endif
    读下一行#2,是新生成的文件
      

  7.   

    哈哈,nc数控加工程序,这个我在行,他的目的是使程序的行数少些。可你转换成:
    N3 X29.31016 Y27.67405 Z-15.00000 I0.000000 J0.000000 K1.000000 N2 F1000.0000 
    恐怕不是你的目的吧?因为行里包含有 ‘N2’,在加工程序中这就是多余字符串了。
    ==========
    我猜你的原意是:将类似下面两行
    N2 F1000.0000
    N3 X29.31016 Y27.67405 Z-15.00000 I0.000000 J0.000000 K1.000000
    转换成:
    N3 F1000.0000 X29.31016 Y27.67405 Z-15.00000 I0.000000 J0.000000 K1.000000
    或者转换成:
    N3 X29.31016 Y27.67405 Z-15.00000 I0.000000 J0.000000 K1.000000 F1000.0000
    均可
      

  8.   


    谢谢各位!刚开始学“软件程序开发”。mmyyxx88:
    是的,是数控程序。我主要做数控加工编程及仿真软件应用的。现在有时间玩玩“真正的编程”。
      

  9.   

    anole2001(anole),不好意思,我刚知道结贴,刚学会加分!