打开文件并在中使用字符串

本文关键字:字符串 文件 | 更新日期: 2023-09-27 18:25:18

当我打开一个文件(我自己制作的)时,我需要使用通过的文本字符串中的一些内容。我想用文本的某些部分作为坐标来绘制图形。

    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.

打开文件并在中使用字符串

这是一个解析文件的简单示例:

// 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);            
}

不要忘记添加所有必要的检查和读取其他变量。