hi,
irgendwie funzt dieser code nicht...!
if (befehl == "gimmemusic")
{
//Noten
int c = 262;
int d = 294;
int e = 330;
int f = 349;
int g = 392;
int a = 440;
int h = 494;
//Länge
int achtel = 250;
int virtel = 500;
int halbe = 1000;
int ganze = 2000;
//Alle meine Entchen
Console.Beep(c, virtel);
Console.Beep(d, virtel);
Console.Beep(e, virtel);
Console.Beep(f, virtel);
Console.Beep(g, halbe);
Console.Beep(g, halbe);
//Schwimmen auf dem See
Console.Beep(a, virtel);
Console.Beep(a, virtel);
Console.Beep(a, virtel);
Console.Beep(a, virtel);
Console.Beep(g, ganze);//Wiederhohlung
Console.Beep(a, virtel);
Console.Beep(a, virtel);
Console.Beep(a, virtel);
Console.Beep(a, virtel);
Console.Beep(g, ganze);
//Köpchen in das Wasser
Console.Beep(f, virtel);
Console.Beep(f, virtel);
Console.Beep(f, virtel);
Console.Beep(f, virtel);
Console.Beep(e, halbe);
Console.Beep(e, halbe);
//schwänzchen in die Höh
Console.Beep(d, virtel);
Console.Beep(d, virtel);
Console.Beep(d, virtel);
Console.Beep(d, virtel);
Console.Beep(c, ganze);
}
Hi,
hi,
irgendwie funzt dieser code nicht...!
ja, ein bisschen mehr Informationen könntest du uns schon geben.
Was genau funktioniert nicht. Beept er nicht so wie du willst, oder beept er gar nicht??
Siehe:[Hinweis] Wie poste ich richtig? Punkt 5
//EDIT: Das einzigste was mir hir auffällt ist diese If-Abfrage. Kann es sein, dass er überhaupt nicht in diese Abfrage rein geht?? Schreibe mal anstatt befehl=="gimmemusic" einfach true rein.... dann müsste das schon gehen.
Vielleicht hast du auch noch einen anderen Fehler, dass er gar nicht bis zu diesem CodeTeil kommt
mfg
michlG
nee, am if liegt es nicht...
hab noch andere if - abfragen drin, die gehen alle.
also ich habs mit try, catch gemacht das ganze und es geht auch alles, bis auf diese "if - abfrage". Ich hab noch eine fehlermeldung eingebaut, wenn der befehl nicht existiert, und diese kommt auch, wenn ich "gimmemusic" schreibe...!
Da "befehl" vom Typ String ist, solltest du besser mit befehl.Equals() den Wert prüfen, anstatt mit ==.
-> Informatik-Infotainment <-
Hallo computer_case,
irgendwie funzt dieser code nicht...!
Du hast leider immer noch nicht die nötigen Infos geliefert. Siehe [Hinweis] Wie poste ich richtig? Punkt 5. Davon abgesehen wird das ein Fehler sein, den du im Debugger leicht selbst finden kannst.
Hallo Jack_AI,
bei C# ist == für String vollkommen ok. Equals für Strings zu verwenden ist eher ungewöhnlich.
herbivore
also, das wäre der gesamte code!
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace ConsoleApplication1
{
class Program
{
static void Main()
{
Console.WriteLine("Willkommen bei der Konsole!");
Console.WriteLine("");
for (; ; )
{
string befehl;
Console.Write("Befehl >");
befehl = Console.ReadLine();
//Datei erzeugen
if (befehl == "erzeugen")
{
try
{
string inhalt;
Console.WriteLine("Geben sie den Inhalt der datei an: ");
inhalt = Console.ReadLine();
string path;
Console.WriteLine("Pfad");
path = Console.ReadLine();
using (StreamWriter sw = new StreamWriter(path))
{
sw.Write(inhalt);
}
Console.WriteLine("Erzeugen erfolgreich!");
Console.ReadKey();
}
catch
{
Console.WriteLine("Fehler!");
Console.ReadKey();
}
}
//beenden
if (befehl == "beenden")
{
break;
}
//^^2
if (befehl == "gimmemusic")
{
//Noten
int c = 262;
int d = 294;
int e = 330;
int f = 349;
int g = 392;
int a = 440;
int h = 494;
//Länge
int achtel = 250;
int virtel = 500;
int halbe = 1000;
int ganze = 2000;
//Alle meine Entchen
Console.Beep(c, virtel);
Console.Beep(d, virtel);
Console.Beep(e, virtel);
Console.Beep(f, virtel);
Console.Beep(g, halbe);
Console.Beep(g, halbe);
//Schwimmen auf dem See
Console.Beep(a, virtel);
Console.Beep(a, virtel);
Console.Beep(a, virtel);
Console.Beep(a, virtel);
Console.Beep(g, ganze);//Wiederhohlung
Console.Beep(a, virtel);
Console.Beep(a, virtel);
Console.Beep(a, virtel);
Console.Beep(a, virtel);
Console.Beep(g, ganze);
//Köpchen in das Wasser
Console.Beep(f, virtel);
Console.Beep(f, virtel);
Console.Beep(f, virtel);
Console.Beep(f, virtel);
Console.Beep(e, halbe);
Console.Beep(e, halbe);
//schwänzchen in die Höh
Console.Beep(d, virtel);
Console.Beep(d, virtel);
Console.Beep(d, virtel);
Console.Beep(d, virtel);
Console.Beep(c, ganze);
}
//Fensterinhalt löschen
if (befehl == "säubern")
{
Console.Clear();
}
else
{
Console.WriteLine("Unbekannter Befehl!");
Console.ReadKey();
}
}
}
}
}
Und wie schon gesagt, kommt einfach die meldung "Unbekannter Befehl"
Was ja komisch ist, denn ich hab die fehlermeldung da gar nicht eingebaut...
Hallo computer_case,
das sieht nach fehlenden Grundlagen aus. Bitte beachte [Hinweis] Wie poste ich richtig? Punkt 1.1.1.
"Unbekannter Befehl!" kommt immer dann, wenn der Befehl nicht "säubern" und nicht "beenden" ist. Das ergibt sich aber unmittelbar aus der Struktur deiner if-Abfragen. Verwende if else if oder continue.
herbivore
Nur so nabenbei, ich halte es für ungut(ich irre ich sicher) die Variable in der Schleife immer neuzudeklarieren, da die Variable in der Schleife immer neu in den Seicher geschrieben wird.(ist doch so, oder?)
integer usw. werden eh nur in den stack gelegt. da macht es eigendlich kaum unterschiede, wenn man sie lokal anlegt. große objekte hingegen sind da anders zu handhaben.
ps:
for (; ; ) == while (true)
nebenbei würde ich trotzdem innerhalb der abfrage die abbruchbedingung definieren, da man ansonsten erst im code die bedignung suchen muss.
Nur so nabenbei, ich halte es für ungut(ich irre ich sicher) die Variable in der Schleife immer neuzudeklarieren, da die Variable in der Schleife immer neu in den Seicher geschrieben wird.(ist doch so, oder?)
sowas optimiert ja ohnehin der compiler von c#