2015-12-02 64 views
0

中的字符串當我打開一個文件(我自己創建的)時,我需要從出現槽的文本字符串中使用一些東西。我想用文本的一些部分作爲座標來繪製圖形。打開一個文件並使用

private void openToolStripMenuItem_Click(object sender, EventArgs e) 
    { 
     char XgetalEen; 
     char XgetalTwee; 
     char YgetalEen; 
     char Ygetaltwee; 
     string XgetalSamen = ""; 
     string YgetalSamen = ""; 
     int coordinaatX; 
     int coordinaatY; 
     DialogResult lel = MessageBox.Show("Do you want to close this file?", "OPEN", MessageBoxButtons.YesNo, MessageBoxIcon.Question); 
     if (lel == DialogResult.Yes) 
     { 
      Open(); 
      foreach(string s in Gcowde) 
      { 
       XgetalEen = s[5]; 
       XgetalTwee = s[6]; 
       YgetalEen = s[8]; 
       Ygetaltwee = s[9]; 
       XgetalSamen += XgetalEen + XgetalTwee; 
       YgetalSamen += YgetalEen + Ygetaltwee; 
       if(XgetalTwee==' ') 
       { 
        XgetalSamen = ""; 
        XgetalTwee = '0'; 
        XgetalSamen += XgetalTwee + XgetalEen; 
        YgetalEen = s[7]; 
        Ygetaltwee = s[8]; 
        YgetalSamen = ""; 
        YgetalSamen += YgetalEen + Ygetaltwee; 
       } 
       if(Ygetaltwee==' ') 
       { 
        Ygetaltwee = '0'; 
        YgetalSamen = ""; 
        YgetalSamen += Ygetaltwee + YgetalEen; 
       } 
       MessageBox.Show(XgetalSamen + " " + YgetalSamen); 
       Int32.TryParse(XgetalSamen, out coordinaatX); 
       Int32.TryParse(YgetalSamen, out coordinaatY); 
       currentLocation.X += coordinaatX; 
       currentLocation.Y += coordinaatY; 
       Coord.Add(new Point(currentLocation.X, currentLocation.Y)); 

      } 
      drawerryting(); 
     } 
    } 

    public void Open() 
    { 
     Gcowde.Clear(); 
     listBox1.Items.Clear(); 
     Coord.Clear(); 
     werkVlak.Clear(Color.Black); 
     Coord.Add(new Point(pictureBox1.Width/2, pictureBox1.Height/2)); 
     drawerryting(); 
     OpenFileDialog openFileDialog1 = new OpenFileDialog(); 
     if (openFileDialog1.ShowDialog() == DialogResult.OK) 
     { 
      StreamReader sr = new StreamReader(openFileDialog1.FileName); 
      string errything = sr.ReadToEnd(); 
      string charAdded = ""; 
      foreach (char s in errything) 
      { 

       if (s == '\n') 
       { 
        Gcowde.Add(charAdded); 
        charAdded = ""; 
       } 
       else 
       { 
        charAdded += s; 
       } 
      } 
      foreach (string s in Gcowde) 
      { 
       listBox1.Items.Add(s); 
      } 
      sr.Close(); 
     } 

這是我如何打開文件並從字符串中獲取座標的代碼。字符串是這種L1 G2 X50 Y50。我需要從字符串中取出2 50。

ps .:變量在荷蘭。

XgetalEen = XnumberOne, XgetalTwee=XnumberTwo, 

同樣爲Y.

XgetalSamen=XnumberTogether, YgetalSamen=YnumberTogether. 
+1

它工作嗎?問題是什麼? –

+0

它不起作用,當您在msgbox中打印時,它會產生一個奇怪的數字集合 – RafG

+0

文件中是否只有一個字符串「L1 G2 X50 Y50」? –

回答

0

這是一個簡單的例子,你怎麼能分析該文件:

// Read your file using File.ReadAllLines 
String[] lines = new[] { "L1 G2 X50 Y50", "L1 G2 X50 Y50" }; 
foreach (var line in lines) 
{ 
    String[] values = line.Split(' '); 
    string x = values.Where(s => s.StartsWith("X")).First().Replace("X", String.Empty); 
    int xCoordinate = Convert.ToInt32(x);    
} 

不要忘記添加所有必要的檢查和閱讀其他變量。