1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Dexter1993

Beiträge von Dexter1993

  • Problem mit GUICtrlListView_AddItem und Array

    • Dexter1993
    • 3. Januar 2018 um 01:21

    Hey @alpines danke für die Unterstützung...

    Ich habe jetzt innerhalb von 3 Tagen einen Datenbank Server mit TCP Kommunikation gebaut und zusätzlich einen Client der mit den Server kommuniziert ... Lass dich nicht von meiner Variablen-Beschriftung irreführen.

    Ich werde sobald alles steht und funktioniert, alles bzgl. Variablen etc. anpassen. Ich arbeite so :D

    Ich habe keine Zeit auf anständige Variablen Namen zu achten wenn ich mega im Tunnel bin :D

    Naja Thema wird erfolgreich geschlossen

  • Problem mit GUICtrlListView_AddItem und Array

    • Dexter1993
    • 3. Januar 2018 um 01:17
    Zitat

    Statt das alles so zu machen, warum iterierst du nicht einfach das $all-Array und splittest jeden einzelnen Index nach ";"?

    Dann hast du im gesplitteten [0] name und [1] status (wenn du Parameter 3 verwendest).

    Weil das was im $All Array steht, von einem Server von mir kommt und der Inhalt sieht so aus:

    Name ----SEMIKOLON---- Status ---Doppelpunkt---- Name ----SEMIKOLON---- Status usw...

  • Problem mit GUICtrlListView_AddItem und Array

    • Dexter1993
    • 3. Januar 2018 um 01:13

    Hab die Lösung !!!! Hab einen Counter für _GUICtrlListView_AddSubItem mit eingebaut....

    Local $Count = "0"

    For $i = 0 To UBound($SglFrStr) - 2 Step 2

    MsgBox (1,"Client","Data: " & $SglFrStr[$i])

    _GUICtrlListView_AddItem($FriendList, $SglFrStr[$i], 0)

    _GUICtrlListView_AddSubItem($FriendList, $Count, $SglFrStr[$i + 1], 1)

    $Count = $Count +1

    Next

    ER HAT _GUICtrlListView_AddSubItem($FriendList, $Count, $SglFrStr[$i + 1], 1) DA NICHT MIT HOCHGEZÄHLT UND DAS SUBITEM IMMER IN ZEILE 1 geaddet ........

  • Problem mit GUICtrlListView_AddItem und Array

    • Dexter1993
    • 3. Januar 2018 um 01:07

    OK du hast recht gehabt... Ich hatte aber ganz oben im Quelltext noch ein dummes StringSplit. Da habe ich jetzt auch die 3 als Param. mitgegeben...

    Ich hab jetzt alles richtig gemacht und mit nebenbei die Ausgaben kontrolliert. Es kommt jetzt definitiv alles richtig bei der For Next Schleife an... Dennoch:

    Tom----------|---------Offline

    Dirk----------|---------K/A

    Tim----------|---------K/A

    Jan----------|---------K/A

    AutoIt
    $TrimStatFr = StringTrimLeft($sReceived, 8)                                         ;    Hier werden die ersten 8 Stellen des Datenpakets weggeschnitten (StatFr;;)
    
        $all = StringSplit ($TrimStatFr,":",3)                                                 ;    Hier wird der Inhalt immer am Doppelpunt getrennt (Einzelne Wörter)
    
        $AllFrStr = _ArrayToString($all,";")                                                ;    Das Array (all) hat folgende Infos (all[0] = Name;Status, all[1] = Name;Status usw.) die ganzen Infos werden jetzt in eine Var gespeichert
    
        $SglFrStr = StringSplit ($AllFrStr,";",3)                                            ;    Ein neues Array wird erstellt Inhalt ($SglFrStr[0] = name, $SglFrStr[1] = status ...) 3 als Parameter um das erste Element (Anzahl) zu enft.
    
        _GUICtrlListView_DeleteAllItems ($FriendList)                                        ;    Löscht die komplette Freundesliste (ListView Anzeige wird geleert)
        _GUICtrlListView_InsertColumn($FriendList, 0, "Name", 240)                            ;    Erstellt die Spalte "Name" in der listView
        _GUICtrlListView_InsertColumn($FriendList, 1, "Status", 55)                            ;    Erstellt die Spalte "Status" in der listView
    
        For $i = 0 To UBound($SglFrStr) - 2 Step 2
            MsgBox (1,"Client","Data: " & $SglFrStr[$i])
            _GUICtrlListView_AddItem($FriendList, $SglFrStr[$i], 0)
            _GUICtrlListView_AddSubItem($FriendList, 0, $SglFrStr[$i + 1], 1)
        Next
    Alles anzeigen
  • Problem mit GUICtrlListView_AddItem und Array

    • Dexter1993
    • 3. Januar 2018 um 00:57

    Das verdammte Problem ist garnicht das StringSplit. Der Befehl _ArrayToString gibt die verdammte Anzahl der Elemente wieder....

    Da bringt mir die 3 auch nichts im Stringsplit ... oh ist das alles ein Mist^^

  • Problem mit GUICtrlListView_AddItem und Array

    • Dexter1993
    • 3. Januar 2018 um 00:21

    Ja ich hatte das gelesen. Mein Kopf glüht gerade nur weil ich 10 Stunden schon durch programmiere ^^8o8o Ich kann in Prinzip so gut wie gar nicht mehr denken will das aber noch fertig bauen...

    OK habs angepasst! Jetzt ist das Ergebnis folgendes:

    Name--------|---------Status

    Tom----------|---------Offline

    Dirk----------|---------K/A

    Tim----------|---------K/A

    Jan----------|---------K/A

    AutoIt
    $AllFrStr = _ArrayToString($all,";")                                                ;    Das Array (all) hat folgende Infos (all[0] = Name;Status, all[1] = Name;Status usw.) die ganzen Infos werden jetzt in eine Var gespeichert
    
        $SglFrStr = StringSplit ($AllFrStr,";",3)                                            ;    Ein neues Array wird erstellt Inhalt ($SglFrStr[0] = name, $SglFrStr[1] = status ...) 3 als Parameter um das erste Element (Anzahl) zu enft.
    
        _GUICtrlListView_DeleteAllItems ($FriendList)                                        ;    Löscht die komplette Freundesliste (ListView Anzeige wird geleert)
    
        _GUICtrlListView_InsertColumn($FriendList, 0, "Name", 210)                            ;    Erstellt die Spalte "Name" in der listView
        _GUICtrlListView_InsertColumn($FriendList, 1, "Status", 55)                            ;    Erstellt die Spalte "Status" in der listView
    
        For $i = 1 To UBound($SglFrStr) - 2 Step 2
            _GUICtrlListView_AddItem($FriendList, $SglFrStr[$i], 0)
            _GUICtrlListView_AddSubItem($FriendList, 0, $SglFrStr[$i + 1], 1)
        Next
    Alles anzeigen
  • Problem mit GUICtrlListView_AddItem und Array

    • Dexter1993
    • 2. Januar 2018 um 23:53

    Danke erstmal für das ausführliche Kommentar.

    Ich habe jetzt beim StringSplit die 3 als Parameter mitgegeben. Das funktioniert wunderbar.

    ich habe die For Next Schleife jetzt genau so wie erklärt.

    Die Ausgabe die ich bekomme ist fast richtig. Nur der erste Name mit Status wurde in die ListView übernommen. Mein Array besitzt insgesamt aber 4 Namen mit jeweils einen Status (oder eben Beliebig...)

    Name--------|---------Status

    Tom----------|---------Offline

    ....


    AutoIt
    $AllFrStr = _ArrayToString($all,";")                                                ;    Das Array (all) hat folgende Infos (all[0] = Name;Status, all[1] = Name;Status usw.) die ganzen Infos werden jetzt in eine Var gespeichert
    
        $SglFrStr = StringSplit ($AllFrStr,";",3)                                            ;    Ein neues Array wird erstellt Inhalt ($SglFrStr[0] = name, $SglFrStr[1] = status ...) 3 als Parameter um das erste Element (Anzahl) zu enft.
    
        _GUICtrlListView_DeleteAllItems ($FriendList)                                        ;    Löscht die komplette Freundesliste (ListView Anzeige wird geleert)
    
        _GUICtrlListView_InsertColumn($FriendList, 0, "Name", 210)                            ;    Erstellt die Spalte "Name" in der listView
        _GUICtrlListView_InsertColumn($FriendList, 1, "Status", 55)                            ;    Erstellt die Spalte "Status" in der listView
    
    
        For $i = 1 To $SglFrStr[0] - 2 Step 2
            _GUICtrlListView_AddItem($FriendList, $SglFrStr[$i], 0)
            _GUICtrlListView_AddSubItem($FriendList, 0, $SglFrStr[$i + 1], 1)
        Next
    Alles anzeigen
  • Problem mit GUICtrlListView_AddItem und Array

    • Dexter1993
    • 2. Januar 2018 um 23:26

    Hallo Community,

    ich stehe vor folgenden Problem:

    Ich habe ein Array das sieht folgendermaßen aus:

    $Array [0] = Name

    $Array [1] = Status

    $Array [2] = Name

    $Array [3] = Status

    $Array [4] = Name

    $Array [5] = Status

    ...

    Ich habe eine "GUICtrlCreateListView" die so aussieht:

    Name--------|---------Status


    Ich möchte jetzt das Array durch eine For Next Schleife jagen und immer abwechselnd Name zu Name und dann Status zu Status eintragen lassen.

    Das sollte dann so aussehen:

    Name--------|---------Status

    Tom----------|---------Offline

    Herny--------|---------Online

    ... usw.

    Das ist mein bisheriger Quellcode der mal so gar nicht funktioniert:

    Wichtig ist hier eignt nur die For Next Schleife ...

    Ich hoffe auf gute Hilfe. Vielen Dank.8)

    Spoiler anzeigen

    $AllFrStr = _ArrayToString($all,";") ; Das Array (all) hat folgende Infos (all[0] = Name;Status, all[1] = Name;Status usw.) die ganzen Infos werden jetzt in eine Var gespeichert

    $SglFrStr = StringSplit ($AllFrStr,";") ; Ein neues Array wird erstellt Inhalt ($SglFrStr[0] = name, $SglFrStr[1] = status ...)

    _GUICtrlListView_DeleteAllItems ($FriendList) ; Löscht die komplette Freundesliste (ListView Anzeige wird geleert)

    _GUICtrlListView_InsertColumn($FriendList, 0, "Name", 100) ; Erstellt die Spalte "Name" in der listView

    _GUICtrlListView_InsertColumn($FriendList, 1, "Status", 100) ; Erstellt die Spalte "Status" in der listView

    For $i = 2 To $SglFrStr[0] ; Fängt bei 2 an, da der erste Substring des Arrays die Anzahl der Elemente beinhaltet

    If Not $SglFrStr[$i] = "Online" Or $SglFrStr[$i] = "Offline" Then

    _GUICtrlListView_AddItem($FriendList, $SglFrStr[$i], 0)

    EndIf

    If $SglFrStr[$i] = "Online" Or $SglFrStr[$i] = "Offline" Then

    _GUICtrlListView_AddSubItem($FriendList, 0, $SglFrStr[$i], 1)

    EndIf

    Next

  • SQLite Freundesliste für jeden angelegten Benutzer

    • Dexter1993
    • 30. Dezember 2017 um 21:44

    OK vielen dank. Damit werde ich mich nebenbei mal auseinander setzen.

    Die Lösung das die Freunde beim Client in einer Liste liegen, die habe ich schon umgesetzt gehabt und werde das erstmal beibehalten....

    Danke Thread kann geschlossen werden...

  • SQLite Freundesliste für jeden angelegten Benutzer

    • Dexter1993
    • 30. Dezember 2017 um 21:13

    Hey danke für die Antwort.

    Ich beschäftige mich mit den ganzen kram seit gerade mal drei Tagen. Ich hab teilweise die Nacht durchgearbeitet. Vor drei Tagen wusste ich nicht mal das es überhaupt SQLite gibt :D

    Ich wollte es gerne vermeiden, das der Client Ordner, Freundeslisten o.ä. erstellt...

    Kannst du mir das mit den Freund Verknüpfungen etwas mehr erläutern?

  • SQLite Freundesliste für jeden angelegten Benutzer

    • Dexter1993
    • 30. Dezember 2017 um 20:52

    Ja das mit der Trennung z.B. durch (;) ist nicht schlecht.

    Nur wenn ich beim nächsten mal einen Freund hinzufüge, wird ja der vorherige Eintrag unter Freunden gelöscht

    und nicht ein weiterer Name zum bestehen Datensatz hinzugefügt.

    ID ------Name ------Mail ------Passwort ------ Status----------------Freunde

    1 --------Bsp --------Bsp----------Bsp-------------ON/OFF-----------ALLE FREUNDE (Detlef;Günter;Dirk;Tom; .... (Hier will ich jetzt noch was hinzufügen) Z.B. John;


    Bei der roten Markierung möchte ich immer nur noch was hinzufügen... aber ich kenne den genauen Befehl fürs einfache hinzufügen nicht... ich finde dazu auch nichts...

    _SQLite_Exec(-1, "UPDATE Datenbank SET Freunde = ' HIER MUSS EIN WEITERER FREUND HINZUGEFÜGT WERDEN UND NICHT DIE ALTEN DATEN ERSETZT WERDEN ' WHERE ID = "& $ID & "")

  • SQLite Freundesliste für jeden angelegten Benutzer

    • Dexter1993
    • 30. Dezember 2017 um 20:36
    Zitat von autoiter

    Hallo Dexter1993

    Vielleicht verstehe ich dich nicht richtig. Speichere einfach aktuellen online/offline-Status jeden Users in der DB. Die Freunde eines jeden Users sollten dort auch gespeichert sein. Dann muss dir auch kein Client ständig seine Freunde senden, sondern nur neue Freundschaften..

    Dann sind doch immer alle Informationen verfügbar, die du für den Dienst brauchst, oder?

    Ja hey danke erstmal für die Antwort.

    Ich hab mich viel zu kompliziert oben ausgedrückt.... :D

    Der erste Schritt ist,

    das ich jedem User eine Freundesliste in der Datenbank zuteile.

    Ich möchte anhand des Namens ganz einfach alle Freunde dieser Person abrufen.

    ID ------Name ------Mail ------Passwort ------ Status----------------Freunde

    1 --------Bsp --------Bsp----------Bsp-------------ON/OFF-----------ALLE FREUNDE

    2....

    3....

  • SQLite Freundesliste für jeden angelegten Benutzer

    • Dexter1993
    • 30. Dezember 2017 um 19:59

    Hallo liebe AutoIT Community,

    ich habe einen eigenen Datenbankserver gebaut der über TCP kommunizieren kann. User können sich über einen externen Client registrieren und anmelden.

    Das funktioniert alles auch hervorragend aber jetzt steh ich vor ein Problem. Ich wollte jetzt jedem angemeldeten User, mitteilen welche seiner Freunde Online sind.

    Dazu muss der Server aber auch wissen welcher User welche Freunde hat.

    Das sieht folgendermaßen aus: ( Der User mit ID 1 hat folgende Werte) Jetzt würde ich gerne alle Freunde von User 1 auslesen, in ein array speichern, jeden einzelnen prüfen wie der Status ist (On oder Off)

    und diesen Status dann dem jeweiligen Freund zuweisen. Anschließend schicke ich jeden Freund + Status an den Client. Der Client soll dann den Datensatz splitten und in eine ListView einfügen.

    ID Wert1 Wert2 Wert3 Wert 4 Freunde

    1 Name Mail Ort Online/Offline Hier müssen mehrere Freunde rein


    Ich hoffe ich konnte mich verständlich genug ausdrücken..., sry mein erstes mal in einen Forum.


    Schöne Grüße...

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™