Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo,

bin neu hier ^^!

Ich heiße Nadine und befinde mich zur Zeit im 1.Ausbildungsjahr zur Fachinformatikerin.

Ich bin noch blutige Anfängerin in C#, da ich vorher nur mit Visual Basic programmiert habe.

Ich sollte einen Taschenrechner programmieren, was ich auch soweit hin bekommen habe.

Nun soll ich die Rechenoperation in eine Textdatei schreiben, sprich:

12 - 3 = 9

9 + 2 = 11

11 * 5 = 55

55 / 10 = 5,5

usw.

Ich habe die Variablen wert1, wert2 und ergebnis.

Wie schreibe ich sie in eine Textdatei?

Ich freue mich sehr über eure Antworten :-)

Danke für deine Antwort, aber ich werde leider nicht draus schlau ^^" Ich hab noch nicht mit Klassen gearbeitet.

Hier mein Code, falls es dann verständlicher ist:


using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.IO;


namespace WindowsApplication3

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }


        double wert1 = 0;

        double wert2 = 0;

        double ergebnis = 0;

        double zahl1 = 1;

        double zahl2 = 2;

        double zahl3 = 3;

        double zahl4 = 4;

        double zahl5 = 5;

        double zahl6 = 6;

        double zahl7 = 7;

        double zahl8 = 8;

        double zahl9 = 9;

        double zahl0 = 0;

        bool plus = false;

        bool minus = false;

        bool mal = false;

        bool geteilt = false;

        bool geklickt = false;

        bool komma = false;



        private void button14_Click(object sender, EventArgs e)

        {


            if (geklickt)

            {

                textBox1.Text = "";

                geklickt = false;

            }



            if (textBox1.Text.StartsWith("0"))

            {

                textBox1.Text = "0";

            }

            else

            {

                textBox1.Text += zahl0.ToString();

            }




        }


        private void button5_Click(object sender, EventArgs e)

        {


            if (textBox1.Text == "0")

            {

                textBox1.Text = "";

            }



            if (geklickt)

            {

                textBox1.Text = "";

                geklickt = false;

            }


            textBox1.Text += zahl1.ToString();


        }


        private void button6_Click(object sender, EventArgs e)

        {


            if (textBox1.Text == "0")

            {

                textBox1.Text = "";

            }


            if (geklickt)

            {

                textBox1.Text = "";

                geklickt = false;

            }


            textBox1.Text += zahl2.ToString();

        }


        private void button7_Click(object sender, EventArgs e)

        {


            if (textBox1.Text == "0")

            {

                textBox1.Text = "";

            }


            if (geklickt)

            {

                textBox1.Text = "";

                geklickt = false;

            }


            textBox1.Text += zahl3.ToString();

        }


        private void button8_Click(object sender, EventArgs e)

        {


            if (textBox1.Text == "0")

            {

                textBox1.Text = "";

            }


            if (geklickt)

            {

                textBox1.Text = "";

                geklickt = false;

            }


            textBox1.Text += zahl4.ToString();

        }


        private void button9_Click(object sender, EventArgs e)

        {


            if (textBox1.Text == "0")

            {

                textBox1.Text = "";

            }


            if (geklickt)

            {

                textBox1.Text = "";

                geklickt = false;

            }


            textBox1.Text += zahl5.ToString();

        }


        private void button10_Click(object sender, EventArgs e)

        {


            if (textBox1.Text == "0")

            {

                textBox1.Text = "";

            }


            if (geklickt)

            {

                textBox1.Text = "";

                geklickt = false;

            }


            textBox1.Text += zahl6.ToString();

        }


        private void button11_Click(object sender, EventArgs e)

        {


            if (textBox1.Text == "0")

            {

                textBox1.Text = "";

            }


            if (geklickt)

            {

                textBox1.Text = "";

                geklickt = false;

            }


            textBox1.Text += zahl7.ToString();

        }


        private void button12_Click(object sender, EventArgs e)

        {


            if (textBox1.Text == "0")

            {

                textBox1.Text = "";

            }


            if (geklickt)

            {

                textBox1.Text = "";

                geklickt = false;

            }


            textBox1.Text += zahl8.ToString();

        }


        private void button13_Click(object sender, EventArgs e)

        {


            if (textBox1.Text == "0")

            {

                textBox1.Text = "";

            }


            if (geklickt)

            {

                textBox1.Text = "";

                geklickt = false;

            }


            textBox1.Text += zahl9.ToString();

        }


        private void button16_Click(object sender, EventArgs e)

        {

            textBox1.Text = "";

        }


        private void plusButton_Click(object sender, EventArgs e)

        {

            if (textBox1.Text == "")

            {

                textBox1.Text = "0";

            }

            else

            {

                this.wert1 = Convert.ToDouble(textBox1.Text);

                geklickt = true;

                plus = true;

                minus = false;

                mal = false;

                geteilt = false;

            }

        }


        private void button2_Click(object sender, EventArgs e)

        {

            if (textBox1.Text == "")

            {

                textBox1.Text = "0";

            }

            else

            {

                this.wert1 = Convert.ToDouble(textBox1.Text);

                geklickt = true;

                minus = true;

                plus = false;

                mal = false;

                geteilt = false;

            }

        }


        private void button3_Click(object sender, EventArgs e)

        {

            if (textBox1.Text == "")

            {

                textBox1.Text = "0";

            }

            else

            {

                this.wert1 = Convert.ToDouble(textBox1.Text);

                geklickt = true;

                mal = true;

                plus = false;

                minus = false;

                geteilt = false;

            }

        }


        private void button4_Click(object sender, EventArgs e)

        {

            if (textBox1.Text == "")

            {

                textBox1.Text = "0";

            }

            else

            {

                this.wert1 = Convert.ToDouble(textBox1.Text);

                geklickt = true;

                geteilt = true;

                plus = false;

                minus = false;

                mal = false;

            }

        }


        private void button1_Click(object sender, EventArgs e)

        {

            if (textBox1.Text.Contains(","))

            {

                komma = false;

            }

            else

            {

                komma = true;

                textBox1.Text += ",";

            }


        }





        private void button15_Click(object sender, EventArgs e)

        {


                if (textBox1.Text.IndexOf("-") >= 0)

                {

                    textBox1.Text = textBox1.Text.Remove(0, 1);

                }

                else

                {

                    textBox1.Text = "-" + textBox1.Text;

                }



        }




        private void gleichButton_Click(object sender, EventArgs e)

        {


            if (textBox1.Text == "")

            {

                textBox1.Text = "0";

            }


            if (wert1 == 0)

            {

                ergebnis = Convert.ToDouble(textBox1.Text);

            }



                wert2 = Convert.ToDouble(textBox1.Text);



            if (wert1<0 & wert2 <0)

                {

                    ergebnis = wert1 + wert2;

                    geklickt = false;

                    plus = false;

                    minus = false;

                    mal = false;

                    geteilt = false;

                }


            if (wert2 <0 & wert1 >0)

            {

                ergebnis = wert1 - wert2;

                geklickt = false;

                plus = false;

                minus = false;

                mal = false;

                geteilt = false;

            }



                if (plus == true)

                {

                    ergebnis = (wert1) + (wert2);

                }


                if (minus == true)

                {

                    ergebnis = (wert1) - (wert2);

                }


                if (mal == true)

                {

                    ergebnis = (wert1) * (wert2);

                }


                if (geteilt == true)

                {

                    if (wert2 == 0)

                    {

                        textBox1.Text = "ERROR";

                    }



                    else

                    {

                        if (wert1 == wert2)

                        {


                            ergebnis = 1 / wert1;

                            textBox1.Text = ergebnis.ToString();


                        }


                        else

                        {


                            ergebnis = (wert1) / (wert2);

                            textBox1.Text = ergebnis.ToString();


                        }

                    }


                }

                else

                {

                    textBox1.Text = ergebnis.ToString();


                }


                wert2 = 0;

                wert1 = 0;

                ergebnis = 0;

                plus = false;

                minus = false;

                mal = false;

                geteilt = false;

            }


        private void button17_Click(object sender, EventArgs e)

        {

        }

        }

}

