Announcement

Collapse
No announcement yet.

Code aus Textdatei lesen und umsetzen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Code aus Textdatei lesen und umsetzen

    Moin,
    wie der Titel schon sagt, ich würd gerne wissen wie ich es hinbekomme das ich einen code aus einer Textdatei lesen kann den er dann auch umsetzt ?


    Z.B. steht in der Textdatei "test.txt":

    checkBox1.Text = "Hallo";

    und nun soll er wenn ich im programm auf button1 klicke diesen code rauslesen und ausführen.

    Wie geht das ???
    Hoffe auf Antwort !!!!!!!!

    MfG
    Skip
    www.pfw.de.ki

  • #2
    Hallo,

    normalerweise geht das nicht: C# ist eine Programmiersprache mit Compiler, keine Script-Sprache. Für "Fachleute" gibt es Möglichkeiten, dies mit Reflection zu realisieren. Eine Variante ist zu finden unter C# Scripting.

    Gruß Jürgen

    Comment


    • #3
      Danke für die schnelle Antwort Jürgen !!!!!

      Naja nen "Fachmann" bin ich nicht, schade dachte mir schon das das nicht (so einfach) geht. Trotzden danke !!
      www.pfw.de.ki

      Comment


      • #4
        Hallo Skip,

        Du kannst Dein Problem mit dem CodeDom Namespace des dotNet-Frameworks lösen. Damit steht ein vollständiger Compiler zur Verfügung lösen. Mir fehlt jetzt die Zeit, ein Beispiel zu posten, aber vielleicht kannst Du damit was anfangen:
        http://www.codeproject.com/KB/dotnet/DotNetScript.aspx
        und
        http://www.csharpfriends.com/Article...?articleID=118

        Ansonsten im Netz oder der SDK/MSDN-Doku nach CodeDom suchen.

        HTH
        Peter
        Zuletzt editiert von Peter Enz; 24.01.2009, 22:02.

        Comment


        • #5
          Danke !

          Noch ne andere Frage, kann man mit einer for-Schleife die parameter mehrere Objekte ändern ?
          z.B. (anschaulich):

          ich habe:
          checkBox1
          checkBox2
          checkBox3
          ....
          checkBox25


          for (int n = 1; n <= 25; n++)
          {
          checkBox[n].Location = new Point(newx, newy);
          }
          www.pfw.de.ki

          Comment


          • #6
            Also deine Schleife funktioniert tatsächlich, aber dann solltest du dazu auch deine Checkboxen in einem Chekcboxen-Array halten. Den Namen einer Variable zur Laufzeit ändern kann eigentlich nur Perl...
            Ein kleines Beispiel zum Verständnis (jaja es geht toller ich weiß)
            Code:
            Checkbox[] checkboxList = new Checkbox[25] {checkbox1, checkbox2, checkbox3,..., checkbox25};
            
            //jetzt kann deine For-Schleife kommen
            Ach ja, und immer daran denken, dass schon Raketen wegen falschen for-Schleifen abgestürzt sind. Arrays haben unter C# einen Nullbasierten Index, also lieber mit (int i=0; i<checkboxList.Length; i++) arbeiten und nicht bei 1 Anfangen.
            Just be DRY and KISS your customers.

            Comment


            • #7
              Originally posted by Frischmilch View Post
              Also deine Schleife funktioniert tatsächlich, aber dann solltest du dazu auch deine Checkboxen in einem Chekcboxen-Array halten.
              Na, das "Array" gibt es doch schon. Jedes Control hat eine ControlsCollection, in der alle seine "Untercontrols" stehen. Man kann einfach rekursiv über diese Collection iterieren, um alle Controls zu bekommen. Man könnte zum Beispiel, um alle Checkboxen innerhalb einer Form zu setzen, folgendes schreiben:

              [highlight=c#]
              private static void SetCheckBoxes(Control control)
              {
              if (control != null)
              {
              foreach (Control c in control.Controls)
              {
              CheckBox checkBox = c as CheckBox;
              if (checkBox != null)
              {
              checkBox.Checked = true;
              }
              SetCheckBoxes(c);
              }
              }
              }
              [/highlight]

              Und aufgerufen wird die Methode dann mit SetCheckbox(formVariable).

              Gruß
              Peter

              @Skip:
              Für ein neues Thema solltest Du auch einen neuen Thread mit passendem Titel anlegen.

              Comment

              Working...
              X