C# Hogyan kell beolvasni az adatokat egy ilyen típusú szöveges fájból?
Szóval van egy szöveges fájl, ami így nézd ki.
45 87 98 36
878 25 46 98
44 55 31 38
Szóval minden sorban van több szám, szóközzel elválasztva.
Beszeretném őket beolvasni egy int típusú tömbbe, egyenként a számokat.
Hogyan lehet ezt a legegyszerűbben megoldani?
Eddig ezzel próbálkoztam:
List<int> lista = new List<int>();
string[] sor = new string[1000];
while (!reader.EndOfStream)
{
sor = reader.ReadLine().Split();
}
for (int i = 0; i < sor.Length; i++)
{
lista.Add(Convert.ToInt32(sor[i])); *
}
*De azt írja futás közben, hogy rossz a a bemeneti lánc, ott ahol megjelöltem egy csillaggal.
A split paramétereként meg kell adni az elválasztó karaktert, ami jelen esetben a space. Tehát .Split(' ').
A while ciklusba tedd a for-t is, különben mindig csak az utolsó sort fogja a listába rakni.
int number;
List<int> lista = new List<int>();
string[] sor;
while (!reader.EndOfStream)
{
sor = reader.ReadLine().Split(null as char[], StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < sor.Length; i++)
{
if (Int32.TryParse(sor[i], out number)) {
lista.Add(number);
}
}
}
"Sehol nem szerepel, hogy mindig 4 szám lenne."
Viszont ez szerepel:
"Beszeretném őket beolvasni egy int típusú tömbbe, egyenként a számokat."
#7: Csak a példában:)
Egyébként én nem állítottam, hogy 4 szám van minden sorban, csak az írtam, hogy nem veszik el az információ, HA minden sorban 4 (konstans) darabszámú szám van.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!