一个文本txt
G01 X0 Y1.5
G03 X-1.5 Y1.5 I-1.5 J0
G01 X-1.5 Y0字符串读每行的内容,我要把字符串里面的值拿出来
比如第一行G就把1拿出来,X就把0拿出来,Y就把1.5拿出来
我用了个函数
比如我现在拿X的值,
double X=double.Parse(read.Substring(read.IndexOf("X")+1,1));
我把X的值拿出来了,但是第二行X的值是-1.5 我怎么把这个Length长度计算出来呢(就是说不能写死的长度);
读第一行字符串的时候 我长度写的是1,第二行我不可能写4把。怎么解决他的通用性质呀。!有更好的函数处理它吗?小弟谢谢各位了!!!!!!
G01 X0 Y1.5
G03 X-1.5 Y1.5 I-1.5 J0
G01 X-1.5 Y0字符串读每行的内容,我要把字符串里面的值拿出来
比如第一行G就把1拿出来,X就把0拿出来,Y就把1.5拿出来
我用了个函数
比如我现在拿X的值,
double X=double.Parse(read.Substring(read.IndexOf("X")+1,1));
我把X的值拿出来了,但是第二行X的值是-1.5 我怎么把这个Length长度计算出来呢(就是说不能写死的长度);
读第一行字符串的时候 我长度写的是1,第二行我不可能写4把。怎么解决他的通用性质呀。!有更好的函数处理它吗?小弟谢谢各位了!!!!!!
G01,第1个字符是G,再把G去掉,就是后面的值
X0
{
string [] line=txt.split("\r\n");
string [] fds= line[row].split(" ");
for(int i=0;i<fds.length;i++){
if(fds[i].subtring(0,1)==V){
return double.Parse(fds[i].substring(1));
}
}
return 0;
}
G = atoi(strName.Mid(strName.Find("G")+1,128));
都不会有跃界,这个我添多了报错,写少了值又不对
分字符串我试过了。
问题是我还要去做判断 他是否是G 或M
if (read.Contains("G") == true)
{
G=int.Parse(read.Substring(read.IndexOf("G") + 1, 2));
}
G20
G91
G99 X1 Y0 I0 J0
G41
M07
G01 X0 Y1.5
G03 X-1.5 Y1.5 I-1.5 J0
G01 X-1.5 Y0
G01 X0 Y8.5
G01 X1.5 Y-0
G02 X10 Y-10 I-0 J-10
G01 X0 Y-1.5
G01 X-8.5 Y0
M08
G40
M02
这怎么分割呢??我觉得那个不是很好用·
MessageBox.Show(reg.Match("G01 X0 Y1.5").Value);
Regex reg = new Regex(@"(?<=(X\d*)).*(?=Y)");
MessageBox.Show(reg.Match("G01 X0 Y1.5").Value);
Regex reg = new Regex(@"(?<=Y\d*).*$";
MessageBox.Show(reg.Match("G01 X0 Y1.5").Value);
string[] str = new string[4]; for (int i = 0; i < 4; i++)
{
str[i] = iniStr.Substring(1, iniStr.IndexOf(' ')-1);
iniStr = iniStr.Substring(iniStr.IndexOf(' ') + 1);
} for (int i = 0; i < str.Length; i++)
{
Console.Write(str[i].ToString());
}
Console.Read();输出为:03-1.51.5-1.50
Regex reg = new Regex(@"(?<=G).*(?=X)");
MessageBox.Show(reg.Match("G01 X0 Y1.5").Value);
Regex reg2 = new Regex(@"(?<=(X\d*)).*(?=Y)");
MessageBox.Show(reg2.Match("G01 X0 Y1.5").Value);
Regex reg3 = new Regex(@"(?<=(Y\d*)).*");
MessageBox.Show(reg3.Match("G01 X0 Y1.5").Value);
if (strName.Find("G") != -1)
{
G = atoi(strName.Mid(strName.Find("G")+1,128)); if ( G==0 || G==1 )
{
CutBufferCounter++;
LastGCode=G;
X = atof(strName.Mid(strName.Find("X")+1,128));
X = X*TempScale;
Y = atof(strName.Mid(strName.Find("Y")+1,128));
Y = Y*TempScale;
}
…………………………………………………………
你用Y的索引-X的索引-1(减去空格的长度)
*.Substring(read.IndexOf("l") + 1, read.IndexOf("r") - read.IndexOf("l") - 1);//取303
呵呵·zhangyanyang谢谢你了啊··下班了··