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. WhiteLion

Beiträge von WhiteLion

  • ini datei richtig in array einlesen und editieren

    • WhiteLion
    • 4. Juni 2010 um 15:56

    ich habs so mal getestet... leder gehts nicht:
    (349) : ==> Subscript used with non-Array variable.:
    For $i9 = 1 To $split66[0]
    For $i9 = 1 To $split66^ ERROR

    [autoit]

    $h4Gui = GUICreate("Serverlist Editor V1.0", 400, 400, -1, -1, $WS_MINIMIZEBOX)

    [/autoit][autoit][/autoit][autoit]

    ;GUICtrlCreatePic(@TempDir&"logo.jpg",10,10,374,55)
    $Label41 = GUICtrlCreateLabel("Note: Press right mousebutton to edit the line", 50, 70)
    Global $hostnamexx, $descriptionxx, $split66
    $QuitEdit = GUICtrlCreateButton("Quit", 140, 340, 112, 25, 0)
    GUISetState()
    Global $listViewEditor = GuiCtrlCreateListView(" IP/Hostname | Description ", 10, 90, 374, 250, BitOR($WS_VSCROLL,$LVS_EX_BORDERSELECT,$LVS_SINGLESEL,$LVS_SHOWSELALWAYS, $LVS_NOSORTHEADER, $LVS_REPORT))
    _GUICtrlListView_SetColumnWidth($listViewEditor, 0, 170)
    _GUICtrlListView_SetColumnWidth($listViewEditor, 1, 180)
    $list456 = Iniread("serverlist.ini" , "serverlist", "servers","")
    $list456 = StringRegExpReplace($list456, '\(', '|')
    StringSplit($list456, ")")
    For $i9 = 1 To $split66[0]
    GUICtrlCreateListViewItem($split66[$i9]&"|"&$descriptionxx, $listViewEditor)
    Next
    GUICtrlCreateListViewItem($list456&"|"&$descriptionxx, $listViewEditor)
    While 1
    $nMsg = GUIGetMsg()
    Sleep(20)
    Switch $nMsg
    Case $QuitEdit
    GUISetState(0,$h4Gui)
    ExitLoop
    Case $GUI_EVENT_SECONDARYDOWN
    $hWnd88 = ControlGetHandle('','',$listViewEditor)
    $indx = _GUICtrlListView_SubItemHitTest($hWnd88)
    $newText = InputBox('Change entry', 'Row: ' & $indx[0]+1 & '/Column: ' & $indx[1]+1, _GUICtrlListView_GetItemText($hWnd88, $indx[0], $indx[1]))
    If $newText <> '' Then _GUICtrlListView_SetItemText($hWnd88, $indx[0], $newText, $indx[1])
    EndSwitch
    WEnd

    EndFunc

    [/autoit]


    ziel ist es die ini-datei in die tabelle zu lesen(klappt nicht), editierbar zu machen (klappt), man sollte eine zeile hinzufügen können.
    dann sollte man die ini wieder in gleicher struktur schreiben können.

    hier die serverlist.ini

    Code
    [serverlist]
    servers=www.web.net(Standdart)|127.0.0.1(localhost)|7.0.133.109(Ever)|7.0.133.111(Night)|7.3.247.97|7.1.14.12(steve)|23.23.32.1|blblba.de|(enter infos in brackets )|lecker.no-ip.info(lol)||
  • ini datei richtig in array einlesen und editieren

    • WhiteLion
    • 4. Juni 2010 um 14:39

    meine arraykenntnisse sind doch etwas mangelhaft... ich brauche schon wieder euere hilfe :S
    ich hab meine fragen mal ins script geschrieben:

    [autoit]


    Global $listViewEditor = GuiCtrlCreateListView(" IP/Hostname | Description ", 10, 70, 374, 250, BitOR($WS_VSCROLL,$LVS_EX_BORDERSELECT,$LVS_SINGLESEL,$LVS_SHOWSELALWAYS, $LVS_NOSORTHEADER, $LVS_REPORT))
    _GUICtrlListView_SetColumnWidth($listViewEditor, 0, 170)
    _GUICtrlListView_SetColumnWidth($listViewEditor, 1, 180)
    $list456 = Iniread("serverlist.ini" , "serverlist", "servers","")
    $list456 = StringRegExpReplace($list456, '\(', '|')
    $list456 = StringRegExpReplace($list456, '\)', @CRLF) ; <- das klappt nicht. wie bekomme ich einen zeilenumbruch im listview/array hin, so dass an jeder stelle wo eine geschlossene klammer steht das listview eine neue zeile bekommt ...?.
    GUICtrlCreateListViewItem($list456&"|"&$descriptionxx, $listViewEditor)

    [/autoit]

    Wie mache ich die Einträge / Zellen editierbar ? ?(

    thx!

  • array vor dem schreiben in eine datei filtern.

    • WhiteLion
    • 3. Juni 2010 um 23:12

    hmmm ja gut .... bzw nicht gut ... warum kommt denn aber auf einmal dort ein fehler wo es vorher lief ?

  • array vor dem schreiben in eine datei filtern.

    • WhiteLion
    • 3. Juni 2010 um 23:02

    bei mir schmierts ab und verweist mich auf ein array was damit mal gar nix zu tun hat;

    C:\Program Files\AutoIt3\AutoIT-eigenerkrams\Modernwarfare2-keysetter\keysetter05.au3 (402) : ==> Subscript used with non-Array variable.:
    Global $a_LV[$a_ip[0]+1][7]
    Global $a_LV[$a_ip^ ERROR

    kann jemand damit was anfangen ?

  • array vor dem schreiben in eine datei filtern.

    • WhiteLion
    • 3. Juni 2010 um 22:42

    Greenhorn ... leider bei allen scripts das gleche :(

    hier die ini:

    Code
    [serverlist]
    servers=www.web.net(Standdart)|127.0.0.1(localhost)|7.0.133.109(Ever)|7.0.133.111(Night)|7.3.247.97|7.1.14.12(steve)|||(Please edit serverlist.ini)|(to add/change servers)|(enter infos in - brackets )
  • array vor dem schreiben in eine datei filtern.

    • WhiteLion
    • 3. Juni 2010 um 22:28

    bei mir nicht ganz, wenn ich es so laufen lasse, dann löscht dei zweite schleife (die bei mir nicht ging) nicht das array mit dem inhalt "brackett", sondern den obersten eintrag... der richitge eintrag steht aber ganz unten und bleibt leider in der liste :( ... es wird also der falsche gelöscht :(

  • array vor dem schreiben in eine datei filtern.

    • WhiteLion
    • 3. Juni 2010 um 22:18

    wenn ich das tue, dann bekomme ich diesen fehler:
    ==> Array variable subscript badly formatted

    mein script sieht jetzt so aus:

    [autoit]

    Func _listchange()
    Global $list123, $hfile, $array2[0], $searcharry, $y2, $z2, $i2, $buffer
    $list123 = Iniread("serverlist.ini" , "serverlist", "servers","")
    $list123 = StringRegExpReplace($list123, '\(.+?\)', '')
    $array2 = StringSplit($list123, '|')
    Do
    for $y2=0 to $array2[0]
    $searcharry = _ArraySearch($array2,"")
    _ArrayDelete($array2,$searcharry)
    Next
    Until $searcharry==-1
    ; Do
    ; for $z2=0 to $array2[1]
    ; $searcharry2 = _ArraySearch($array2,"bra")
    ; _ArrayDelete($array2,$searcharry2)
    ; Next
    ; Until $searcharry2=-1

    [/autoit][autoit][/autoit][autoit]

    _ArrayDisplay($array2)
    Local $buffer = ''
    for $i2 = 0 to UBound($array2)-1
    $buffer &= $array2[$i2] & @CRLF
    Next
    FileWrite(@ScriptDir & 'temp.txt', $buffer)
    EndFunc

    [/autoit]
  • array vor dem schreiben in eine datei filtern.

    • WhiteLion
    • 3. Juni 2010 um 22:02

    nun nerve ich euch zum letzten mal mit meinen fragen (für heute) :D

    bin aber schon ganz verzweifelt am suchen wo der fehler liegt:
    wenn ich versuche das array zu bearbeiten; quasi leere einträge und welche mit dem string "brackett" rauszufiltern, klappt das nicht ganz ... der zweite filter schlägt fehl.... ich weiss nicht was ich falsch mache bzw warum mein script abschmiert.

    [autoit]

    Func _listchange()
    Global $list123, $hfile, $array2[1], $searcharry, $y2, $z2, $i2, $buffer
    $list123 = Iniread("serverlist.ini" , "serverlist", "servers","")
    $list123 = StringRegExpReplace($list123, '\(.+?\)', '')
    $array2 = StringSplit($list123, '|')
    ; _ArrayDisplay($array2)
    Do
    for $y2=0 to $array2[1]
    $searcharry = _ArraySearch($array2,"")
    _ArrayDelete($array2,$searcharry)
    Next
    Until $searcharry=-1

    [/autoit][autoit][/autoit][autoit]

    ;das hier geht nicht:
    ; Do
    ; for $z2=0 to $array2[1]
    ; $searcharry2 = _ArraySearch($array2,"bra")
    ; _ArrayDelete($array2,$searcharry2)
    ; Next
    ; Until $searcharry2=-1

    [/autoit][autoit][/autoit][autoit]

    _ArrayDisplay($array2)
    Local $buffer = ''
    for $i2 = 0 to UBound($array2)-1
    $buffer &= $array2[$i2] & @CRLF
    Next
    FileWrite(@ScriptDir & 'temp.txt', $buffer)
    EndFunc

    [/autoit]
  • button in einer schleife abfragen.

    • WhiteLion
    • 3. Juni 2010 um 21:56

    ich lagt ja beide richtig ... von daher nochmals danke!

  • button in einer schleife abfragen.

    • WhiteLion
    • 3. Juni 2010 um 21:44
    Zitat von name22

    Case $Button ;nur als Beispiel $Quit2read = GUICtrlRead($Quit2) if $Quit2read <> -1 Then _exit()

    Zitat von name22

    Das Script ist irgendwie... nunja.... :D
    Kann es sein, dass es so in der Richtung aussehen soll? ^^

    Spoiler anzeigen
    [autoit]

    Global $Quit2read = -1
    While 1
    $msg = GUIGetMsg()
    $sw_onoff = 0
    Switch $msg
    Case $Button ;nur als Beispiel
    $Quit2read = GUICtrlRead($Quit2)
    if $Quit2read <> -1 Then _exit()
    EndSwitch

    [/autoit]
    Alles anzeigen

    ey sag nix :)
    danke das hat geholfen!!

    @Cartan12

    danke!!! das auch :D

  • button in einer schleife abfragen.

    • WhiteLion
    • 3. Juni 2010 um 21:33
    Zitat von Cartan12

    Ich erkenne den Sinn dieses Scripts noch nicht...
    Kannst du bitte mal das GANZE Script posten ?
    Sonst evtl. so:

    [autoit]

    Global $Quit2read = -1
    While 1
    Sleep(10)
    $msg = GUIGetMsg()
    $sw_onoff = 0
    Switch $msg
    Case $button ;musste mit der ID des Buttons erstzen...
    $Quit2read = GUICtrlRead($Quit2)
    if $Quit2read = -1 Then
    Else
    _exit()
    EndIf
    EndSwitch

    [/autoit]
    Alles anzeigen

    grundsätzlich poste ich ja immer alle scripts, in diesem fall würde ich es allerdings vorziehen es nicht zu tun, da es
    mega lang ist (über 2000 zeilen) und nur mit persönlichen resourcen läuft... ich bitte um nachsicht :rolleyes:

    es geht einfach nur darum einen button per case auf gedrückt abzufragen was leider nicht herkömmlicher weise geht:

    [autoit]


    ;geht nicht, springt immer rein
    Case $msg = $Quit2
    _exit()

    [/autoit]


    gibt es denn noch eine andere möglichkeit den klick auf den button abzufragen ?

  • button in einer schleife abfragen.

    • WhiteLion
    • 3. Juni 2010 um 21:12

    ich hänge unter anderem an einem einem problem, wo ich in einer
    while-schleife einen knopf abfragen möchten, wenn dieser gedrückt wird, dann soll er in die _exit funktion springen.
    wenn ich das klassisch mache, dann springt er ständig in die case und führt aus... ich muss also irgendwie den knopfdruck abfragen...

    [autoit]


    Global $Quit2read = -1
    While 1
    Sleep(10)
    $msg = GUIGetMsg()
    $sw_onoff = 0
    Switch $msg
    Case $Quit2read = GUICtrlRead($Quit2)
    if $Quit2read = -1 Then
    Else
    _exit()
    EndIf
    EndSwitch

    [/autoit]
  • StringRegExp <- wie filtere ich meine zeichenkette

    • WhiteLion
    • 3. Juni 2010 um 20:36

    super... gleich so viele lösungswege ! :D danke dafür!
    kleines problem noch, wenn ich versuche das array zu bearbeiten; quasi leere einträge und welche mit dem string "brackett" rauszufiltern, klappt das nicht ganz ... der zweite filter schlägt fehl.... ich weiss nicht was ich falsch mache.

    [autoit]

    Func _listchange()
    Global $list123, $hfile, $array2[1], $searcharry, $y2, $z2, $i2, $buffer
    $list123 = Iniread("serverlist.ini" , "serverlist", "servers","")
    $list123 = StringRegExpReplace($list123, '\(.+?\)', '')
    $array2 = StringSplit($list123, '|')
    ; _ArrayDisplay($array2)
    Do
    for $y2=0 to $array2[1]
    $searcharry = _ArraySearch($array2,"")
    _ArrayDelete($array2,$searcharry)
    Next
    Until $searcharry=-1

    [/autoit][autoit][/autoit][autoit]

    ;das hier geht nicht:
    ; Do
    ; for $z2=0 to $array2[1]
    ; $searcharry2 = _ArraySearch($array2,"bra")
    ; _ArrayDelete($array2,$searcharry2)
    ; Next
    ; Until $searcharry2=-1

    [/autoit][autoit][/autoit][autoit]

    _ArrayDisplay($array2)
    Local $buffer = ''
    for $i2 = 0 to UBound($array2)-1
    $buffer &= $array2[$i2] & @CRLF
    Next
    FileWrite(@ScriptDir & 'temp.txt', $buffer)
    EndFunc

    [/autoit]
  • StringRegExp <- wie filtere ich meine zeichenkette

    • WhiteLion
    • 3. Juni 2010 um 13:29
    Zitat von Oscar

    Meinst Du so:

    [autoit]


    #include
    $string = '12.123.123.2(guter server)|131.2.32.2|http://www.test.de|blavla.de|ee.asdfasd.eu(hallo)'
    $string = StringRegExpReplace($string, '\(.+?\)', '')
    $array = StringSplit($string, '|')
    _ArrayDisplay($array)

    [/autoit]


    moin..... evtl. kannst du mir nochmal behilflich sein, wenn ich jetzt jeden dieser gefilterten server/IPs in eine ini datei schreiben will die dann nur schlicht und einfach so aussieht, dass jeder server/IP in einer extra zeile steht... (ohne steuerzeichen oder so) z.B.

    12.123.123.2
    https://autoit.de/www.test.de
    131.2.32.2
    ...usw

  • TCP-Send geht nicht (zum 100sten) ;)

    • WhiteLion
    • 3. Juni 2010 um 13:22

    danke euch jungs ...was für ein dummer fehler :D

  • TCP-Send geht nicht (zum 100sten) ;)

    • WhiteLion
    • 3. Juni 2010 um 02:40

    moin leute....

    das ist mein problem:

    [autoit]


    $port="13000"

    [/autoit][autoit][/autoit][autoit]

    _check("server.alteriw.net", $port)
    MsgBox(0,"Erfolg?", $socket)

    [/autoit][autoit][/autoit][autoit]

    Func _check($hostname, $port)
    global $socket = -1
    TCPStartup()
    $socket = TCPConnect($hostname, $port)
    EndFunc

    [/autoit]

    im prinzip möchte ich einen port eines spieleservers testen um zu gucken ob dieser online ist....
    auch google.de mit port 80 hab ich probiert.... mein normaler portscanner sagt bei google, als auch bei server.alteriw.net mit port 13000
    das diese online sind .... TCPconnect gibt aber immer -1 zurück ... ... ich verstehe es einfach nicht ... firewall hab ich keine (ausser router)
    und im debug hatte ich bei einem probierten server Error Code:10600 oder so und einem Code:1 ... da hat er mega lange gebraucht ... kann man das abbrechen ?

  • StringRegExp <- wie filtere ich meine zeichenkette

    • WhiteLion
    • 1. Juni 2010 um 11:54

    verdammt! und da habe ich ewig gerätselt... danke dir!

  • StringRegExp <- wie filtere ich meine zeichenkette

    • WhiteLion
    • 1. Juni 2010 um 04:06

    hiho leute .... ich habe folgendes:


    12.123.123.2(guter server)|131.2.32.2|https://autoit.de/www.test.de|blavla.de|ee.asdfasd.eu(hallo)|....

    gefiltert bekomme ich dank der trennzeichen bislang immer alles was zwischen den | steht.
    ich möchte allerdings immer nur den server oder die ip an einen string übergeben.
    also im prinzip muss das was in klammern steht inklusive der klammern raus, wenn was da steht,
    wenn nicht, dann sollte der inhalt trotzdem übergeben werden.

    wer kann helfen ?

  • editfeld ist ist immer markiert. wie bekommt man das weg?

    • WhiteLion
    • 28. Januar 2010 um 12:33
    Zitat von cartan12

    machs doch so:

    [autoit]

    _GUICtrlEdit_SetSel($hWnd, "", "")

    [/autoit]

    danke, geht nicht ... markierung bleibt unverändert bestehen...
    ich hatte es schon mit GUICtrlSetState($customkeyinput, $GUI_DISABLE) und wieder ENABLE probiert ... wenns wieder enankle ist, dann ist die markierung wieder da :(

    EDIT: es geht jetzt danke ... hatte es an die falsche stelle im code platziert ... thx

  • Eintrag im ListView durch nutzer editieren lassen. - wie geht das ?

    • WhiteLion
    • 28. Januar 2010 um 12:13

    danke autobernt :D

    ich habs inzwischen mit einem editfeld gelöst, da ich deinen post erst recht spät bemerkt hatte :)

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™