Du bist nicht angemeldet.

Kontrollzentrum

Spenden

Jeder Euro hilft uns, euch zu helfen.

Adsense

Downloads

Stabil: 3.3.8.1 (Q, H)
Stabil: 3.3.10.2 (Q, H)
Beta: 3.3.11.4 (Q, H)
SciTE: 4/5/2014 (Q, H)
Hilfe Deutsch: 12/23/2013 (Q)
Download: OrganizeIncludes (Q)
Stand: 08.04.2014 - 15:42 Uhr

Lieber Besucher, herzlich willkommen bei: AutoIt.de - Das deutsche AutoIt-Forum. Falls dies dein erster Besuch auf dieser Seite ist, lies bitte die Hilfe durch. Dort wird dir die Bedienung dieser Seite näher erläutert. Darüber hinaus solltest du dich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutze das Registrierungsformular, um dich zu registrieren oder informiere dich ausführlich über den Registrierungsvorgang. Falls du dich bereits zu einem früheren Zeitpunkt registriert hast, kannst du dich hier anmelden.

  • »klavier22« ist der Autor dieses Themas

Registrierungsdatum: 3. März 2012

  • Private Nachricht senden

1

Samstag, 3. März 2012, 13:58

SciTE Kommentar für Variable

Hallo,
Ich hab mir mal das ISN AutoIT Studio von hier runtergeladen und gesehen, dass man sich dort zu jeder Vaiablen eigene Kommentare machen kann.
Diese Funktion finde ich sehr praktisch, da ich im Moment an einem etwas größerem Programm arbeite, womit man die Spieler auf einem Server und den Server selbst verwalten kann. Dort habe ich die einzelnen Spieler in ein 2D Array geladen. Im ersten Index werden die Spieler durchnummeriert und im 2. stehen einige Informationen, wie z.B. die Nummer auf dem Server, die ID im Forum, die IP, der Name, welches Admin level er hat usw.
Von solchen Arrays habe ich mehrere. Das einzige Problem ist nur, dass ich immer vergesse, welche Nummer im 2. Index zu welcher Info gehört. Steht die 2 jetzt für den Namen oder für die ID? Wenn ich mir das Oben als Kommentar hinschreibe, kann ich zwar immer nachgucken, aber immer wieder 900 Zeilen hoch und dann wieder zu der Stelle runterzuscrollen ist auch nicht das Wahre.

Wenn ich aber zu dem Array ein Kommantar machen könnte, was ich mir überall anschauen könnte, wäre das praktischer.
Deshalb ist meine Frage, ob das auch irgendwie in SciTE geht, bzw. ob ihr andere Tips habt, wie man sich das merken kann. Ansonsten würde ich mireinfach ein paar Variablen machen, die ich dann als Index benutze, also z.B. $iName oder so, aber es ist ja letzendlich im Programm effizienter, wenn ich mit weniger Variablen auskomme.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »klavier22« (3. März 2012, 15:45)


Raupi

Drecksack aus Überzeugung

Registrierungsdatum: 30. August 2008

Wohnort: Frankfurt am Main

Beruf: Drecksack

  • Private Nachricht senden

2

Samstag, 3. März 2012, 15:52

Was hällt dich davon ab zu jedem Var einen Kommentar zu erstellen?

AutoIt-Quellcode

1
2
3
Global $Var[2] ; Ich bin ein Array
$Var[0] = "Irgendwas" ; Ich bin ein lustiger Kommentar
$Var[1] = "Irgendwas2" ; Ich bin wieder nur ein Kommentar
MfG Raupi

Meine UDF´S:
WM_Notify per Funktion UDF zum Anzeigen von Hilfetexten und einer Uhr in der Statusbar.Anzeige einer Uhr in der Menüzeile
GIF,JPG und BMP Dateien aus Resource laden.
Array aus Dll-Datei laden UDF zum schreiben und lesen von Array´s in(aus) ein(em) INI-File
LUA Script zum erstellen eines Funktionsheaders.
Tipp: Zum bearbeiten von DLL Dateien kann man den XN Resource Editor benutzen, ist besser als Reshacker

