Wczytywanie danych z pliku txt do list

0

Witam. Posiadam tablicę zmiennych w pliku config.txt:

143 178 0 0
149 172 0 0
158 165 0 0
171 156 0 0
185 145 0 0
199 137 0 0


Chciałbym te dane z każdej linii wczytywać w następujący sposób: 
pierwsza liczba = List1, druga liczba = List2, trzecia liczba, trzecia liczba = List3, czwarta liczba = List4

```csharp
 OpenFileDialog OFD = new OpenFileDialog();
            OFD.InitialDirectory = System.IO.Directory.GetCurrentDirectory();
            OFD.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
            OFD.Title = "Bla bla bla";
            if (OFD.ShowDialog() == DialogResult.OK)
            {
                string path = OFD.FileName;
                string[] lines = File.ReadAllLines(path);

                int i = 0;
                while (i != lines.Length)
                {
                    //List1 = int.Parse(lines[i].Split(' ')); //tutaj chcę by wczytywało pierwszy element linii i
                    //List2 = int.Parse(lines[i].Split(' ')); //tutaj chcę by wczytywało drugi element linii i
                }
            }
1
var lines = File.ReadAllLines(path);
var lineList = new List<string[]>();
foreach (var line in lines)
{
   lineList.Add(line.Split(' '));
}
0

Utknąłem.

 
 string path = OFD.FileName;
                var lines = File.ReadAllLines(path);
                var lineList = new List<string[]>();
                foreach (var line in lines)
                {
                    lineList.Add(line.Split(' '));
                }

                for (int i; i != lineList.Count; i=i+4)
                {
                    List1.Add(int.Parse(lineList[i]));
                    List2.Add(int.Parse(lineList[i+1]));
                    List3.Add(int.Parse(lineList[i+2]));
                    List4.Add(int.Parse(lineList[i+3]));
                }

List1-List4 to integer. Chcę skonwertować ze stringów na int ale nie mogę "cannot convert from 'string[]' to 'string'"

0

Musisz podać dwa indeksy (indeks listy i tablicy).
Dlaczego i=i+4?

for (int i=0; i<lineList.Count; i++)
{
	List1.Add(int.Parse(lineList[i][0]));
	List2.Add(int.Parse(lineList[i][1]));
	List3.Add(int.Parse(lineList[i][2]));
	List4.Add(int.Parse(lineList[i][3]));
}
0

Przecież widzisz, że metoda przyjmuje string a nie string[]. Pomieszałeś. I chyba nikt dokładnie nie wie o co Ci konkretnie chodzi.

0

Do ładowania danych z plików polecam tą bibliotekę: https://github.com/MarcosMeli/FileHelpers
Może się przyda.

Pozdrawiam.

0
 public void load_file() {
           System.IO.StreamReader file = new System.IO.StreamReader (@"C:\Users\etc.");
           while ((line = file.ReadLine()) != null)
           {
           		// 143 178 0 0
				string[] schowek = line.Split(' ');
				lista1.add(Convert.ToInt32(schowek[0]);
				lista2.add(Convert.ToInt32(schowek[1]);
				lista3.add(Convert.ToInt32(schowek[2]);
				lista4.add(Convert.ToInt32(schowek[3]);
           }
           file.Close();
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1