Wenn dies dein erster Besuch hier ist, lese bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich registrieren, bevor du Beiträge verfassen kannst. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
hier war zwar lange nix mehr los, aber ma gucken. also bin in c# unterwegs. ich soll eine konsolenanwendung schreiben, indem man 4 verschiedene produkte auswählen kann über ein untermenü und diese dann in einer liste gespeichert werden, die man jederzeit auslesen kann (in meinem fall packliste genannt). in dieser steht dann die position, das produkt und die anzahl (wenn ich nachträglich noch etwas von einem bereits vorhandenen artikel hinzufüge, wird das als neue position gespeichert!), sind keine artikel vorhanden, muss angezeigt werden "es sind keine artikel vorhanden!"
also nochma kurz zusammengefasst: ein menu um zu entscheiden ob man die liste anguckt oder neue artikel beläd. im untermenüt beladen werden artikel der liste hinzugefügt.
jetzt will ich dafür ein array definieren. das ganze ist erstmal 1 dimensional, da ich erstmal testen wollte, wie das ding funktioniert, dementsprechend hab ich das auch nur für 1 produkt gemacht bis jetzt. jedoch bin ich ratlos, was da los ist, denn ich bekomme jedes mal einen index out of range fehler. ich poste mal den quellcode bis zum fehler, ich denke ich mache einen fehler beim erstellen des arrays, aber ich habe keine ahnung was da schief läuft(garantiert was grundsätzliches):
Spoiler:
static void Main(string[] args)
{
int ASchrauben = 0;
int AFlansche = 0;
int AMuttern = 0;
int ADichtungen = 0;
char S = 'S';
char F = 'F';
char M = 'M';
char D = 'D';
{
default:
Console.WriteLine("Falsche Eingabe! Bitte geben Sie ein Kürzel ein!");
goto Anfang;
case 'E':
return;
case 'B':
Beladen:
i+=1;
int k = i - 1;
int[]Packliste1 = new int[i];
Console.WriteLine("[S]chrauben");
Console.WriteLine("[F]lansche");
Console.WriteLine("[M]uttern");
Console.WriteLine("[D]ichtungen");
Console.WriteLine("[Z]urück zum Hauptmenü");
string Auswahl2 = Console.ReadLine();
try
{
char Auswahl3 = char.Parse(Auswahl2);
switch (Auswahl3)
{
case 'S':
Console.WriteLine("Bitte geben sie die Anzahl ein:");
string AnzahlS1 = Console.ReadLine();
int AnzahlS = int.Parse(AnzahlS1);
if (AnzahlS == 0)
{
Console.WriteLine("Die Anzahl Ihrer Bestellung muss mindestens 1 betragen!");
goto Beladen;
}
jetzt will ich dafür ein array definieren. das ganze ist erstmal 1 dimensional, da ich erstmal testen wollte, wie das ding funktioniert, dementsprechend hab ich das auch nur für 1 produkt gemacht bis jetzt. jedoch bin ich ratlos, was da los ist, denn ich bekomme jedes mal einen index out of range fehler. ich poste mal den quellcode bis zum fehler, ich denke ich mache einen fehler beim erstellen des arrays, aber ich habe keine ahnung was da schief läuft(garantiert was grundsätzliches):
Du arbeitest einmal mit dem Array "Packliste" und einmal mit dem Array "Packliste1". Da dir das rüberkopieren der Daten fehlt, hat dein Array "Packliste" immer nur die Länge 1. Dir fehlt folgender Code:
int[] Packliste1 = new int[i]; Packliste.CopyTo(Packliste1, 0);
Packliste = Packliste1;
wenn ich bei dir auf spoiler klicke, passiert nix ?
muss ich denn dieses neue array packliste1 definieren? oder is das zu umständlich? seh grad das is aus nem älteren lösungsversuch übrig geblieben. war der ansatz richtig?
muss ich denn dieses neue array packliste1 definieren? oder is das zu umständlich? seh grad das is aus nem älteren lösungsversuch übrig geblieben. war der ansatz richtig?
Laut meiner kurzen Google-Suche gibts keine dynamischen Arrays in C#, also muss man es mit dem Zwischenspeichern in Packliste1 lösen.
muss ich denn dieses neue array packliste1 definieren? oder is das zu umständlich? seh grad das is aus nem älteren lösungsversuch übrig geblieben. war der ansatz richtig?
Laut meiner kurzen Google-Suche gibts keine dynamischen Arrays in C#, also muss man es mit dem Zwischenspeichern in Packliste1 lösen.
jetzt hab ich allerdings das problem, dass ich die liste hinterher nicht auslesen kann, da das ganze ja nur lokal ist.
Zitat von hearts fear
Zitat von jan
muss ich denn dieses neue array packliste1 definieren? oder is das zu umständlich? seh grad das is aus nem älteren lösungsversuch übrig geblieben. war der ansatz richtig?
Laut meiner kurzen Google-Suche gibts keine dynamischen Arrays in C#, also muss man es mit dem Zwischenspeichern in Packliste1 lösen.
jetzt hab ich das problem, dass ich zwar packliste1 fülle, aber die daten von da ja nicht zurückbekomme in packliste. wie bekomm ich die daten in die packliste?
jetzt hab ich allerdings das problem, dass ich die liste hinterher nicht auslesen kann, da das ganze ja nur lokal ist.
Funktion mit Übergabevariable? :D
Zitat von jan
jetzt hab ich das problem, dass ich zwar packliste1 fülle, aber die daten von da ja nicht zurückbekomme in packliste. wie bekomm ich die daten in die packliste?
int[] Packliste1 = new int[i];
Packliste.CopyTo(Packliste1, 0);
// Daten in letzte Zeile von Packliste1 schreiben
Packliste = Packliste1;
Wenn du es etwas konkreter magst pack mal deinen ganzen Quellcode auf pastebin o.ä.
Okay... Ich schau mir das mal grade an und probier auch etwas rum :)
/edit: Fehler gefunden und ein paar Kleinigkeiten behoben die mich störten ;)
http://pastebin.com/ZErDQHbK
Wenn du nun noch den Typen(Schraube, Mutter, ...) dazuspeichern willst, musst du entweder ein zweites Array anlegen oder die Zahlen als Strings abspeichern in nem zweidimensionalen Stringarray.
Kommentar