Dieser Code wirft die Ausnahme, "Index war außerhalb der Grenzen des Arrays". Sollte dies nicht einfach jeden der aufgeteilten Daten in den vorgesehenen Array-Slot hinzufügen?Probleme mit der .Split() - Methode
while (input != null)
{
string[] splitInput = inputLine.Split();
EmpNum = int.Parse(splitInput[0]);
EmpName = (splitInput[1]);
EmpAdd = (splitInput[2]);
EmpWage = double.Parse(splitInput[3]);
EmpHours = double.Parse(splitInput[4]);
inputLine = (myFile.ReadLine());
Console.WriteLine("test {0},{1},{2}", EmpNum, EmpWage, EmpHours);
}
ein bisschen Um zu klären, ich bin Lesen von Daten aus einer einfachen Textdatei, die Mitarbeiterdaten (Name, Anschrift, Stunden, Mitarbeiternummer, Löhne) hat.
Ich habe meine gesamte Hauptmethode für Klarheit hinzugefügt.
using System;
using System.IO;
class Program
{
static void Main()
{
//declare an array of employees
Employee[] myEmployees = new Employee[10];
//declare other variables
string inputLine;
string EmpName;
int EmpNum;
double EmpWage;
double EmpHours;
string EmpAdd;
//declare filepath
string environment = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal) + "\\";
//get input
Console.Write("\nEnter a file name in My Documents: ");
string input = Console.ReadLine();
string path = environment + input;
Console.WriteLine("Opening the file...");
//read file
StreamReader myFile = new StreamReader(path);
inputLine = (myFile.ReadLine());
//split input
while (inputLine != null)
{
string[] splitInput = inputLine.Split();
EmpNum = int.Parse(splitInput[0]);
EmpName = (splitInput[1]);
EmpAdd = (splitInput[2]);
EmpWage = double.Parse(splitInput[3]);
EmpHours = double.Parse(splitInput[4]);
Console.WriteLine("test {0},{1},{2}", EmpNum, EmpWage, EmpHours);
}
Console.ReadLine();
}//End Main()
}//End class Program
Auch wenn andere Informationen benötigt, kann ich mehr von meinen Code schreiben. – xavi
Wenn Sie Ihre 'inputLine' teilen, erhalten Sie weniger als 5 Elemente – bjarneh
Sollte' while (input! = Null) 'stattdessen' while (inputLine! = Null) 'sein? –