从文件加载项目并将其拆分为数组

时间:2013-10-29 10:13:34

标签: c# arrays split

我必须在C#Form中执行一个程序,它必须从一个文件中加载一个ID号和一个由20个字母组成的ADN,无论输出是什么类似的:

//编辑:我会尝试更好地解释它;这是一个C#Form程序,它必须从一个城镇(文件)加载20个人的ADN,ID号和名称,之后我必须从一个文件中加载一个没有名称或ID号的ADN(这是凶手;程序是一个CSI游戏,你有一个20人的小镇,有人做了谋杀,我必须找到他)然后我必须与所有20个ADNS比较单个ADN,我必须找到%然后找到凶手..

1; A; A; A; A; A; A; A; A; A; A; A; A; A; A; A; A; A; A; A; A

2; A; A; A; A; A; A; A; A; A; A; A; A; A; A; A; A; A; A; A; A

3; A; A; A; A; A; A; A; A; A; A; A; A; A; A; A; A; A; A; A; A ... 该文件有20行。

到目前为止我已经尝试过这个但是......它不起作用

 using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.IO;

    namespace CSI_Marconi_FORM
    {
        public partial class DNAabitanti : Form
        {
            public DNAabitanti()
            {
                InitializeComponent();
            }

            private void DNAabitanti_Load(object sender, EventArgs e)
            {
                StreamReader reader = new StreamReader(@"\\Repo\Studenti$\Informatica\SezCi\4Ci\Corneliu.Cotet\Documenti\Visual Studio 2012\Projects\CSI Marconi FORM\CSI Marconi FORM\bin\Debug\DNAabitanti.txt");
                reader = File.OpenText(@"\\Repo\Studenti$\Informatica\SezCi\4Ci\Corneliu.Cotet\Documenti\Visual Studio 2012\Projects\CSI Marconi FORM\CSI Marconi FORM\bin\Debug\DNAabitanti.txt");
                FormPrincipale.utenti = File.ReadAllLines(@"\\Repo\Studenti$\Informatica\SezCi\4Ci\Corneliu.Cotet\Documenti\Visual Studio 2012\Projects\CSI Marconi FORM\CSI Marconi FORM\bin\Debug\DNAabitanti.txt").Length;
                string abitanti = reader.ReadToEnd();                          
                richTextBox1.Text = abitanti;                        
                reader.Close();
                FormPrincipale.database = new FormPrincipale.Persona[FormPrincipale.utenti];
                FormPrincipale.corrispondenze = new int [FormPrincipale.utenti];

                for (int i = 0; i < FormPrincipale.utenti; i++)
                {
                    string letto = "";
                    letto = reader.ReadToEnd();
                    string[] aus = letto.Split(new char[] { ';' });
                    FormPrincipale.database[i].dna = new string[20];

                    for (int j = 0; j < 22; j++)
                    {
                        if (j < 20)
                        {
                            FormPrincipale.database[i].dna[j] = aus[j];
                        }

                        if (j == 20)
                        {
                            FormPrincipale.database[i].nome = aus[j];
                        }

                        if (j == 21)
                        {
                            FormPrincipale.database[i].cognome = aus[j];
                        }

                    }              

                }


            }
        }
    }

2 个答案:

答案 0 :(得分:0)

如果没有看到您的代码,请尝试以下内容:

var myArray = myFileContents.Split(new char [] { '\n' });

答案 1 :(得分:0)

试试这个:

你必须首先用空格替换所有';'然后在第一个数字之后用':'填充个别更改。这将以正确的格式替换整个字符串。

string line;

System.IO.StreamReader file = new System.IO.StreamReader(@"d:\\textFile.txt");

while ((line = file.ReadLine()) != null)
{
    string output = "";
    //replacing all ';' with space
    output = line.Replace(";", " ");
    StringBuilder sb = new StringBuilder(output);
    //replacing character after number with ':'
    sb[1] = ':';
    output = sb.ToString();
    MessageBox.Show(output);
}

file.Close();