Autor Beitrag
sepp_a_u
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 51

Win Vista (Laptop), Win XP (PC)
C# (MS Visual Studio Express Edition)
BeitragVerfasst: Mi 03.10.07 22:48 
hi @ all

bin gerade dabei ein telefon-geb-adressbuch zu schreiben. bin soweit auch schon recht weit glaube ich.
jetzt habe ich noch folgende probleme:

1) bei der ausgabe ist leider keine struktur drin
2) beim menü kommt immer ne fehlermeldung, wenn man einen string eingibt

ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;

namespace telefonbuch
{
    class Program
    {
        static void Main(string[] args)
        {
            Menue();            
        }
        static void WriteFile()
        {
            StreamWriter schreiben = new StreamWriter(@"test.txt"true);
            schreiben.Write(Console.ReadLine());
            schreiben.Close();            
        }
        static void ReadFile()
        {
            StreamReader lesen = new StreamReader("test.txt");
            while (!lesen.EndOfStream)
            {
                Console.WriteLine(lesen.ReadLine());                               
            }
            lesen.Close();
            Console.ReadLine();
        }        
        static void Menue()
        {
            bool beenden = false;
            string[] neueAdresse = new string[7];
            neueAdresse[0] = "Name";
            neueAdresse[1] = "Vorname";
            neueAdresse[2] = "Strasse";
            neueAdresse[3] = "Plz";
            neueAdresse[4] = "Ort";
            neueAdresse[5] = "Telefonnr.";
            neueAdresse[6] = "Geburtstag";
            int eingabe;
            string daten;
            Console.WriteLine("\n\n\t \t      Was möchtest du tun? \n\n \t \t -----------------------------");
            Console.Write("\n \t \t |###########################|");
            Console.Write("\n \t \t |# 1.Neue Adresse eingeben #| \n \t"); 
            Console.Write("\t |# 2.Adresse suchen        #| \n \t \t |# 3.Beenden               #|" );              
            Console.Write("\n \t \t |###########################|");
            Console.WriteLine("\n \t \t -----------------------------");
            eingabe = Int32.Parse(Console.ReadLine());           
            
            do
            {
                if (eingabe == 1 && !beenden)
                {
                  foreach (string adressen in neueAdresse)
                  {
                    Console.Write("{0}: ",adressen);
                    WriteFile();
                    daten = Console.Read().ToString();                    
                  }                  
                  

                    beenden = true;

                    if (beenden)
                    {
                      Console.ReadLine();
                        Menue();
                        
                    }
                                        
                }
                else if (eingabe == 2 && !beenden)
                {
                    ReadFile();
                    beenden = true;

                    if (beenden)
                    {
                        Menue();
                    }
                }
                else if (eingabe != 1 || eingabe != 2 || !beenden)
                {
                  Console.WriteLine("Fehlerhafte Eingabe!");
                  beenden = true;
                  
                  if (beenden)
                  {
                    Menue();
                  }
                }
            }
            while (eingabe != 3);                     
        }

    }
}


so das ist mal der code.
jetzt wie kann ich hier:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
 else if (eingabe != 1 || eingabe != 2 || !beenden)
                {
                  Console.WriteLine("Fehlerhafte Eingabe!");
                  beenden = true;
                  
                  if (beenden)
                  {
                    Menue();
                  }
                }

noch einfügen, dass auch die strings berücksichtigt werden?

mfg
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Do 04.10.07 11:26 
Ich sehe zwei Möglichkeiten:
1. Du verwendest einen Try - Catch - Block für diese Zeile:
ausblenden C#-Quelltext
1:
eingabe = Int32.Parse(Console.ReadLine());					

Der im Catch-Fall "eingabe" auf einen definierten Wert setzt (z.B. 99).
2. Du machst aus "eingabe" einen String und prüfst nicht mehr auf numerische Eingabe, sonder auf String-Eingabe.
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Do 04.10.07 11:56 
Die "beenden"-Variable kommt mir ein wenig sinnlos vor :gruebel: . Ich verstehe auch nicht, weshalb du Rekursion und eine Schleife benötigst. Du erlaubst mir hoffentlich ein wenig Umstrukturierung deiner Funktion ;) :
ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
    // zur Übersicht aus der Methode herausgezogen
    static string[] addressProperties = new string[] { "Name""Vorname", ... };

    static void Menu()
    {
      Console.WriteLine("\n\n\t \t      Was möchtest du tun? \n\n \t \t -----------------------------");
      Console.Write("\n \t \t |###########################|");
      Console.Write("\n \t \t |# 1.Neue Adresse eingeben #| \n \t");
      Console.Write("\t |# 2.Adresse suchen        #| \n \t \t |# 3.Beenden               #|");
      Console.Write("\n \t \t |###########################|");
      Console.WriteLine("\n \t \t -----------------------------");

      switch (Console.ReadLine().Trim()) {
        case "1":
          foreach (string property in addressProperties) {
            Console.Write("{0}: ", property);
            WriteFile();
            // Wird das noch irgendwo genutzt?
            // daten = Console.Read().ToString();
          }
          break;
        case "2":
          ReadFile();
          break;
        case "3":
          return;
        default:
          Console.WriteLine("Fehlerhafte Eingabe!");
      }

      Console.ReadLine();
      // rekursiver Aufruf, der nur durch das return in case "3" beendet werden kann
      Menu();
    }