Ich möchte das Schreiben in eine Textdatei durch einen Button Klick auslösen. Es soll jedesmal die einegebene Rechnung (z.B. 9 + 2 = 11) in eine neue Zeile geschrieben werden. Vielleicht so:

StreamWriter MyStreamWriter = new StreamWriter(@"C:\Dokumente und Einstellungen\nm\Eigene Dateien\Taschenrechner\taschenrechner.txt");


      MyStreamWriter.Write(wert1.ToString() + wert2.ToString()) = ergebnis.ToString();

???

Wie bekomme ich es hin, das wenn ich auf + klicke auch plus zwischen wert1 und wert2 steht und wenn da - steht, eben -? Vielleicht mit meiner Variablen "geklickt" die alle Operatoren beinhaltet?

Hi,

Ich hab noch nicht mit Klassen gearbeitet.

Doch, wenn auch unbewusst...:)

double zahl1 = 1;

        double zahl2 = 2;

        double zahl3 = 3;

        double zahl4 = 4;

        double zahl5 = 5;

        double zahl6 = 6;

        double zahl7 = 7;

        double zahl8 = 8;

        double zahl9 = 9;

        double zahl0 = 0;
Brauchst du diese wirklich? Wenn ja, pack das in ein double-Array, das ist einfacher.
Vielleicht mit meiner Variablen "geklickt" die alle Operatoren beinhaltet?
Nein, das ist doch eine bool-Variable.