Zitat von »Sokrates«

"Wer weiß, dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß."

Zitat von »Werner Krauß«

Der Witz ist das Erdgeschoss des Humors, die Satire der Erste Stock, die Ironie der Zweite, der Sarkasmus das Mansardenstübchen.

  • »klavier22« ist der Autor dieses Themas

Registrierungsdatum: 3. März 2012

  • Private Nachricht senden

3

Samstag, 3. März 2012, 16:03

die 900 Zeilen halten mich davon ab. Bei kleineren Scripten geht das ja ganz gut, aber wenn man ein etwas größreres Projekt hat, dann ist es doch schon etwas nervig wenn ich immer wieder zu dem Kommentar hin und wieder zurückscrollen darf. Die Funktion, in der die Spieler in das Array geladen werden, sieht so aus:

  Spoiler Spoiler


AutoIt-Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
Func _LoadPlayers() ; Loads the list of all players playing on the server into the listview $LVPlayers and puts the information in the array $Players
    $received = _send(_GUICtrlIpAddress_Get($IIP), GUICtrlRead($IPort), GUICtrlRead($IPassword), "sv players", 1)
    If @error = 1 Then
        MsgBox(4096, "Rcon Passwort falsch", "Der Server antwortete, dass das Rcon Passwort falsch sei.")
        Return 0
    ElseIf @error = "2" Then
        MsgBox(4096, "Server antwortete nicht", "Der Server antwortete nicht.")
        Return 0
    EndIf

    $VPlayers = StringSplit($received, @CRLF)
    If $VPlayers[0] >= "2" Then
        $i = $VPlayers[0] - 1
        Global $Players[$i][7]; Nummer, Name, Build, ID, OP, IP, BOT
        For $i = 1 To $VPlayers[0] - 1
            Local $temp = ""
            If StringRegExp($VPlayers[$i], "OP \d*\,", 0) Then
                Local $temp = StringRegExp($VPlayers[$i], "(\d+) \((\d+?)\)] \* OP (\d+)\, (.*) \(b(\d+)\)", 2) ;bei OP, liefert 6 Elemente
                $Players[$i - 1][0] = $temp[1]
                $Players[$i - 1][1] = $temp[4]
                $Players[$i - 1][2] = $temp[5]
                $Players[$i - 1][3] = $temp[2]
                $Players[$i - 1][4] = $temp[3]

            ElseIf StringRegExp($VPlayers[$i], "\d+ \] \* ", 0) Then
                Local $temp = StringRegExp($VPlayers[$i], "(\d+) \] \* (.*) \(b(\d+)\)", 2) ;Ohne ID, liefert 4 Elemente
                $Players[$i - 1][0] = $temp[1]
                $Players[$i - 1][1] = $temp[2]
                $Players[$i - 1][2] = $temp[3]

            ElseIf StringRegExp($VPlayers[$i], "\d+ \(bot\)\]", 0) Then
                Local $temp = StringRegExp($VPlayers[$i], "(\d+) \(bot\)\] \* (.*) \(b(\d+)\)", 2) ;Falls Bot, liefert Nummer + Name
                $Players[$i - 1][0] = $temp[1]
                $Players[$i - 1][1] = "(BOT) " & $temp[2]
                $Players[$i - 1][2] = 0
                $Players[$i - 1][6] = True

            Else
                Local $temp = StringRegExp($VPlayers[$i], "(\d+) \((\d+)\)\] \* (.*?) \(b(\d*)\)", 2) ;mit ID, liefert 5 Elemente
                $Players[$i - 1][0] = $temp[1]
                $Players[$i - 1][1] = $temp[3]
                $Players[$i - 1][2] = $temp[4]
                $Players[$i - 1][3] = $temp[2]
            EndIf
        Next

        $PlayerIPs = _send(_GUICtrlIpAddress_Get($IIP), GUICtrlRead($IPort), GUICtrlRead($IPassword), "sv listuserip", 1)
        $PlayerIPs = StringRegExp($PlayerIPs, "\[(\d+\.\d+\.\d+\.\d+)\:\d*\]", 3)
        For $i = 0 To UBound($PlayerIPs) - 1 Step 2
            If Not $Players[$i / 2][6] Then
                $Players[$i / 2][5] = $PlayerIPs[$i]
            Else
                $Players[$i / 2][5] = _GUICtrlIpAddress_Get($IIP)
            EndIf
        Next
        _GUICtrlListView_DeleteAllItems(GUICtrlGetHandle($LVPlayers))
        _GUICtrlListView_AddArray($LVPlayers, $Players)
    Else
        Dim $Players[1][5]
        $Players[0][0] = ""
        $Players[0][1] = ""
        $Players[0][2] = ""
        $Players[0][3] = ""
        $Players[0][4] = ""
        _GUICtrlListView_DeleteAllItems(GUICtrlGetHandle($LVPlayers))
    EndIf
    _ConWrite($EConsole, _GUICtrlListView_GetItemCount(GUICtrlGetHandle($LVPlayers)) & " Spieler wurden geladen.")