sepp_a_u Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 51

Win Vista (Laptop), Win XP (PC)
C# (MS Visual Studio Express Edition)
BeitragVerfasst: Do 04.10.07 22:26 
tut mir ja herzlich leid, aber der code funktioniert bei mir absolut nicht!
hab jedoch meinen code noch ein weiteres mal überarbeitet und jetzt läuft er quasi einwandfrei.
jetzt fehlt nur noch, dass die aus- und eingabe schön formatiert wird, wie in einer tabelle. weiß vll jemand, wie ich das machen kann? das wäre zu geil. dann wäre mein prog quasi fertig :) bzw es wäre die beta mit ein paar funktionen...


ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;

namespace telefonbuch
{
    class Program
    {
        static void Main(string[] args)
        {
            Menue();            
        }
        static void WriteFile()
        {
            StreamWriter schreiben = new StreamWriter(@"test.txt"true);
            schreiben.Write(Console.ReadLine());
            schreiben.Close();            
        }
        static void ReadFile()
        {
            StreamReader lesen = new StreamReader("test.txt");
            while (!lesen.EndOfStream)
            {
                Console.WriteLine(lesen.ReadLine());                               
            }
            lesen.Close();
            Console.ReadLine();
        }        
        static void Menue()
        {     
            bool Ende = true;
            string[] neueAdresse = new string[7];
            neueAdresse[0] = "Name";
            neueAdresse[1] = "Vorname";
            neueAdresse[2] = "Strasse";
            neueAdresse[3] = "Plz";
            neueAdresse[4] = "Ort";
            neueAdresse[5] = "Telefonnr.";
            neueAdresse[6] = "Geburtstag";
            string eingabe;        
            Console.WriteLine("\n\n\t \t      Was möchtest du tun? \n\n \t \t -----------------------------");
            Console.Write("\n \t \t |#############################|");
            Console.Write("\n \t \t |# N - Neue Adresse eingeben #| \n \t"); 
            Console.Write("\t |# A - Datensätze anzeigen   #| \n \t \t |# B - Beenden               #|" );              
            Console.Write("\n \t \t |#############################|");
            Console.WriteLine("\n \t \t -----------------------------");            
            
            do
            {
              switch (eingabe = Console.ReadLine().ToUpper())
              {
                case "N":                  
                    foreach (string adressen in neueAdresse)
                    {
                      Console.Write("{0}: ",adressen);
                        WriteFile();                        
                    }         
                    Menue();       
                    break;
                  
                case "A":           
                    ReadFile();                    
                    Menue();               
                    break;
                  
                case "B":
                  Ende = true;
                  break;   
                default:
                  Console.WriteLine("Fehlerhafte Eingabe!");
                  Menue();
                  break;
              }
            } while (!Ende);                     
        }

    }
}


mfg

Moderiert von user profile iconChristian S.: Code- durch C#-Tags ersetzt


Zuletzt bearbeitet von sepp_a_u am Do 04.10.07 22:37, insgesamt 1-mal bearbeitet
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Do 04.10.07 22:34 
user profile iconsepp_a_u hat folgendes geschrieben:
tut mir ja herzlich leid, aber der code funktioniert bei mir absolut nicht!
Erkläre dich bitte einmal etwas näher, bei mir funktioniert er... Und die Antwort auf deine letzte Frage ist ebenfalls in ihm enthalten.
sepp_a_u Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 51

Win Vista (Laptop), Win XP (PC)
C# (MS Visual Studio Express Edition)
BeitragVerfasst: Do 04.10.07 22:40 
user profile iconKhabarakh hat folgendes geschrieben:
user profile iconsepp_a_u hat folgendes geschrieben:
tut mir ja herzlich leid, aber der code funktioniert bei mir absolut nicht!
Erkläre dich bitte einmal etwas näher, bei mir funktioniert er... Und die Antwort auf deine letzte Frage ist ebenfalls in ihm enthalten.



bei mir kommen halt etliche fehlermeldungen. und bevor ich jetzt mein ganzes prog auseinanderreiße mache ich lieber so weiter.
hab teilweise deine ideen umgesetzt (bool variable weg, string variable weg usw)

es fehlt mir jetzt nur noch, dass struktur in die ein-bzw ausgabe hineingebracht wird. das mit der eingabe ist auch behoben, d.h. es werden alle fehler abgefangen

mfg
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Do 04.10.07 22:44 
Hallo user profile iconsepp_a_u,

bitte erstelle für jede deiner Fragen ein separates Topic, da die Diskussion mehrerer Fragen in einem Topic für gewöhnlich für Verwirrung und Durcheinander sorgt. Daher:

*geschlossen*


cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
Dieses Thema ist gesperrt, Du kannst keine Beiträge editieren oder beantworten.

Das Thema wurde von einem Team-Mitglied geschlossen. Wenn du mit der Schließung des Themas nicht einverstanden bist, kontaktiere bitte das Team.