StreamWriter MyStreamWriter = new StreamWriter(@"C:\Dokumente und Einstellungen\nm\Eigene Dateien\Taschenrechner\taschenrechner.txt");


      MyStreamWriter.Write(wert1.ToString() + wert2.ToString()) = ergebnis.ToString();

Das sieht doch schon ganz brauchbar aus:beagolisc Alles was du brauchst steht doch in der Textbox (textbox1) drin, einfach deren Text in die Datei schreiben, und danach MyStreamWriter schließen. So sollte es gehen:

StreamWriter writer = null;

    if (!File.Exists("hier kommt der filename hin"))

    {

        writer = new StreamWriter(File.Create("filename"));

    }

    else

    {

        writer = new StreamWriter(File.Open("filename",FileMode.Append, FileAccess.Write));

    }


    writer.WriteLine(textbox1.Text);            

    writer.Close();        

Super, danke es funktioniert ^^!

Aber in der Textdatei steht nur das Ergebnis.

Ich möchte ja gerne, das da z.B.

12 - 3 = 9

steht.

Hat sich erledigt, hab es selber hinbekommen ^^!!!

Ja ist ja auch logisch, Du schreibst mit deinem Writer ja auch nur TextBox1.Text in die Datei.


writer.WriteLine(String.Format("{0} {1} {2} = {3}", wert1.ToString(), operator, wert2.ToString(), ergebnis.ToString());

operator müßtest du natürlich noch füllen, je nach Rechenoperation.

So sollte es gehen:


StreamWriter writer = null;

    if (!File.Exists("hier kommt der filename hin"))

    {

        writer = new StreamWriter(File.Create("filename"));

    }

    else

    {

        writer = new StreamWriter(File.Open("filename",FileMode.Append, FileAccess.Write));

    }


    writer.WriteLine(textbox1.Text);            

    writer.Close();        

Igitt, dann doch lieber diesen Konstruktor benutzen, da muss man nicht abfragen, ob die Datei bereits existiert.

(Programmierer, schreibfaul und so. :floet:)

(Außerdem gibts ja noch FileMode.OpenOrCreate)

Ich bins nochmal.

Also wie gesagt läuft alles soweit. Jetzt soll ich meine Aufgabe erweitern.

Es soll nicht nur 9 + 2 = 11 in die Textdatei geschrieben werden, sondern z.B.:

6 + 2 - 3 + 4 * 5 / 3 = 15

Die Variablen wert1 und wert2 merken sich ja immer nur die zuletzt eingebenen Zahlen und ob + - * oder / geklickt wurde.

Wie kann ich das am besten anstellen?

Hier nochmal der Code:


            StreamWriter writer = null;

            if (!File.Exists(Path.Combine(Application.StartupPath, "taschenrechner.txt")))

            {

                writer = new StreamWriter(File.Create(Path.Combine(Application.StartupPath, "taschenrechner.txt")));

            }

            else

            {

                writer = new StreamWriter(File.Open("taschenrechner.txt", FileMode.Append, FileAccess.Write));

            }


            string log = Convert.ToString(wert1);


            if (plus == true)

            {

                log = log + " + ";

            }

            if (minus == true)

            {

                log = log + " - ";

            }

            if (mal == true)

            {

                log = log + " * ";

            }

            if (geteilt == true)

            {

                log = log + " / ";

            }

            log = log + Convert.ToString(wert2) + " = " + textBox1.Text;

            writer.WriteLine(log);

            writer.Close();

Wie kann ich das am besten anstellen?

Mehr in Klassen denken.

Bsp:


    public interface ICalculationTerm

    {

        double Value1;

        double Value2;

        char Operator;

        double Result;

    }

Tut mir leid, ich habe noch nicht mit Klassen gearbeitet :-(

Wie gesagt ich bin totale Anfängerin.

Wo genau soll der Code hin und wozu dient er genau?

Das ist eigentlich nur ein Interface für Klassen.

D.h. alle Klasse, die dieses Interface implementieren, müssen diese Properties zur Verfügung stellen.

Sinn der Klasse ist ganz einfach; als Beispiel nehm ich mal die von dir vorgegebene Gleichung:

6 + 2 - 3 + 4 * 5 / 3 = 15

Diese verlegt man in Teilstücke, d.h.:

  • ICalculationTerm1(6, 2,+)
  • ICalculationTerm2(ICalculationTerm1.Result, 3,-)
  • ICalculationTerm3(4, 5,*)
  • ICalculationTerm4(ICalculationTerm3.Result, 3,/)
  • ICalculationTerm5(ICalculationTerm2.Result, ICalculationTerm4.Result,+)

Ergo: ICalculationTerm5.Result == 33.333333333

Bearbeitet von TDM

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.