EndFunc   ;==>_LoadPlayers


Ich weiß, die Variablennamen sind nicht grad die besten
Aber wenn ich jetzt nicht in Zeile 541 (da wo die Funktion steht) bin, sondern irgendwo weiter oben oder unten, dann muss ich jedesmal erstmal hoch und wieder runter scrollen und mir diese Reihenfolge merken. Wenn ich dann wieder unten bin und meine Idee umsetzen will, dann vergesse ich die Reihenfolge wieder und darf dann nochmal gucken. Das ganze könnte ich mir ersparen, wenn ich direkt an der Seite eine Auflistung mit allen Variablen habe und mir zu jeder ein Kommentar machen kann, das ich überall sehen kann.
Wenn es nicht geht, dann ist es auch nicht so schlimm, kann man sich ja im Prinzip auch selber basteln oder man definiert sich Konstanten wie $iName welche man dann als Index nimmt.

Wäre nur die einfachste Lösung.

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »klavier22« (3. März 2012, 16:23)


BugFix

Der Bug Fixer

Registrierungsdatum: 17. Februar 2006

Wohnort: Sa.-Anhalt

  • Private Nachricht senden

4

Samstag, 3. März 2012, 20:50

Ich steh grad auf'm Schlauch. Was genau meinst du?
Eine Art Tooltip in SciTE für Variablen? Könnte man mit LUA lösen:
- Cursor auf Variable setzen
- HotKey drücken
- Ausgabe in Konsole: $Variable = "Deine Beschreibung"

Meinst du so etwas?

  • »klavier22« ist der Autor dieses Themas

Registrierungsdatum: 3. März 2012

  • Private Nachricht senden

5

Samstag, 3. März 2012, 22:19

In der ISN AutoIt IDE gibt es rechts so einen TreeView. Dort sieht man alle GUI Elemente, Funktionen und Variablen, die man genutzt hat. Und dort kann man der Variable / Funktion / dem GUI Element einen Kommentar hinzufügen. Ich hätte diese Funktion gerne in SciTE, dass ich einer Variable einen Kommentar hinzufügen und diesen überall anzeigen lassen kann. Denn, wie beschrieben, ich habe ein Array, wo ich mir nie den Index zu dem Inhalt merken kann :D
Deine Idee hört sich schonmal ein bisschen danach an.

Bzw. Ist es möglich, dass man in AutoIt das Sript aus SciTE lädt? Dann würde ich einfach ein kleines Script bauen, was diesen Job für mich erledigt

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »klavier22« (3. März 2012, 22:35)


BugFix

Der Bug Fixer

Registrierungsdatum: 17. Februar 2006

Wohnort: Sa.-Anhalt

  • Private Nachricht senden

6

Sonntag, 4. März 2012, 00:15

Ich habe dafür mal eine LUA-Lösung erstellt: http://autoit.de/index.php?page=Thread&threadID=31030

  • »klavier22« ist der Autor dieses Themas

Registrierungsdatum: 3. März 2012

  • Private Nachricht senden

7

Sonntag, 4. März 2012, 00:24

Danke :)

autoit.de Webutation