if gleiche werte problem

  • VB.NET

Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von Killerjo96.

    if gleiche werte problem

    moin leute
    und zwar folgendes problem

    ich hat ein client und ein server
    der client schickt ein befehl

    VB.NET-Quellcode

    1. streamw.WriteLine("/admin |" & nick)



    so jetzt soll der server überprüfen ob der name "nick" (das ist der name vom chatuser") in der liste von "Admins" vom server ist
    naja da ist mein problem eben...
    mein code am server sieht so aus

    VB.NET-Quellcode

    1. Public Admins() As String = {"MVN050", "Serveradmin", "Specelg-net-bot"}
    2. If tmp.StartsWith("/admin ") Then
    3. Dim a() As String = tmp.Split("|"c)
    4. Dim admin As String = a(1)
    5. If admin = Admins Then
    6. Sendtoperson("/admin true", admin)
    7. Else
    8. Sendtoperson("/admin false", admin)
    9. End If

    allerdings sagt er mir das bei

    VB.NET-Quellcode

    1. If admin = Admins Then

    ein fehler ist?
    fehlercode
    Spoiler anzeigen
    Fehler 1 Fehler bei der Überladungsauflösung, da keine zugreifbare "=" mit diesen Argumenten aufgerufen werden kann:
    "Public Shared Operator =(a As String, b As String) As Boolean": Der Wert vom Typ "1-dimensionales Array von String" kann nicht in "String" konvertiert werden. C:\Users\Marvin\Documents\Visual Studio 2010\Projects\MultiServer Sample\MultiServer\MultiServer\Module1.vb 134 24 MultiServer


    wie mach ich nun das es geht? oder wäre da eine art liste wohl besser?
    Du kannst ein 1 Dimensionales Array nicht mit einem einfachen String verleichen... Du musst mit einer For Each Schleife die Admins durchgehen.. in etwas so: (Ungetestet)

    VB.NET-Quellcode

    1. For Each admn In Admins
    2. If admn = admin Then
    3. 'SEND TO Person (true) ' also der admin existiert.
    4. Exit For
    5. End If
    6. Next


    Hoffe hat dir etwas geholfen ;)
    Admins ist ein Array von Strings, admin ist ein String.
    Du musst feststellen, ob admin in Admins vorkommt:

    VB.NET-Quellcode

    1. Dim retval As Boolean = False
    2. For Each s As String In Admins.Where(Function(x) x = admin)
    3. retval = True
    4. Next
    5. If retval Then
    6. Sendtoperson("/admin true", admin)
    7. Else
    8. Sendtoperson("/admin false", admin)
    9. End If
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    RodFromGermany schrieb:

    Admins ist ein Array von Strings, admin ist ein String.
    Du musst feststellen, ob admin in Admins vorkommt:

    VB.NET-Quellcode

    1. Dim retval As Boolean = False
    2. For Each s As String In Admins.Where(Function(x) x = admin)
    3. retval = True
    4. Next
    5. If retval Then
    6. Sendtoperson("/admin true", admin)
    7. Else
    8. Sendtoperson("/admin false", admin)
    9. End If



    danke klappt so wunderbar ;)
    allerdings frag ich mich grade warum es nicht
    If retval=true Then
    heissen müsste?

    Dodo schrieb:

    Dann aber eine List(of String) nutzen, glaube Arrays haben keine Contains-Methode.
    Doch, Array funktioniert. Das hängt am IEnumerable:

    ObjectBrowser schrieb:

    Member of System.Linq.Enumerable
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Dodo schrieb:

    Aber wirklich so?
    Ich habs schnell mal probiert:

    VB.NET-Quellcode

    1. Dim Admins As String() = {"MVN050", "Serveradmin", "Specelg-net-bot"}
    2. Dim admin As String = "Serveradmin"
    3. If Admins.Contains(admin) Then
    4. ' bal
    5. End If
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    RodFromGermany schrieb:

    Dodo schrieb:

    Aber wirklich so?
    Ich habs schnell mal probiert:

    VB.NET-Quellcode

    1. Dim Admins As String() = {"MVN050", "Serveradmin", "Specelg-net-bot"}
    2. Dim admin As String = "Serveradmin"
    3. If Admins.Contains(admin) Then
    4. ' bal
    5. End If



    danke geht so auch wunderbar und is kürzer
    ich danke euch wie immer mal wieder ;)

    das heisst ich könnte mir auch mit einer msgbox "Admins" auslesen? also sehen welche namen da drinne sind oder wie?
    wäre für mich jetzt noch gut um zusehen welcher user überhaupt admin ist ;)

    solangsam nimmt mein programm gestallt an 8o

    MVN050 schrieb:

    also sehen welche namen da drinne sind oder wie?
    :?:
    Mein Beispiel ist nur ein Beispiel, das sich an Deinen Variableninhalten orientiert hat.
    Wenn Du Admin-Member auslesen willst, steht das auf einem gaaaaaaaaaaaaaaaaanz anderen Blatt.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    MVN050 schrieb:

    das heisst ich könnte mir auch mit einer msgbox "Admins" auslesen? also sehen welche namen da drinne sind oder wie?


    Natürlich könntest du das, aber je nach dem was du vor hast ist eine Listbox oder ein ListView vielleicht noch übersichtlicher...

    Du brauchst eine ListBox auf deiner Form mit dem Namen ListBox1 (Standardname sofern keine andere vorhanden ist):

    VB.NET-Quellcode

    1. For Each admn In Admins
    2. ListBox1.Items.Add(admn)
    3. Next


    Diesen Code packste dann z.B. in die Form_Load, und deine ListBox sollte alle Admins enthalten die in dem Array drin stehen ;)

    MVN050 schrieb:

    das der server alle namen die admin sind an den client weiterschickt und in der textbox (chatbox) kommt
    das dort dan sowas steht wie
    Admins snd udo,werner,hans,MVN050


    Jo ist doch auch nich wirklich schwer, du packst die Admins in einen String wobei sie z.B. durch ein | getrennt sind und dann, dann sendest du den String an den Client.
    Angekommen legst du ein Array an und splittest den erhaltenen String und lässt ihn z.B. anzeigen. Ich denke das es dafür aber bessere Lösungen gibt, aber so würde ich es jetzt grob machen...