使用C#

时间:2017-02-15 23:19:32

标签: c#

我正在寻找一种方法来查找文本的一部分并使用C#更改文本背后的数字

我已经在.batch程序中使用它,但我想在visual studio中使它更合适。

这是一种文本文件,我需要能够更改X或/和Y的数字:(更改我的意思是在已经存在的数字中添加特定数字)

N1 G17 G90
N3 G54
N5 S24000
N7 M03
N9 G00 X2675.766 Y427.409 Z730
N11 G00 X2675.766 Y427.409
N13 G00 X2675.766 Y427.409
N15 G00 X2675.766 Y427.409 Z505
N17 F4000
N19 G01 X2675.766 Y427.409 Z447.5
N21 F4000
N23 G01 X2565.966 Y475.823 Z447.5
N25 F4000
N27 G02 X1852.832 Y871.38 Z447.5 I4373.42 J4575.032
N29 G03 X705.065 Y871.38 Z447.5 I1278.948 J28.138
N31 G02 X-8.069 Y475.823 Z447.5 I-1815.523 J4575.032
N33 M05
N35 M30

这就是批处理文件目前的工作方式。

@echo off
setlocal EnableDelayedExpansion
echo[
echo[
set /p file="file name? = "
echo[
echo[
set /p Xdir="X + :"
echo[
echo[
set /p Ydir="Y + :"


(for /F "tokens=1-4*" %%a in (%file%.nc) do (
   if "%%d" equ "" (
      echo %%a %%b %%c
   ) else (
      for /F "tokens=1,2 delims=X." %%C in ("%%c") do (
         set /A X=%%C+%Xdir%
         if "%%D" neq "" set "X=!X!.%%D"
      )
      for /F "tokens=1,2 delims=Y." %%D in ("%%d") do (
         set /A Y=%%D+%Ydir%
         if "%%E" neq "" set "Y=!Y!.%%E"
      )
      echo %%a %%b X!X! Y!Y! %%e
   )
)) > %file%_ar.nc
echo je Your new file " %file%_ar.nc " is created.
pause

在我的Visual Studio中我得到了: X和/或Y的2个文本字段,名为Xdir_btn,Ydir_btn 1 btn叫做Generate。名为Generate_btn 1个richtextBox。名为RichTextBox(当我打开它时,这是我的文本文件所在的位置)。 在线有enoguh教程可以查找和替换指定的文本,但不会更改指定文本后面的内容。

1 个答案:

答案 0 :(得分:1)

  

但不是要改变指定文本背后的东西。

试试这个正则表达式(?<=X)[0-9\.]+(?= ) 它将帮助您找到X背后的数字。

  

N9 G00 X 2675.766 Y427.409 Z730

您可以尝试MDN documentation。它将清楚地解释代码。