Announcement

Collapse
No announcement yet.

Schreibschutz setzen und aufheben

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

  • #16
    Wenn ich nach "Imports System.IO"

    [highlight=vb.net]
    Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click



    End Sub
    End Class
    [/highlight]

    einfüge, dann kann ich die "Form1.vb*(Entwurf)" wieder öffnen, aber wie starte ich jetzt den Programmteil Deines Codes?

    vG

    fredyx
    Zuletzt editiert von fredyx; 23.11.2008, 18:49.

    Comment


    • #17
      Ist alles in der Fehlermeldung beschrieben.

      Da ich deinen Code nicht sehe kann ich nichts sagen. Aber das solltest du schon können eine Methode in den Code zu kopieren. Du hast ja schon mehr erreicht

      mfG Gü
      "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

      Comment


      • #18
        Hallo Gü,

        ich hatte noch mal eine Frage nachgeschoben!!

        Comment


        • #19
          Ja, hab ich schon gesehen -> mach mich nicht schwach

          Kopiere die Methode (SetReadOnly) irgendwo innerhalb deiner Klasse hinein und rufe in Button1_Click SetReadOnly auf.

          mfG Gü
          "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

          Comment


          • #20
            Auch auf die Gefahr hin, dass ich Dich jetzt nerve, der folgende Code ist mein vollständiges Testprogramm, aber bei "SetReadOnly()" im Button 1 habe ich die Fehlermeldung:
            Der Name "SetReadOnly" wurde nicht deklariert!


            [highlight=vb.net]
            Imports System.IO

            Public Class Form1

            Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

            SetReadOnly()

            End Sub
            End Class


            Namespace Datei___Schreibschutz


            Public Class Program


            Public Sub Main(ByVal args As String())


            Dim path As String = "E:\Test"
            SetReadOnly(path, True)

            End Sub
            Public Sub SetReadOnly(ByVal path As String, ByVal yes As Boolean)


            Dim fi As New FileInfo(path)
            Dim attr As FileAttributes = fi.Attributes
            If yes Then


            attr = attr Or FileAttributes.[ReadOnly]
            Else
            attr = attr And Not FileAttributes.[ReadOnly]
            End If
            fi.Attributes = attr
            End Sub
            End Class
            End Namespace
            [/highlight]

            Comment


            • #21
              Muss ich darauf antworten

              Lies meine vorigen Antwort und schau was du gemacht hast. Wenn das nichts hilft mach mal eine 1/2 Stunde Pause - das sind Fehler die nicht einmal ein Anfänger macht und du wie ich wissen dass du (viel) mehr kannst.

              mfG Gü
              "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

              Comment


              • #22
                Um dem ein Ende zu setzen:
                [highlight=vbnet]
                Imports System
                Imports System.IO
                Imports System.Windows.Forms

                Namespace WindowsFormsApplication1
                Public Partial Class Form1
                Inherits Form
                Public Sub New()
                InitializeComponent()
                End Sub

                Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs)
                If openFileDialog1.ShowDialog() = DialogResult.OK Then
                Dim path As String = openFileDialog1.FileName

                SetReadOnly(path, False)
                End If
                End Sub

                Public Shared Sub SetReadOnly(ByVal path As String, ByVal yes As Boolean)
                Dim fi As New FileInfo(path)
                Dim attr As FileAttributes = fi.Attributes

                If yes Then
                attr = attr Or FileAttributes.[ReadOnly]
                Else
                attr = attr And Not FileAttributes.[ReadOnly]
                End If

                fi.Attributes = attr
                End Sub
                End Class
                End Namespace
                [/highlight]

                mfG Gü
                "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

                Comment


                • #23
                  Hallo Gü,

                  ich kann ja Deinen Unmut verstehen, aber was Dir so selbstverständlich vorkommt ist für mich verwirrend, weil ich gar nicht richtig verstehe, was da eigentlich wo warum passiert. Ich wundere mich manchmal selber, dass ich durch probieren und gewisse "Eingebungen" immer wieder was hin kriege.

                  Die ganzen Spezialausdrücke lese ich zwar immer wieder und habe auch Erklärungen dazu gelesen, aber so richtig verinnerlicht habe ich sie noch nicht.
                  Namespace?
                  Klasse?
                  Member?
                  überladen? usw.

                  Ich glaube Du musst mir doch noch antworten, aber ich werde Deinen Rat befolgen und jetzt mal Pause machen.

                  vG

                  fredyx

                  Comment


                  • #24
                    1. ich habe keinen Unmut (gegen dich). Verstehe blos nicht warum dir so einfache Dinge plötzlich so schwer fallen.

                    Namespace (Namensraum)
                    Deklariert einen Gültigkeitsbereich der es ermöglicht Code zu organisieren und (global) eindeutige Bezeichner zu erstellen.
                    Ähnlich wie durch Assemblies (EXE, DLL) Dateien physisch organisiert sind kann durch Namespaces der Code logisch organisiert sein. Dabei kann sich ein Namespace durchaus auf mehrere Assemblies erstrecken und umgekehrt.

                    Klasse
                    Das Herz der objektorientierten Programmierung. Stellt einen Bauplan für die daraus instanzierten, d.h. erstellten, Objekte dar.
                    Noch einfacher: Eine Klasse ist das Stück Code das definiert welche Methoden, Eigenschaften und Felder (Variablen) vorhanden sind. Wird eine Klasse instanziiert entsteht daraus ein Objekt das genau diese Member hat.
                    Eine Klasse bzw. ein Member davon kann statisch sein, was heißt dass darauf nicht erst nach Erstellung (Instanziierung) eines Objekts zugegriffen werden kann sonder direkt über die Klasse. Dies stellt eine Sonderform dar - ist aber durchaus praktisch.

                    Member (Mitglied)
                    Ein Feld, Eigenschaft, Methode, Ereignis - alles - was für eine Klasse deklariert ist.

                    überladen
                    Überladen heißt wenn es zu einer Methode mehrere Varianten gibt. Dies kann sein dass unterschiedliche Argumente übergeben werden und/oder der Rückgabetyp (Typ des Ergebnisses) anders ist.


                    Kein Anspruch auf Vollständigkeit! Dient nur als Kurzeinführung!

                    mfG Gü
                    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

                    Comment


                    • #25
                      Hallo Gü,

                      danke für die geraffte Info, aber mir kommt trotzdem keine Idee, als was ich denn "SetReadOnly" deklarieren soll.
                      Ich verstehe "SetReadOnly" als SUB und das rufe ich normalerweise einfach mit seinem Namen und ggfs mit seinen Parametern auf, denn deklariert ist es ja als SUB!!!

                      Jetzt wäre es doch nett von Dir, wenn Du die Katze aus dem Sack ließest, denn mir fällt dazu nichts weiter ein.

                      vG

                      fredyx

                      Comment


                      • #26
                        Ich verstehe "SetReadOnly" als SUB und das rufe ich normalerweise einfach mit seinem Namen und ggfs mit seinen Parametern auf, denn deklariert ist es ja als SUB
                        Genauso ist es und wird auch so im Beispiel so verwendet.

                        mfG Gü

                        PS: Wenn du was nicht weißt -> frag einfach. Sollte ich dich "hart" behandelt haben tut mir das leid. Wahrscheinlich deshalb weil ich weiß dasst du das kannst und heute nur einen - wie soll ich sagen - schlechten Tag hattest.
                        "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

                        Comment


                        • #27
                          Aber weshalb kommt dann die Fehlermeldung zu dem Aufruf von "SetReadOnly" im Button1, der besagt, dass SetReadOnly nicht deklariert wurde?

                          Hier noch mal der Code:

                          [highlight=vb.net]
                          Imports System.IO

                          Public Class Form1

                          Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click


                          SetReadOnly()


                          End Sub
                          End Class


                          Namespace Datei___Schreibschutz


                          Public Class Program


                          Public Shared Sub Main(ByVal args As String())


                          Dim path As String = "E:\Test"
                          SetReadOnly(path, True)

                          End Sub
                          Public Shared Sub SetReadOnly(ByVal path As String, ByVal yes As Boolean)


                          Dim fi As New FileInfo(path)
                          Dim attr As FileAttributes = fi.Attributes
                          If yes Then


                          attr = attr Or FileAttributes.[ReadOnly]
                          Else
                          attr = attr And Not FileAttributes.[ReadOnly]
                          End If
                          fi.Attributes = attr
                          End Sub
                          End Class
                          End Namespace
                          [/Highlight]

                          vG
                          fredyx

                          Comment


                          • #28
                            Liest du meine Antworten und meine Beispiele? Die Antwort steht ja da drin.

                            mfG Gü
                            "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

                            Comment


                            • #29
                              Originally posted by gfoidl View Post
                              Liest du meine Antworten und meine Beispiele? Die Antwort steht ja da drin.

                              mfG Gü
                              Heute bist Du aber hartneckig!
                              Ja ich habe alles gelesen, aber finde die Antwort trotzdem nicht!



                              vG

                              fredyx

                              Comment


                              • #30
                                Dann vergleiche http://entwickler-forum.de/showpost....3&postcount=22 mit deinem Beispiel und lösche bei deinem alles was bei meine nicht drin ist und ergänze in deinem alles was bei deinem fehlt.

                                mfG Gü
                                "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

                                Comment

                                Working...
                                X