Announcement

Collapse
No announcement yet.

Datum richtig deklarieren

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

  • #16
    wenn ich schreibe:

    Array.Sort(Matrix, myArrayComparer)

    kommt in der Laufzeit die Meldung:

    "Das Objekt des Typs Testprogramm.MyArrayComparer kann nicht in Typ System.Collections.IComparer umgewandelt werden."

    Aber vorher scheint alles i.O.

    Wenn ich schreibe:

    Array.Sort(Array, myArrayComparer)

    kommt schon vor der Laufzeit zum 2. Array die Meldung:

    "Array" ist ein Typ und kann nicht als Ausdruck verwendet werden."

    und in der Laufzeit die Meldung:

    "Das Objekt des Typs Testprogramm.MyArrayComparer kann nicht in Typ System.Collections.IComparer umgewandelt werden."

    ?????????????????????

    vG

    fredyx

    Comment


    • #17
      Oh Mann,

      ist es so schwierig ein funktionierendes Beispiel anzupassen?

      Array.Sort(<deine Variable die den zu sortierenden Array speichert>, <Instanz der MyArrayComparer-Klasse>)

      Was geht da nicht?

      Poste deine Code (aber nicht als PDF sonder als Code) damit die noch verbleibenden Unklarheiten ausgeräumt werden kann.

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

      Comment


      • #18
        Dieser oder

        PHP Code:
         Private Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button1.Click

                Dim Matrix
        (45) As Integer
                Dim i
        jAs Integer

                
        For 0 To 4        'Zeilenzähler
                    For j = 0 To 3    '
        Spaltenzähler

                        k 
        = (6) + i
                        Matrix
        (ij) = Val(GroupBox2.Controls(String.Format("Textbox{0}"k)).Text)
                    
        Next

                Next
                
        '-----------------------------------------------------------------
                '
        Beginn der Sortierung nach eine Spalte
                
        '-------------------------------------------------------------------

                ' 
        Sortieren nach der 1. Spalte:
                
        Dim myArrayComparer As New MyArrayComparer()
                
        myArrayComparer.Spalte 0
                
        Array.Sort(Array, myArrayComparer)

                
        ' Sortierte Ausgabe:


                For i = 0 To 4        '
        Zeilenzähler
                    
        For 0 To 3    'Spaltenzähler

                        k = (j + 6) + 4 * i
                        GroupBox2.Controls(String.Format("Textbox{0}", k)).Text = k
                    Next

                Next
         
            End Sub

           
            Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

                Dim Matrix(4, 5) As Integer
                Dim i, j, k As Integer

                For i = 0 To 4        '
        Zeilenzähler
                    
        For 0 To 3    'Spaltenzähler

                        k = (j + 6) + 4 * i
                        GroupBox2.Controls(String.Format("Textbox{0}", k)).Text = k
                    Next

                Next
            End Sub
        End Class 

        Comment


        • #19
          Dieser??

          PHP Code:
          Private Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button1.Click

                  Dim Matrix
          (45) As Integer
                  Dim i
          jAs Integer

                  
          For 0 To 4        'Zeilenzähler
                      For j = 0 To 3    '
          Spaltenzähler

                          k 
          = (6) + i
                          Matrix
          (ij) = Val(GroupBox2.Controls(String.Format("Textbox{0}"k)).Text)
                      
          Next

                  Next
                  
          '-----------------------------------------------------------------
                  '
          Beginn der Sortierung nach eine Spalte
                  
          '-------------------------------------------------------------------

                  ' 
          Sortieren nach der 1. Spalte:
                  
          Dim myArrayComparer As New MyArrayComparer()
                  
          myArrayComparer.Spalte 0
                  
          Array.Sort(MatrixmyArrayComparer)

                  
          ' Sortierte Ausgabe:


                  For i = 0 To 4        '
          Zeilenzähler
                      
          For 0 To 3    'Spaltenzähler

                          k = (j + 6) + 4 * i
                          GroupBox2.Controls(String.Format("Textbox{0}", k)).Text = k
                      Next

                  Next
           
              End Sub 

          Comment


          • #20
            Code:
            Dim myArrayComparer As New MyArrayComparer()
            myArrayComparer.Spalte = 0
            Array.Sort(Matrix, myArrayComparer)
            Was geht da nicht? Hab den restlichen Code nicht geprüft.
            "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

            Comment


            • #21
              siehe mein Text von 22:48 Uhr

              Comment


              • #22
                siehe meine Beispiele
                "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

                Comment


                • #23
                  Ich kann eben auch nur feststellen, dass das Programm an dieser Stelle stehen bleibt mit der Meldung:

                  Das Objekt des Typs Testprogramm.MyArrayComparer kann nicht in Typ System.Collections.IComparer umgewandelt werden.

                  Irgendwie fühlt sich VB dazu aufgefordert was umzu wandeln, das aber nicht geht.

                  vG

                  fredyx
                  Zuletzt editiert von fredyx; 25.09.2008, 00:10.

                  Comment


                  • #24
                    siehe mein Text von 22:48 Uhr
                    Was soll das?

                    Kannst du nicht ein funktionierendes Beispiel anpassen? Poste dein Projekt dann werde ich schauen...

                    // Edit: Warum löscht du vorhergehende Posts mit "siehe mein Text von 22:48 Uhr"
                    Zuletzt editiert von gfoidl; 24.09.2008, 23:40.
                    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

                    Comment


                    • #25
                      Das Projekt ist zZ zu groß zum senden. Ich muss es erst noch verkleinern. Kommt aber noch heute.

                      Comment


                      • #26
                        Hallo,

                        ich bitte um Entschuldigung, wenn ich mich in Euer Zwiegespräch einmische, zumal ich die Anhänge nicht prüfe.

                        Ich habe die Deklaration von MyArrayComparer nicht gesehen. Könnte es sein, dass der Bezug auf IComparer fehlt? So klingt für mich jedenfalls die Fehlermeldung.

                        Gruß Jürgen

                        Comment


                        • #27
                          Hallo,

                          das Interface ist korrekt implementiert. Muss das Projekt von fredyx aber noch genau prüfen was falsch ist.

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

                          Comment


                          • #28
                            Hallo,

                            Problem war dass die Compare-Klasse für einen jagged Array - Integer()() - definiert war. Du hast die Matrix aber als rechteckigen Array deklariert - Integer(,) - und deshalb der Fehler. Das Sortieren einer Matrix als rechteckiger Array ist viel komplizierter als die eines zackigen (jagged) Arrays.

                            Korrekt:
                            Code:
                            Dim matrix As Integer()() = New Integer(4)() {}
                            Dim i, j, k As Integer
                            
                            For i = 0 To 4        'Zeilenzähler
                                matrix(i) = new Integer(5){}
                                For j = 0 To 3    'Spaltenzähler
                                    Dim index As Integer
                                    index = i * 4 + j + 6
                                        	
                                    ' Mit Integer.Parse einen Integer aus einem String holen
                                    matrix(i)(j) = integer.Parse(groupbox2.Controls(string.Format("Textbox{0}", index)).Text)
                                Next
                            Next
                            mfG Gü
                            "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

                            Comment


                            • #29
                              Auch hier noch mal danke!

                              vG

                              fredyx

                              Comment

                              Working...
                              X