Laden...

Forenbeiträge von CarnifeX Ingesamt 48 Beiträge

14.09.2016 - 11:45 Uhr

Hi Palin, danke für deine Antwort.

Doch ich habe mich leider falsch ausgedrückt - Das tut mir leid.
Ich möchte nicht dieses title-Hover sondern das browser-Hover.
Also den "text(Link)" der unten links vom Browser angezeigt wird wo der link hinspringt.

14.09.2016 - 11:23 Uhr

Hallo zusammen,

ich stehe gerade vor einem Problem:

Und zwar möchte ich meinen WebUser von einem Portal auf ein anderes übertragen so dass dieser Dort angemeldet ist. Dies klappt auch Aber:

Ich benutze einen asp:LinkButton mit einem ganznormalen Onclick event das mich dann eben auf das andere Portal umleitet.

Problem daran: Beim Hovern des LinkButtons steht natürlich nicht die Url des anderen Portals da sondern javascript:WebForm_DoPostBackWithOptions( bla bla bla....

was ich möchte: Dass beim Hovern der Link des aufzuspringenden Portals da steht.
also was ich brauche ist sowas wie ein festes Href in das ich die url schreiben kann (Nur damit der Benutzer sieht wo er hinkommt) + eine extra onclick methode die Meine Kommunikationsdaten speichert und mich eben auf das Portal weiterleitet.

-Gibt es eine möglichkeit dies serverseitig zu lösen oder muss ich einen JavaScript-Ajaxcall auf meine Methode machen? (was ich eigentlich nicht will).

Danke im Voraus

24.02.2016 - 13:25 Uhr

@Abt
Tut mir leid ich habe mich etwas missverständlich ausgedrückt.
Ich möchte tatsächlich nur meine E-Mail seitens Code generieren und dann in meinem Mailprogramm öffnen und DORT verschicken - nicht im Code.

24.02.2016 - 12:57 Uhr

Hallo,

ich möchte gerne in mein Programm eine Funktion einbauen das man sich eine E-Mail mit Kundendaten generieren lassen kann und diese sich in meinem E-Mailprogramm automatisch öffnet. Mir springt sofort "Mailto" in den Kopf. Ist es hiermit jedoch überhaupt lösbar?
Wie würdet ihr es machen?

Zu beachten ist dass ich meinen Email string in meinem Code mit Daten füllen und sogar formatieren will. Bei Mailto ist bei "&body=" ja keine Formatierung möglich, oder täusche ich mich da?

über schnelle Hilfe, Rat oder Vorschläge würde ich mich sehr freuen 😃

22.02.2016 - 10:39 Uhr

Hallo zusammen,

ich habe mal wieder ein JSON Problem zudem ich einfach keine Lösung finde.

json String:


{
    "result": "ok",
    "data": {
        "time": "",
        "address": {
            "company": "",
            "title": "",
            "name": "",
            "street": "",
            "zip": "",
            "town": "",
            "country": "",
            "phone": ""
        },
        "invoice": {
            "company": "",
            "title": "",
            "name": "",
            "street": "",
            "zip": "",
            "town": "",
            "country": "",
            "phone": ""
        },
        "comment": "",
        "status": "0",
        "dispatch": "0.00",
        "delivery": {
            "service": "0",
            "tracking": ""
        },
        "coupon": {
            "code": "",
            "type": "",
            "value": ""
        },
        "payment": {
            "type": "",
            "payed": "",
            "fee": ""
        },
        "cart": [
            {
                "bestell_ID": "4444",
                "artID": "5555",
                "artnr": "TestNummer-001",
                "artname": "Das ist mein Artikel Nr. 1",
                "anzahl": "1",
                "preis": "5.00",
                "vat": "0.00"
            },
            {
               "bestell_ID": "4444",
                "artID": "6666",
                "artnr": "TestNummer-002",
                "artname": "Das ist mein Artikel Nr. 2",
                "anzahl": "2",
                "preis": "6.00",
                "vat": "0.00"
            }           
        ],
        "additional_orderfields": {
            "Wie haben Sie uns gefunden?": "2"
        }
    }
}


Ich möchte die Daten aus "cart".
Ich verwende diese Zeile:


cart productData = JsonConvert.DeserializeObject<cart>(myJsonstring["data"]["cart"].ToString());

Und hier die Gets und Sets:

public class cart
    {
        public string bestell_ID { get; set; }
        public string artID { get; set; }
        public string artnr { get; set; }
        public string artname { get; set; }
        public string anzahl { get; set; }
        public string preis { get; set; }
        public string vat { get; set; }
    }

Leider kommt es zur folgenden Exception:

Fehlermeldung:
"Cannot deserialize the current JSON array (e.g. [1,2,3]) into type 'cart' because the type requires a JSON object (e.g. {"name":"value"}) to deserialize correctly."

Kann mir jemand einen Tipp geben wie ich mein Problem lösen kann?

Danke im Voraus

19.02.2016 - 14:29 Uhr

Ach ich liebe euch! Vielen dank! 😃

19.02.2016 - 13:46 Uhr

Hallo zusammen,

zurzeit arbeite ich mit einer Schnittstelle. Diese liefert mir per Json Daten. Dort ist unteranderem das Feld "time" enthalten welches ein Datum enthält:


"time": "1455829972",

Kann mir jemand sagen was das für ein Zeitformat ist? Bzw. wie man es umrechnet. Ich habe jetzt schon eine Zeit lang gesucht. Wurde jedoch nicht fündig.

Danke im Voraus 😃

31.01.2016 - 22:22 Uhr

Hallo zusammen,

mal wieder brauche ich eure Hilfe 😄
Und zwar möchte ich Daten die mir eine Api via JSON-String liefert in meinem Programm in eine Liste auflisten.

Ich bekomme es einfach nicht hin meinen JSON-String zu deserialisieren um die einzelnen Daten rauszupicken.

Der String ist folgendermaßen aufgebaut:



{"result":"ok","data":{"4444":{	"ID":"4444","userID":"-1","time":"1451565481","per":"Auf Rechnung","payed":"Y","status":"2","total":"77.777"},"5555":{"ID":"5555","userID":"-1","time":"1451561640","per":"Auf Rechnung","payed":"Y","status":"2","total":"88.888"},	"6666":{"ID":"5555",	"userID":"1111","time":"1451559999","per":"Auf Rechnung","payed":"Y","status":"2","total":"99.999"}}}


(Andere Ansicht):


{
   "result": "ok",
   "data": {
      "4444": {
         "ID": "4444",
         "userID": "-1",
         "time": "1451565481",
         "per": "Auf Rechnung",
         "payed": "Y",
         "status": "2",
         "total": "77.777"
      },
      "5555": {
         "ID": "5555",
         "userID": "-1",
         "time": "1451561640",
         "per": "Auf Rechnung",
         "payed": "Y",
         "status": "2",
         "total": "88.888"
      },
      "6666": {
         "ID": "5555",
         "userID": "1111",
         "time": "1451559999",
         "per": "Auf Rechnung",
         "payed": "Y",
         "status": "2",
         "total": "99.999"
      }
   }
}

(Der ganze String ist um sehr sehr vieles Länger)

Kann mir bitte jemand einen Tipp geben wie ich das hinbekomme.
Mich verwirrt vorallem der Anfang des Strings. Dieses "result":"ok","data"??

Danke im Vorraus

29.01.2016 - 09:56 Uhr

Vielen Dank an alle!
Das Stichwort JSON hat gereicht 😃
@Abt ja das habe ich peinlicherweise überlesen 😄

28.01.2016 - 20:39 Uhr

Hallo 😃

und zwar habe ich mal wieder ein kleines Problem:

Ich schreibe ein Programm mit dem ich auf eine Schnittstelle zu meinem Shop zugreifen kann und mir somit Kundendaten ziehen kann. Ich habe jedoch das Problem das alle Kundendaten in ein String gespeichert werden und ich nicht weiß wie ich diesen String trennen soll.

Hier mal ein kleiner Vorgeschmack auf diesen "String":


{"22":{"ID":"22","email":"maxmusterman@gmx.de","gender":"Mann","company":"","firstname":"Max","surname":"Mustermann","address":"Teststraße 39","zip":"5555","town":"Berlin","country":"de","fon":"","vat_id":"","birthday":"1999-09-19","registration":"2014-08-19","group":"10","newsletter":"N"},"30":{"ID":"30","email":"testmann@gmail.de","gender":"Herr","company":"Test-Firma","firstname":"Test","surname":"Mann","address":"Superstr. 8","zip":"90411","town":"Nürnberg","country":"de","fon":"0556-00000000","vat_id":"","birthday":"2000-00-00","registration":"2009-02-16","group":"10","newsletter":"Y"}

Und so sieht der ganze String aus. Es sind über 2000 Kunden. Wie schaffe ich es das zu sortieren?? In meinem Programm sollen sie schön untereinander angeordnet sein.

Irgendwelche Vorschläge / Tipps ?

28.01.2016 - 20:29 Uhr

Ich hatte das Problem dass ich nicht wusste wie ich die Schnittstelle anspreche und Daten zurückbekomme. Aber das habe ich mittlerweile gelöst 😃.

Hier der Code für diejenigen die vielleicht das gleiche Problem haben:

public string GetRequest(string URL)
        {
            String username = "API-USERNAME";
            String password = "API-Passwort";
            string result = null;

            HttpWebRequest req = WebRequest.Create(URL) as HttpWebRequest;

            String encoded = System.Convert.ToBase64String(System.Text.Encoding.GetEncoding("ISO-8859-1").GetBytes(username + ":" + password));
            req.Headers.Add("Authorization", "Basic " + encoded); // Anmeldung 

            using (HttpWebResponse resp = req.GetResponse() as HttpWebResponse)
            {
                StreamReader reader = new StreamReader(resp.GetResponseStream());
                result = reader.ReadToEnd();
            }
            allData = result;
            return result;
        }

        public Form1()
        {
            InitializeComponent();
        }

        private void btnRequest_Click(object sender, EventArgs e)
        {
            string URL = "https://meineshop/api/rest/v1/";
            lblAusgabe.Text = (GetRequest(URL));

        }
28.01.2016 - 16:44 Uhr

Hallo zusammen,

ich besitze einen kleinen Online-Shop der von einer Firma serverspot gehostet wird.
Sie bieten eine Schnittstelle an über die man die Kunden usw. auslesen kann.

Da ich leider kein Voll-Ausgebildeter Programmierer bin wollte ich fragen ob mir jemand helfen kann.

Ich möchte ein kleines "Mahnprogramm" schreiben. Mein Problem ist ich weiß nicht genau wie ich die Verbindung herbekomme. Also wie ich mir die Kundendaten ziehe kann.

Hier ist die "Dokumention" seitens Provider. Damit kann ich leider nicht viel anfangen da ich nur im c# Universum unterwegs bin 😃

Ich bräuchte eigentlich nur Hilfe dabei wie ich die Verbindung aufbaue (Mich dort authentifiziere, Benutzername und PW ) und mir Daten ziehen kann.

Danke im Voraus.

23.12.2015 - 13:46 Uhr

Das ist mir schon bewusst. Aber wie löse ich das am besten dynamisch?

23.12.2015 - 13:28 Uhr

Danke Hypersurf für deine Antwort.
Mit deiner Variante funktioniert es! Aber nur teilweise.

Der Button funktioniert nur einmal. Beim zweiten verwenden wird kein Button mehr hinzugefügt? Wie kann man das fixen.

23.12.2015 - 09:39 Uhr

@LaTino Danke für die schnelle Antwort!

Ich baue mir nämlich einen "Datei-Sortierer"
Der Grund wofür ich diese Vorgehensweise brauche ist, dass ich mir beliebig viele buttons in meine Form hinzufügen möchte. Jeder Button soll dann auf einen anderen Verzeichnispfad führen in den die Datei verschoben werden kann.

Beispiel:

Mir wird die Datei Test.txt angezeigt.

jetzt habe ich die möglichkeit die bestehenden Buttons zu drücken "Desktop", "Dokumente" oder "neuer Pfad". Bei klick auf "Desktop" wird die datei auf den Desktop verschoben. Bei klick auf "Dokumente" in den Dokumente ordner.

-> das klappt auch alles.

Jetzt möchte ich jedoch bei dem klick auf "neuer Pfad" einen Button in meine Form generieren der auf das verzeichnis meiner wahl verweist. Der button soll dann konstant bestehen bleiben. Und die Funktion "neuer Pfad" soll auch bestehen. bleiben.

Kann ich das so mit LaTinos vorschlag lösen? Oder habe ich einen falschen Ansatz?

23.12.2015 - 09:10 Uhr

Guten Morgen,

ich möchte Buttons code-seitig zu meiner Form hinzufügen. Dies klappt auch mit:


Button dynamicbutton = new Button();
pnlPanel1.Controls.Add(dynamicbutton);

Mein Problem: Wie füge ich den eventHandler hinzu??

Der hinzugefügte Button hat ja leider keinerlei funktion also brauche ich ja meinen eventhandler "dynamicbutton_click". Wie füge ich diesen ebenfalls im Code hinzu?

16.11.2015 - 16:35 Uhr

Ich bin ein bisschen weitergekommen, jedoch funktioniert es immernoch nicht async.

class Program
    {
        static void Main(string[] args)
        {
            Program syncMethod = new Program();
            syncMethod.MainAsync(args).Wait();
        }


            public async Task MainAsync(string[] args)
            {
            string htmlStr;
            List<string> notWorkingUrls = new List<string>();
 
            StreamWriter fileToWrite = new System.IO.StreamWriter("Pfad zur DAtei...");
            WebResponse web_Response;

            List<string> domains = new List<string>();
            
            Program p = new Program();
            domains = p.getDomainList();

            
            foreach(string url in domains)
            {
                web_Response = null;
                
                HttpWebRequest httpWebRequest = (HttpWebRequest)HttpWebRequest.Create("http://" + url);
                WebRequest webRequest = (WebRequest)httpWebRequest;

                try
                {
                    web_Response = await webRequest.GetResponseAsync();
                }

                catch (WebException e)........
16.11.2015 - 15:25 Uhr

Ja links parallel prüfen. Das problem ist dass ich alle Exceptions überprüfen muss - unteranderem auch Timeout-Exception. Und bis diese Auftritt dauert es 60 Sekunden. Da die Anzahl der Timeout-Exceptions enorm hoch ist beansprucht das eineiges an Zeit.

16.11.2015 - 14:56 Uhr

Hi Leute,

ich komme nicht weiter. Und zwar habe ich eine ganze Reihe Urls die ich gerne testen würde. Da mein Programm dank der vielzahl der urls über 24 STunden dauert wollte ich es per Async Webrequest versuchen. Jedoch bekomme ich es nicht hin. Links wie Erstellen von asynchronen Zugriff bitte nicht als Referenz schicken. Ich habe wirklich alles probiert und kann es nicht in meinem Code umsetzen. Vielleicht kann mich ja jemand unterstützen.



List<string> notWorkingUrls = new List<string>();
           
            StreamWriter fileToWrite = new System.IO.StreamWriter("pfad zur text datei....");
            WebResponse web_Response;

            List<string> domains = new List<string>();
            
            Program p = new Program();
            domains = p.getDomainList();

            //string url = string.Empty;
            //while ((url = fileToRead.ReadLine()) != null)
            foreach(string url in domains)
            {
                web_Response = null;
                
                HttpWebRequest httpWebRequest = (HttpWebRequest)HttpWebRequest.Create("http://" + url);
                WebRequest webRequest = (WebRequest)httpWebRequest;


                try
                {
                    web_Response = webRequest.GetResponse();
                }
                catch (WebException e)
............... usw.....


Danke im vorraus

11.09.2015 - 16:15 Uhr

Hallo,

ich bräuchte kurz hilfe. Und zwar möchte ich zwei div Container übereinander platzieren.
Bevor ich das lange erkläre schaut euch bitte das Bild an. Ich denke dass das am verständlichsten ist.
Ich möchte eben einen Div-Wechsel ohne Postback.

Hat da jemand eine Idee oder einen Begriff für mich damit ich selber googlen kann?

Bild entfernt - Coffeebean

08.09.2015 - 14:51 Uhr

Hallo Leute,

ich habe ein Programm geschrieben dass mir aus einer Excel-Tabelle bestimmte werte holt und in Variablen abspeichert.
Jetzt möchte ich dass diese Werte in eine bereits geschriebene Word-Datei geschrieben werden. (Serienbrief)

Wie schaffe ich das? Kann mir das vielleicht jemand erklären oder einen passenden Link geben? Ich habe bisher nichts gefunden was mir wirklich weiterhilft.

Danke

03.09.2015 - 16:50 Uhr

Hey Leute,

Ich habe eine Frage.
Ich habe ein Programm geschrieben dass schon relativ groß und komplex ist. In einer meiner Funktionen frage ich den User ob er eine bestimmte Einstellung vornehmen möchte, ob er alles so lassen möchte und ob er das Programm Neustarten will.

Ich habe ein Problem mit dem Neustarten.
Da ich innerhalb einer Funktion bin kann ich nicht mit goto in meine Main-Methode springen und somit das Programm von neu starten lassen. Wie ist es mir also Möglich innerhalb meiner Funktion das Programm neu zu starten oder in meine Mainmethode zu springen??

switch (exposeOrnoteingabe.Key)
                {
                    case ConsoleKey.J:
                        exposeZähler++;
                        break;
                    case ConsoleKey.N:
                        break;
                    case ConsoleKey.Escape:
                        
                  ----------> ??????? <----------

                    default:
                        Console.WriteLine("Ungültige Eingabe");
                        goto erneut;

Danke im Voraus 😃

11.08.2015 - 10:59 Uhr

@MarsStein danke!
Ich bin alles nochmal durchgegangen und mir ist aufgefallen dass das

 <a href="/expose/26TWZ4U"><span></span></a> 

aufgerufen werden muss. Dies funtkioniert mit:


driver.FindElement(By.CssSelector("a[href*='expose']")).Click();  

-> Gelöst!

10.08.2015 - 11:22 Uhr

Danke für den Tipp, aber daran liegt es leider auch nicht.
Bei vorherigen Element-Aufrufen hat alles wunderbar funktioniert:


driver.FindElement(By.Name("ctl00$MainContent$dts$txtType")).SendKeys("Wohnung mieten");
                driver.FindElement(By.Name("ctl00$MainContent$dts$txtLocation$txtLocation")).SendKeys("90411" + Keys.Enter);

Doch bei dem jetztigen Aufruf des Div-Containers / Css klappt es irgendwie nicht.
Ich habe schon etliche Variationen des Codes ausprobiert, aber keiner funktioniert.

driver.FindElement(By.ClassName("listitem_new")).SendKeys(Keys.Enter);
driver.FindElement(By.ClassName("listitem_new")).Click();
driver.FindElement(By.Name("listitem_new")).Click();
driver.FindElement(By.CssSelector(".listitem_new")).Click(); 

usw.....

10.08.2015 - 11:06 Uhr

Danke schon mal für die Antwort.
Ich bekomme schon mal keine Fehlermeldung mehr. Dennoch wird nicht zu der seite navigiert.


driver.FindElement(By.CssSelector(".listitem_new")).Click();

Mir kommt es so vor als würde der Code noch ignoriert werden. Oder als würde er das Element zwar finden aber nicht anspringen.

10.08.2015 - 10:36 Uhr

@malignate Wie rufe ich es dann auf?

10.08.2015 - 10:13 Uhr

In C#
In verbindung mit dem Selenium Webdriver gibt es FindElement.

10.08.2015 - 10:07 Uhr

Hallo Zusammen,

ich schreibe gerade ein Screenshotprogram das automatisch auf eine Webseite geht, zu einem bestimmten Punkt navigiert und dann einen Screenshot generiert.

Mein Problem:
Das "navigieren zu diesem Punkt".
Also das aufrufen der Classe via "driver.FindElement".

Der Quellcode der Seite:

<div class="divObject  listitem_new_wrap" estateid="38633370">
            <div class="listitem_new ">
                <a href="/expose/26TWZ4U"><span></span></a>
                <div class="listimage">
                    <span class="color_new"></span>
                    
                    <span class="imagecount"><i class="icon_camera"></i>10</span></div>

Diesen Bereich möchte ich mit driver.FindElement anspringen. Aber ich weiß nicht wie (also die Syntax) Ich habe schon einiges außprobiert. z.B.:
driver.FindElement(By.CssSelector("listitem_new")).Click();

Kann mir jemand weiterhelfen?

Danke im Voraus 😃

15.06.2015 - 15:50 Uhr

inflames2k vielen Dank für die Information! Ist mir noch gar nicht aufgefallen. 👍 😁 👍

15.06.2015 - 13:44 Uhr

OK danke hypersurf für die schnelle Antwort. Ich habe meinen Code jetzt dementsprechend angepasst. Jetzt wird mir aber gar kein Ergebnis mehr ausgegeben, nicht mal wenn ich die Domain komplett eingebe??

Korrigiere:
Funktioniert doch.


sqlCommand.Parameters.Add("@MID",'%' + eingabe + '%');

sqlCommand.Parameters.Add("@MID", '%' + eingabe +** '%'**);

es hat nur dieser kleine Zusatz gefehlt " + '%' ".

Danke hypersurf!

15.06.2015 - 13:29 Uhr

Hey Leute,

ich brauch mal wieder euere Hilfe.
Und zwar habe ich eine SQL Datenbank mit 2 Spalten.
In der einen Spalte steht eine ID und in der anderen eine Domain.
Mein Ziel:
Ich möchte einen Teil der Domain eingeben (z.B. "mycsharp") (Kompletter Text in meiner Domain-Spalte lautet jedoch: "www.mycsharp.de")
Und anschließend die ID zurückbekommen.

Mein Problem:
Ich muss immer komplett "www.mycsharp.de" anstatt mycsharp oder einfach nur sharp eingeben.

Kann mir jemand weiterhelfen?

 Console.WriteLine("Geben Sie eine Domain ein nach der gesucht werden soll:");
            string eingabe = Console.ReadLine();

            SqlCommand sqlCommand = new SqlCommand();
            sqlCommand.Connection = new SqlConnection("Data Source=Server;Initial Catalog=test;Integrated Security=True;Connect Timeout=20");  // SQL Verbindungsstring
            sqlCommand.Connection.Open();

            sqlCommand.Parameters.Add("@DM", eingabe);
            sqlCommand.CommandText = "SELECT MedienId FROM Domain.List WHERE Domain LIKE @DM"; // SQL Query

            SqlDataReader sqlDataReader = sqlCommand.ExecuteReader();  // Select ausführen

            while (sqlDataReader.Read()) // Lese solange Werte vorhanden sind
            {
                int variable = sqlDataReader.GetInt32(0); // Spalte 0 der Abfrage auslesen
                Console.WriteLine(sqlDataReader.GetInt32(0));
            }

            sqlCommand.Connection.Close();

            Console.WriteLine("\n\n");

10.06.2015 - 11:40 Uhr

Hi Leute,

ist es möglich dass man eine Schleife in einer Konsolenanwendung parallel zum Rest laufen lassen kann?

Beispiel:
Ich habe einen Text der durch eine Schleife dauernd seine Farbe wechselt:

while (!Console.KeyAvailable)
            {
                String[] FarbenNamen = ConsoleColor.GetNames(typeof(ConsoleColor));
                int numColors = FarbenNamen.Length;
                Random rand = new Random();

                string colorName = FarbenNamen[rand.Next(numColors)];
                ConsoleColor color = (ConsoleColor)Enum.Parse(typeof(ConsoleColor), colorName);
                Console.ForegroundColor = color;
                Console.Write(TestTExt);
                Thread.Sleep(100);
                Console.Write("\b\b\b\b");

            } while (Console.ReadKey(true).Key != ConsoleKey.Enter) ;

Jetzt möchte ich eben dass dieser Text dauernd stehen bleibt(dauernd die Farbe wechselt) und der Rest meines Programmes weitergeführt werden kann.

ist das möglich?

Gruß
Carnifex

09.06.2015 - 10:56 Uhr

Hab es jetzt doch hinbekommen. Mit der KeyAvailable-Methode (Danke an Th69)

do
            {
                while (!Console.KeyAvailable)
                {
                    System.Console.SetCursorPosition(System.Console.WindowWidth / 2 - txt.Length / 2, System.Console.CursorTop);
                    WriteBlinkingText(txt, 1000, true);
                    WriteBlinkingText(txt, 500, false);
                }
            } while (Console.ReadKey(true).Key != ConsoleKey.Enter);
09.06.2015 - 10:23 Uhr

Danke für die beiden Tipps. Doch selbst nach langem probieren bekomme ich es nicht gebacken 🙄 ?(

08.06.2015 - 16:47 Uhr

Hey Leute,

ich habe eine kleines Problem. Und zwar habe ich eine Schleife gebaut die Meinen Text zum blinken bringt. Ich möchte jetzt dass die Schleife so lange läuft bis ich eine beliebige Taste auf der Tastatur drücke.

Mir ist mein Fehler auch bekannt:
Die Schleife stoppt weil sie bei dem Befehl ist auf eine Eingabe zu warten.

ConsoleKeyInfo weiter = Console.ReadKey();

Wie schaffe ich es jetzt dass sie den Befehl solange ignoriert bis er auch wirklich erst benutzt wird?

while (true)
            {
                WriteBlinkingText(txt, 500, true);
                WriteBlinkingText(txt, 500, false);

                ConsoleKeyInfo weiter = Console.ReadKey();
            if (weiter.KeyChar == 13)
            {
                break;
            }

29.05.2015 - 12:33 Uhr

Perfekt, funktioniert einwandfrei.
Danke pinki 😃

29.05.2015 - 12:24 Uhr

Hey Leute,

ich schreibe gerade ein kleines Programm bei dem man schätzen kann wie oft eine bestimmte Zahl in einer Zahlenreihenfolge vorkommt.

Ich bin jedoch auf ein Problem gestoßen:
Beispiel:
Die zu schätzende Zahl lautet 17.
Spieler 1 schätzt 20.
Spieler 2 schätzt 25.

Mein Programm zeigt mir an dass Sp 2 gewonnen hat?!
Wenn jedoch beide Spieler unter der zu schätzenden Zahl liegen (also z.B. 12 und 15) dann stimmt es.

Kann mir einer weiterhelfen?


int Sp1 = anzahl - Spieler1;
            int Sp2 = anzahl - Spieler2;
            string Fight2 = "\nSpieler 1 hat gewonnen! {0} ist näher an {1} als {2}.";
            string Fight = "\nSpieler 2 hat gewonnen! {0} ist näher an {1} als {2}.";

            Console.ForegroundColor = ConsoleColor.Green;
            if (Sp1 > Sp2)
            {
                Console.WriteLine(Fight, Spieler2, anzahl, Spieler1);
            }
            else if (Sp1 < Sp2)
            {
                Console.WriteLine(Fight2, Spieler1, anzahl, Spieler2);
            }
            else
                Console.WriteLine("\nKeiner hat gewonnen!");

08.05.2015 - 13:29 Uhr

Alles klar, Danke euch beiden 😃

08.05.2015 - 11:17 Uhr

Danke für den Goto Tipp 😃
hab es jetzt folgendermaßen gelößt (kurzes Feedback wäre nett 😃)

class Rechner
    {
         internal void IfAbfrage(ref decimal z1, ref decimal z2, ref string eingabe)
        {
            decimal ergebnis;

            switch (eingabe)
            {
                case "+":
                    ergebnis = z1 + z2;
                    Console.WriteLine(ergebnis);
                    break;
                case "-":
                    ergebnis = z1 - z2;
                    Console.WriteLine(ergebnis);
                    break;
                case "*":
                    ergebnis = z1 * z2;
                    Console.WriteLine(ergebnis);
                    break;
                case "%":
                    ergebnis = z1 % z2;
                    Console.WriteLine(ergebnis);
                    break;
                case "/":
                    ergebnis = z1 / z2;
                    Console.WriteLine(ergebnis);
                    break;
                default:
                    Console.WriteLine("Ungültige Rechenmethode!");
                    break;
            }
        }
     }
    class Program
    {
        static void Main(string[] args)
        {        
            Rechner ObjektRechner = new Rechner();
            decimal Zahl1, Zahl2;

            Console.WriteLine("Bitte geben Sie die erste Zahl ein:");
            Zahl1 = Convert.ToDecimal(Console.ReadLine());
            
            Console.WriteLine("Bitte geben Sie die gewünschte Rechenmethode ein: + - + % /");
       
            string eingabe = Console.ReadLine();
            
            Console.WriteLine("Bitte geben Sie die zweite Zahle ein:");
            Zahl2 = Convert.ToDecimal(Console.ReadLine());

            ObjektRechner.IfAbfrage(ref Zahl1, ref Zahl2, ref eingabe);
                    
            Console.ReadKey();
         }
    }

08.05.2015 - 10:27 Uhr

Vielen Dank vbprogger, genau das habe ich gesucht! 😃

08.05.2015 - 10:22 Uhr

Hi Leute,

ich habe zur Übung einen kleinen Taschenrechner in C# geschrieben (Als Konsolenanwendung).
Da mir nichts anderes eingefallen ist habe ich die Überprüfung wie gerechnet werden soll (also +,- usw.) mit einer If-Anfrage Formuliert.
Ich bin mir sicher dass das keine gute Lösung ist und wollte daher fragen ob ihr eine leichtere/bessere Lösung für mich habt?

class Rechner
    {
        internal void Plus(ref decimal z1, ref decimal z2)
        {
            decimal ausgabe;
            ausgabe = z1 + z2;
            Console.WriteLine(ausgabe);
        }
        internal void Minus(ref decimal z1, ref decimal z2)
        {
            decimal ausgabe;
            ausgabe = z1 - z2;
            Console.WriteLine(ausgabe);
        }
        internal void Mal(ref decimal z1, ref decimal z2)
        {
            decimal ausgabe;
            ausgabe = z1 * z2;
            Console.WriteLine(ausgabe);
        }
        internal void Modulo(ref decimal z1, ref decimal z2)
        {
            decimal ausgabe;
            ausgabe = z1 % z2;
            Console.WriteLine(ausgabe);
        }
        internal void Geteil(ref decimal z1, ref decimal z2)
        {
            decimal ausgabe;
            ausgabe = z1 / z2;
            Console.WriteLine(ausgabe);
        }
    }
    class Program
    {
     static void Main(string[] args)
        {
            Anfang:
            Rechner ObjektRechner = new Rechner();
            decimal Zahl1, Zahl2;

            Console.WriteLine("Bitte geben Sie die erste Zahl ein:");
            Zahl1 = Convert.ToDecimal(Console.ReadLine());

            
            Console.WriteLine("Bitte geben Sie die gewünschte Rechenmethode ein: (+,-,+,%,/");
            rechenschritte:
            string eingabe = Console.ReadLine();
            

            Console.WriteLine("Bitte geben Sie die zweite Zahle ein:");
            Zahl2 = Convert.ToDecimal(Console.ReadLine());

            

            if (eingabe == "+")
            {
                ObjektRechner.Plus(ref Zahl1, ref Zahl2);
            }
            else if (eingabe == "-")
            {
                ObjektRechner.Minus(ref Zahl1, ref Zahl2);
            }
            else if (eingabe == "*")
            {
                ObjektRechner.Mal(ref Zahl1, ref Zahl2);
            }
            else if (eingabe == "/")
            {
                ObjektRechner.Geteil(ref Zahl1, ref Zahl2);
            }
            else if (eingabe == "%")
            {
                ObjektRechner.Modulo(ref Zahl1, ref Zahl2);
            }
            else
            { 
                Console.WriteLine("Ungültige Eingabe! Bitte geben Sie das Zeichen erneut ein");
                goto rechenschritte;
            }

            Console.ReadKey();
            goto Anfang;

            
        }
    }

Danke schonmal 😃

06.05.2015 - 10:47 Uhr

@Th69 Danke für den Tipp!
@Ezio Danke auf für deinen Tipp 😃

@Alle Es funktioniert jezt mit dem unten stehenden Code:


string eingabe = txtEingabe.Text;
            int zähler = 1;


            lstbx.Items.Add(eingabe);
            txtEingabe.Text = "";
            
            string lkjlk = lstbx.Text;

            zähler = lstbx.Items.Count - 1;

            string Ausgabe = lstbx.Items[zähler].ToString();

            string path = @"C:\Users\Carnifex\Pictures\WriteText.txt";
            
            using (StreamWriter sw = File.AppendText(path))
            {
                sw.WriteLine(Ausgabe);
            }  

06.05.2015 - 08:42 Uhr

@Th69

Mit Dem "Ausgabe-String" meine Ich den String "anzahl". In diesem String ist mein Text gespeichert der in die Datei geschrieben werden soll.
Und mein Problem ist halt jetzt dass ich die Textdatei immer überschreibe anstatt sie zu ergänzen.
Beispiel: Wenn mein String im ersten Durchlauf "aaa" heißt, wird in dem Textdokument "aaa" geschrieben.
Wenn mein String im zweiten Durchlauf "bbb" heißt, wird in dem Textdokument "bbb" geschrieben und somit "aaa" ersetzt.

Was ich will: Das "aaa" in dem Textdokument steht und eine Zeile darunter "bbb".

05.05.2015 - 16:25 Uhr

Hey Leute,

ich schreibe gerade eine kleine Anwendung (Windows - Form) bei der man die Möglichkeit hat einen Text in eine Textbox einzugeben und per Button-klick in eine Liste-Box eintragen zu lassen.
Gleichzeitig wird ein Text-Dokument erstellt. In dieses Dokument wird nun der List-Box-Text eingetragen.

Funktioniert auch **fast **alles!
Mein Problem:
Ich überschreibe logischerweiße immer wieder meinen Ausgaben-String.
Wie schaffe ich es dass der String nicht überschrieben sondern erweitert wird?

(Ja ich weiß, der Code könnte besser geschrieben sein 😄 Aber ich bin ja noch Anfänger!. Tipps nehme ich gerne an)

 string eingabe = txtEingabe.Text;
            string textFeld = eingabe;
            int zähler = 1;
                    
            
            lstbx.Items.Add(eingabe);
            txtEingabe.Text = "";

            string lkjlk = lstbx.Text;


            while (zähler < Convert.ToInt32((lstbx.Items.Count.ToString())))
            {
                zähler++;
            }


            string anzahl = lstbx.Items[zähler-1].ToString();
            
            System.IO.File.WriteAllText(@"C:\Users\Carnifex\Pictures\WriteText.txt", anzahl);
29.04.2015 - 08:39 Uhr

Hey Leute,
aaaalso: Ich habe es geschafft! ICh habe die Aufgabe am Anfang missverstanden: Man muss "eine" Teilsequenz des Alphabetes finden und rauslöschen. (Diese Teilsequenz ist wie ein Labyrinth aufgebaut). Mit dem unten-stehenden Code hat der benutzer die Möglichkeit zeile für Zeile eines "ABC-Labyrinths" einzugeben. z.B:
oiunabcnkl
leknfedlnl
dodhgalskf
addijklmno
lknnnlsrqp
ddnlkntnnd
knlknvuddd
kzzyxwdddd
dagdfgdsgg
sdgrgsrrrr

Nun wird das zusammenstehende Abc aus der Liste gelöscht gelöscht.


class Program
    {
        public static char[,] eingabe = new char[100,10];
        
        public static void Main(string[] args)
        {
            Console.WriteLine("Bitte geben sie die Buchstaben ein:");
            string[] eingabeString = userEingabe();
            Console.Write("\n"); //geht in eine neue Zeile damit die Eingabe und die Ausgabe nicht als eines gesehen werden
            stringsInCharArraySpeichern(eingabeString);
            findeDenAnfang(eingabeString);
            anzeige(eingabeString);
            Console.ReadLine();                         //lässt die Konsole offen bei einer Eingabe schließt die Anwendung

        }

        private static string[] userEingabe()
        {
            string[] eingabeString = { Console.ReadLine(), Console.ReadLine(), Console.ReadLine(), Console.ReadLine(), Console.ReadLine(), Console.ReadLine(),
                                     Console.ReadLine(), Console.ReadLine(), Console.ReadLine(), Console.ReadLine(), };
            return eingabeString;
        }

        private static void stringsInCharArraySpeichern(string[] eingabeString)
        {
            for (int y = 0; y < eingabeString.Length; y++)  //iteriert durch die spalten
            {
                for (int x = 0; x < eingabeString[y].Length; x++) // iteriert durch die zeilen
                {
                    eingabe[x, y] = eingabeString[y].ElementAt(x);
                }
            }
        }

        private static void findeDenAnfang(string[] eingabeString)
        {
            for (int y = 0; y < eingabeString.Length; y++)  //iteriert durch die spalten
            {
                for (int x = 0; x < eingabeString[y].Length; x++) // iteriert durch die zeilen
                {
                    if (eingabe[x, y] == 97 || eingabe[x, y] == 65)
                    {
                        bool hatAnfangenGefunden = nachbarbuchstabeIstSequenziell(x, y, 97);
                        if (hatAnfangenGefunden == true)
                        {
                            break;
                        }
                    }
                }
            }
        }

        private static bool nachbarbuchstabeIstSequenziell(int x, int y, int ascii)
        {
            int asciiGroß = ascii - 32;
            if ((x >= 0) && (y >= 0) && (x < (eingabe.GetLength(0) - 1)) && (y < (eingabe.GetLength(1) - 1)) && (ascii <= 122) && (asciiGroß <= 90))
            {
                if (eingabe[x, y] == ascii || eingabe[x, y] == asciiGroß)
                {
                    if (eingabe[(x + 1), y] == (ascii + 1) || eingabe[(x + 1), y] == (asciiGroß + 1))
                    {
                        löscheVorherigesFeld(x, y, ascii);
                        löscheVorherigesFeld(x, y, asciiGroß);
                        x += 1;
                        ascii += 1;
                        asciiGroß += 1;
                        nachbarbuchstabeIstSequenziell(x, y, ascii);
                        return true;
                    }
                    if ((x - 1 >= 0))
                    {
                        if (eingabe[(x - 1), y] == (ascii + 1) || eingabe[(x - 1), y] == (asciiGroß + 1))
                        {
                            löscheVorherigesFeld(x, y, ascii);
                            löscheVorherigesFeld(x, y, asciiGroß);
                            x -= 1;
                            ascii += 1;
                            asciiGroß += 1;
                            nachbarbuchstabeIstSequenziell(x, y, ascii);
                            return true;
                        }
                    }

                    if (eingabe[x, (y + 1)] == (ascii + 1) || eingabe[x, (y + 1)] == (asciiGroß + 1))
                    {
                        löscheVorherigesFeld(x, y, ascii);
                        löscheVorherigesFeld(x, y, asciiGroß);
                        y += 1;
                        ascii += 1;
                        asciiGroß += 1;
                        nachbarbuchstabeIstSequenziell(x, y, ascii);
                        return true;
                    }
                    if ((y - 1 >= 0))
                    {
                        if (eingabe[x, (y - 1)] == (ascii + 1) || eingabe[x, (y - 1)] == (asciiGroß + 1))
                        {
                            löscheVorherigesFeld(x, y, ascii);
                            löscheVorherigesFeld(x, y, asciiGroß);
                            y -= 1;
                            ascii += 1;
                            asciiGroß += 1;
                            nachbarbuchstabeIstSequenziell(x, y, ascii);
                            return true;
                        }
                    }
                    if ((eingabe[x, y] == 97 || eingabe[x, y] == 65) == false)
                    {
                        eingabe[x, y] = ' ';
                    }
                }
            }
            return false;
        }

        private static void löscheVorherigesFeld(int x, int y, int ascii)
        {
            if (eingabe[x, y] == ascii || eingabe[x, y] == ascii)
            {
                eingabe[x, y] = ' ';
            }
        }
      
        private static void anzeige(string[] eingabeString)
        {
            for (int y = 0; y < eingabeString.Length; y++)  //iteriert durch die spalten
            {
                for (int x = 0; x < eingabeString[y].Length; x++) // iteriert durch die zeilen
                {
                    Console.Write(eingabe[x, y]);            //zeigt jeden Buchstaben vom char array an
                }
               Console.Write("\n");              //geht in eine neue Zeile damit char arrays einzeln angezeigt werden    
            }
             
        }
        
    }
}

Der Code hat bestimmt ein paar macken, aber er funktioniert!

27.04.2015 - 08:18 Uhr

@chilic das o kommt weg weil unter dem o ein n ist.
Mir ist gerade erst aufgefallen dass das Ganze wie eine Tabelle aufgebaut ist und die Teilsequenzen des ABC's sowohl senk- als auch Waagerecht beachtet werden müssen -.-. Das macht das ganze noch eine Nummer schwieriger.

24.04.2015 - 16:51 Uhr

Danke EnjoX für den Tipp, ich werde mich jetzt erstmal dran setzen und rumprobieren 😃

24.04.2015 - 15:45 Uhr

Hallo Zusammen,

ich bin ganz neu in dem Gebiet der Programmierung und habe ein kleines Problem:
Ich habe eine Eingabefunktion in die der Benutzer folgendes eingeben soll:
z.B. :
abcyqrstik
rhdapbhuev
gfelomwvqc
hostnixagd
ijklmuyplb
kvotayzirs
dgwpxgajce
yihqkntrbm
ofzadbnpxl
mrtcwzfuyb

Jetzt soll meine Konsolenanwendung alle Sequenzen aus dem Alphabet rausschmeisen, so dass nur noch der Rest da steht:

y ik
rh a bh ev
l m qc
ost i agd
u plb
kvotay irs
dgwpxgajce
yihqkntrbm
ofzadbnpxl
mrtcwzfuyb


abcyqrstik
rhdapbhuev
gfelomwvqc
hostnixagd
ijklmuyplb
kvotayzirs
dgwpxgajce
yihqkntrbm
ofzadbnpxl
mrtcwzfuyb

   y    ik
rh a bh ev
   l m  qc
ost i agd
     u plb
kvotay irs
dgwpxgajce
yihqkntrbm
ofzadbnpxl
mrtcwzfuyb

Ich habe mir überlegt dass ich Stelle für Stelle überprüfe also ob jetzt nach a wirklich b kommt, wenn ja dann weg, wenn nicht dann stehen lassen. Jedoch weiß ich nicht den entsprechenden Befehl/Code. Kann man das mit einer Schleife lösen?

Danke schon mal 😃