C# System.IndexOutOfRangeException tömb
2019-04-04T19:53:07+02:00
2019-04-06T11:26:41+02:00
2022-08-11T11:41:47+02:00
flashie21
Sziasztok!
Most ismerkedek a C#-pal és a következő problémába futottam. A feladat az, hogy létre kell hozni egy txt fájlt a következő adatokkal:

Vezetéknév Keresztnév Szakma Cég Azonosító Fizetés(millió Ft/év)

Tóth?Gazsi?rendszergazda?Nokia?125?10,7

Az első sort egy szöveges változóba kell menteni és kiíratni.
Ha ez megvan akkor a többi adatot menteni kell a megfelelő adatszerkezetbe.
Ha ezek megvannak akkor még meg kell adni a szövegfile hosszát (csak az adatszerkezetbe beolvasott adatoknak)!

Amikor futtatni szeretném a programot akkor
utnev = egybe[1]; (sornál írja a hibát az index a tömb határain kívülre mutatott)

Én az alábbiak szerint próbáltam megoldani a feladatott:

static string[] veznev = new string[20]; static string[] utnev = new string[20]; static string[] pozicio = new string[20]; static string[] munkahely = new string[20]; static int[] azon = new int[20]; static double[] ber = new double[20]; static int m = 0; static string elso; static void be() { string[] egybe; int i = 0; foreach (var sor in File.ReadAllLines("utolsoA.txt")) { egybe = sor.Split('?'); veznev = egybe[0]; utnev = egybe[1]; pozicio = egybe[2]; munkahely = egybe[3]; azon = int.Parse(egybe[4]); ber = double.Parse(egybe[5]); i++; } elso = veznev[0] + " " + utnev[0] + " " + pozicio[0] + " " + munkahely[0] + " " + azon[0] + " " + ber[0]; Console.WriteLine($"1. feladat \n{elso}"); } static void Main(string[] args) { be(); Console.WriteLine($"3. feladat: hossz {m}"); Console.ReadLine(); }
Mutasd a teljes hozzászólást!
Van egy üres sor a fájl végén?
Mert abból split csinál neked egy egyelemű tömböt, ezért száll csak el a egybe[1]-en, mert a egybe[0] még létezik, egy üres string van benne.
Szóval vagy töröld az üres sort, vagy tegyél a kitöltögetés köré egy if-et, kb.

egybe=sor.Split('?'); if(egybe.Length>1){ veznev[i]=egybe[0]; ... i++; }
Mutasd a teljes hozzászólást!

abcd