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

Beiträge von Ram3000

  • Timer anzeigen lassen...

    • Ram3000
    • 20. März 2019 um 07:20
    Zitat von Bitnugger

    Ja... eigentlich kein großes Ding, aber ich werde dir am WE besser ein komplett neues Script dafür schreiben... da hast du weitaus mehr von!

    Hallo Bitnugger,
    war Du schon dabei und hast ein neues Script erstellen können ? *VorsichtigFragNach* ;)
    Würde mich wirklich freuen, wenn Du da noch etwas machen würdest.
    Danke schon einmal.

  • Timer anzeigen lassen...

    • Ram3000
    • 6. März 2019 um 06:18
    Zitat von Bitnugger

    Ja, kannst du... du kannst es aber auch so machen:

    If Not @Compiled Then ConsoleWrite('Dieser Text wird nur ausgegeben, wenn das Script nicht kompiliert ist!' & @CRLF)

    Eine Consolenausgabe im kompilierten Script hast du aber eh nur, wenn du es als CUI kompilierst... dazu wird folgende Direktive im Script gesetzt:

    #AutoIt3Wrapper_Change2CUI=y

    Ja... eigentlich kein großes Ding, aber ich werde dir am WE besser ein komplett neues Script dafür schreiben... da hast du weitaus mehr von!

    wow cool. Das ist echt sehr nett von Dir !

    Da bin ich ja schon gespannt ;)

    DANKE!

  • Timer anzeigen lassen...

    • Ram3000
    • 5. März 2019 um 09:46

    Bitnugger

    WoW, vielen dank ! Ich würde ja 'Thanks' klicken, gibt es aber nicht ;)

    CANTARA ist richtig, hab ich beim 2. ein 'N' vergessen ;)

    Das sieht super aus und macht auch soweit das was ich mir vorgestellt habe.

    Kann ich die 'consolewrite' rausnehmen wenn ich es Builden will oder stört das dann nicht? Es läuft ja so auch. ;)

    Ich werde mir das noch einmal genauer angucken, denn ich will das auch verstehen ;)

    Leider bin ich noch kein Profi wie viele hier, aber ich bin bemüht mein Wissen zu erweitern.

    Also noch einmal VIELEN DANK !

    Nachtrag:

    Mir ist grade aufgefallen, das die OK-Meldung nur einmal ausgegeben wird.

    Die OK-Meldung sollte jedesmal ausgegeben werden, nur die DOWN-Meldung sollte nur beim DOWN 1x ausgegeben werden.

    Somit weiss ich dann wann die letzte OK-Prüfung war und seit wann ein Server DOWN ist.

    Könntest Du mir bitte dabei noch einmal kurz helfen?

    Danke.

  • Timer anzeigen lassen...

    • Ram3000
    • 4. März 2019 um 19:39

    Bitnugger: Vielen Dank ! Das hat mir sehr geholfen.

    Ich muss noch wie alpines vorschlug das alles mit den Arrays machen.

    Aber ich bin schon mal ein ganzes Stück weiter.
    Der Timer läuft nun auch und sieht besser aus.

    Was müsste ich machen, damit ich die erste Fehlermeldung bei jedem Server behalte und angezeigt bekomme?
    Also wenn Server 1 ausfällt, dann möchte ich nur die erste Down + Datum/Zeit-Meldung, wann er ausgefallen ist, sehen.
    In der Funktion wird das ja jedesmal aktualisiert...

    Wie kann ich das lösen?

    Mein Code schaut zZ so aus:

    C
    #include <Misc.au3>
    #include <Date.au3>
    #include <Timers.au3>
    #include <GUIConstantsEx.au3>
    #include <ColorConstants.au3>
    #include <StaticConstants.au3>
    Local $hDLL = DllOpen("user32.dll")
    
    $config_serverip = IniRead (@ScriptDir & "\config.ini", "server", "serverip", 1)
    $config_server1 = IniRead (@ScriptDir & "\config.ini", "server", "server1", 1)
    $config_server1port = IniRead (@ScriptDir & "\config.ini", "server", "server1port", 1)
    $config_server2 = IniRead (@ScriptDir & "\config.ini", "server", "server2", 1)
    $config_server2port = IniRead (@ScriptDir & "\config.ini", "server", "server2port", 1)
    $config_server3 = IniRead (@ScriptDir & "\config.ini", "server", "server3", 1)
    $config_server3port = IniRead (@ScriptDir & "\config.ini", "server", "server3port", 1)
    $config_timer = IniRead (@ScriptDir & "\config.ini", "server", "timer", 1)
    $config_server_text0 = IniRead (@ScriptDir & "\config.ini", "server", "text0", 1)
    $config_server_text1 = IniRead (@ScriptDir & "\config.ini", "server", "text1", 1)
    $config_server_text2 = IniRead (@ScriptDir & "\config.ini", "server", "text2", 1)
    
    $Form1 = GUICreate($config_server_text0, 120, 220)
    $Title1 = GUICtrlCreateLabel($config_server_text1, 0, 4, 110, 42, $SS_CENTER)
    $Title2 = GUICtrlCreateLabel($config_server_text2, 0, 20, 110, 42, $SS_CENTER)
    $Server1 = GUICtrlCreateLabel("", 5, 40, 12, 12)
    GUICtrlSetBkColor($Server1, 0xaaaaaa)
    $Button1 = GUICtrlCreateLabel($config_server1, 22 , 40, 110, 20)
    $Server2 = GUICtrlCreateLabel("", 5, 60, 12, 12)
    GUICtrlSetBkColor($Server2, 0xaaaaaa)
    $Button2 = GUICtrlCreateLabel($config_server2, 22 , 60, 110, 20)
    $Server3 = GUICtrlCreateLabel("", 5, 80, 12, 12)
    GUICtrlSetBkColor($Server3, 0xaaaaaa)
    $Button3 = GUICtrlCreateLabel($config_server3, 22 , 80, 110, 20)
    $Output1    =    GUICtrlCreateLabel("", 5, 100, 110, 28)
    GUICtrlSetBkColor($Output1, 0xdddddd)
    $Output2    =    GUICtrlCreateLabel("", 5, 132, 110, 28)
    GUICtrlSetBkColor($Output2, 0xdddddd)
    $Output3    =    GUICtrlCreateLabel("", 5, 164, 110, 28)
    GUICtrlSetBkColor($Output3, 0xdddddd)
    GUISetOnEvent($GUI_EVENT_CLOSE, "ExitApp")
    
    HotKeySet("!e", "_end")
    TCPStartup()
    GUISetState(@SW_SHOW)
    _ServerCheck()
    AdlibRegister("_Countdown", 1000)
    Sleep(1000)
    
    While 1
        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE
                ExitLoop
        EndSwitch
     WEnd
    
    Func _Countdown()
       Local Static $Timer = $config_timer
       $Timerout = GUICtrlCreateLabel("Timer: " & $Timer & " sec", 0, 198, 110, 72, $SS_CENTER)
       GUICtrlSetFont(-1, 11, 400, 1, "Arial Narrow")
       $Timer -= 1
       If $Timer < 0 Then
          $Timer = $config_timer
          _ServerCheck()
       EndIf
    EndFunc
    
    Func _ServerCheck()
       Local $iSocket, $iError, $sDateTime = _DateTimeFormat(_NowCalc(), 2) &" - "& _DateTimeFormat(_NowCalc(), 3)
    
    $iSocket = TCPConnect($config_serverip, $config_server1port)
       $iError = @error
       GuiCtrlSetData($Output1, $config_server1 & ($iError ? " is down " : " is ok ") &@CRLF& $sDateTime)
       GUICtrlSetBkColor($Server1, $iError ? 0xff0000 : 0x8fff89)
       If Not $iError Then TCPCloseSocket($iSocket)
    
    $iSocket = TCPConnect($config_serverip, $config_server2port)
       $iError = @error
       GuiCtrlSetData($Output2, $config_server2 & ($iError ? " is down " : " is ok ") &@CRLF& $sDateTime)
       GUICtrlSetBkColor($Server2, $iError ? 0xff0000 : 0x8fff89)
       If Not $iError Then TCPCloseSocket($iSocket)
       $iSocket = TCPConnect($config_serverip, $config_server2port)
       $iError = @error
    
    $iSocket = TCPConnect($config_serverip, $config_server3port)
       $iError = @error
       GuiCtrlSetData($Output3, $config_server3 & ($iError ? " is down " : " is ok ") &@CRLF& $sDateTime)
       GUICtrlSetBkColor($Server3, $iError ? 0xff0000 : 0x8fff89)
       If Not $iError Then TCPCloseSocket($iSocket)
       $iSocket = TCPConnect($config_serverip, $config_server3port)
       $iError = @error
    EndFunc
    
    Func ExitApp()
        Exit
    EndFunc
    Alles anzeigen
  • Timer anzeigen lassen...

    • Ram3000
    • 2. März 2019 um 13:21

    Danke Alpines,

    AdlibRegister werde ich mir mal angucken und probieren...

    Das mit den Arrays werde ich mir auch mal genauer angucken...

    Danke !

  • Timer anzeigen lassen...

    • Ram3000
    • 2. März 2019 um 11:56

    Danke Alpines.

    Wie mache ich das mit Arrays?

    Hab ich vergessen ;)

    Der Timer soll die ablaufende Zeit anzeigen, ganz unten ist das Feld schon eingeblendet.

    Und wenn die Vorgegebene Zeit (5min) abgelaufen ist, dann soll die Funktion _ServerCheck() aufgerufen werden und der Timer neu gestartet werden und natürlich wieder angezeigt werden.

  • Timer anzeigen lassen...

    • Ram3000
    • 2. März 2019 um 10:09

    Hallo, ich habe ein kleines Programm geschrieben, wo ich einen Server anfragen kann.

    Nun würde ich gerne noch den Timer anzeigen lassen, weiss aber nicht wie ich das anstellen soll...

    Das Programm macht schon soweit was es soll, aber falls einer einen Verbesserungsvorschlag hat, ist das gerne gesehen.

    Vielen dank schon einmal.


    Server Status.au3

    C
    #include <Misc.au3>
    #include <GUIConstantsEx.au3>
    #include <ColorConstants.au3>
    #include <Date.au3>
    #include <StaticConstants.au3>
    Local $hDLL = DllOpen("user32.dll")
    $config_serverip = IniRead (@ScriptDir & "\config.ini", "server", "serverip", 1)
    $config_server1 = IniRead (@ScriptDir & "\config.ini", "server", "server1", 1)
    $config_server1port = IniRead (@ScriptDir & "\config.ini", "server", "server1port", 1)
    $config_server2 = IniRead (@ScriptDir & "\config.ini", "server", "server2", 1)
    $config_server2port = IniRead (@ScriptDir & "\config.ini", "server", "server2port", 1)
    $config_server3 = IniRead (@ScriptDir & "\config.ini", "server", "server3", 1)
    $config_server3port = IniRead (@ScriptDir & "\config.ini", "server", "server3port", 1)
    $config_timer = IniRead (@ScriptDir & "\config.ini", "server", "timer", 1)
    $config_server_text0 = IniRead (@ScriptDir & "\config.ini", "server", "text0", 1)
    $config_server_text1 = IniRead (@ScriptDir & "\config.ini", "server", "text1", 1)
    $config_server_text2 = IniRead (@ScriptDir & "\config.ini", "server", "text2", 1)
    
    $Form1 = GUICreate($config_server_text0, 100, 220)
    $Title1 = GUICtrlCreateLabel($config_server_text1, 0, 4, 100, 42, $SS_CENTER)
    $Title2 = GUICtrlCreateLabel($config_server_text2, 0, 20, 100, 42, $SS_CENTER)
    $Server1 = GUICtrlCreateLabel("", 5, 40, 12, 12)
    GUICtrlSetBkColor($Server1, 0xaaaaaa)
    $Button1 = GUICtrlCreateLabel($config_server1, 22 , 40, 90, 20)
    $Server2 = GUICtrlCreateLabel("", 5, 60, 12, 12)
    GUICtrlSetBkColor($Server2, 0xaaaaaa)
    $Button2 = GUICtrlCreateLabel($config_server2, 22 , 60, 90, 20)
    $Server3 = GUICtrlCreateLabel("", 5, 80, 12, 12)
    GUICtrlSetBkColor($Server3, 0xaaaaaa)
    $Button3 = GUICtrlCreateLabel($config_server3, 22 , 80, 90, 20)
    $Output1    =    GUICtrlCreateLabel("", 5, 100, 90, 32)
    GUICtrlSetBkColor($Output1, 0xdddddd)
    $Output2    =    GUICtrlCreateLabel("", 5, 135, 90, 32)
    GUICtrlSetBkColor($Output2, 0xdddddd)
    $Output3    =    GUICtrlCreateLabel("", 5, 170, 90, 32)
    GUICtrlSetBkColor($Output3, 0xdddddd)
    $Timer    =    GUICtrlCreateLabel("Timer", 0, 204, 100, 72, $SS_CENTER)
    GUISetOnEvent($GUI_EVENT_CLOSE, "ExitApp")
    GUISetState(@SW_SHOW)
    TCPStartup()
    $time=TimerInit()
    HotKeySet("!e", "_end")
    #include <Timers.au3>
    $timer = TimerInit()
    _FirstCheck()
    
    
    While 1
    $msg = GUIGetMsg()
       If Int(TimerDiff($timer)/ 1000) >= $config_timer Then
          _ServerCheck()
          $timer = TimerInit()
       EndIf
       Select
          Case $msg = $GUI_EVENT_CLOSE
          ExitLoop
       EndSelect
    WEnd
    
    
    Func _FirstCheck()
    $socket1 = TCPConnect($config_serverip, $config_server1port)
       If $socket1 = -1 Then
          GuiCtrlSetData($Output1, $config_server1 & " is down " &@CRLF& _DateTimeFormat(_NowCalc(), 2) &" - "& _DateTimeFormat(_NowCalc(), 4))
          GUICtrlSetBkColor($Server1, 0xff0000)
          GUICtrlSetBkColor($Output1, 0xff0000)
       else
          GuiCtrlSetData($Output1, $config_server1 & " is ok " &@CRLF& _DateTimeFormat(_NowCalc(), 2) &" - "& _DateTimeFormat(_NowCalc(), 4))
          GUICtrlSetBkColor($Server1, 0x8fff89)
          GUICtrlSetBkColor($Output1, 0xdddddd)
       EndIf
    $socket2 = TCPConnect($config_serverip, $config_server2port)
       If $socket2 = -1 Then
          GuiCtrlSetData($Output2, $config_server2 & " is down " &@CRLF& _DateTimeFormat(_NowCalc(), 2) &" - "& _DateTimeFormat(_NowCalc(), 4))
          GUICtrlSetBkColor($Server2, 0xff0000)
          GUICtrlSetBkColor($Output2, 0xff0000)
       else
          GuiCtrlSetData($Output2, $config_server2 & " is ok " &@CRLF& _DateTimeFormat(_NowCalc(), 2) &" - "& _DateTimeFormat(_NowCalc(), 4))
          GUICtrlSetBkColor($Server2, 0x8fff89)
          GUICtrlSetBkColor($Output2, 0xdddddd)
       EndIf
    $socket3 = TCPConnect($config_serverip, $config_server3port)
       If $socket3 = -1 Then
          GuiCtrlSetData($Output3, $config_server3 & " is down " &@CRLF& _DateTimeFormat(_NowCalc(), 2) &" - "& _DateTimeFormat(_NowCalc(), 4))
          GUICtrlSetBkColor($Server3, 0xff0000)
          GUICtrlSetBkColor($Output3, 0xff0000)
       else
          GuiCtrlSetData($Output3, $config_server3 & " is ok " &@CRLF& _DateTimeFormat(_NowCalc(), 2) &" - "& _DateTimeFormat(_NowCalc(), 4))
          GUICtrlSetBkColor($Server3, 0x8fff89)
          GUICtrlSetBkColor($Output3, 0xdddddd)
    EndIf
    EndFunc
    
    
    Func _ServerCheck()
    $socket1 = TCPConnect($config_serverip, $config_server1port)
       If $socket1 = -1 Then
          GuiCtrlSetData($Output1, $config_server1 & " is down " &@CRLF& _DateTimeFormat(_NowCalc(), 2) &" - "& _DateTimeFormat(_NowCalc(), 4))
          GUICtrlSetBkColor($Server1, 0xff0000)
       else
          GuiCtrlSetData($Output1, $config_server1 & " is ok " &@CRLF& _DateTimeFormat(_NowCalc(), 2) &" - "& _DateTimeFormat(_NowCalc(), 4))
          GUICtrlSetBkColor($Server1, 0x8fff89)
       EndIf
    $socket2 = TCPConnect($config_serverip, $config_server2port)
       If $socket2 = -1 Then
          GuiCtrlSetData($Output2, $config_server2 & " is down " &@CRLF& _DateTimeFormat(_NowCalc(), 2) &" - "& _DateTimeFormat(_NowCalc(), 4))
          GUICtrlSetBkColor($Server2, 0xff0000)
       else
          GuiCtrlSetData($Output2, $config_server2 & " is ok " &@CRLF& _DateTimeFormat(_NowCalc(), 2) &" - "& _DateTimeFormat(_NowCalc(), 4))
          GUICtrlSetBkColor($Server2, 0x8fff89)
       EndIf
    $socket3 = TCPConnect($config_serverip, $config_server3port)
       If $socket3 = -1 Then
          GuiCtrlSetData($Output3, $config_server3 & " is down " &@CRLF& _DateTimeFormat(_NowCalc(), 2) &" - "& _DateTimeFormat(_NowCalc(), 4))
          GUICtrlSetBkColor($Server3, 0xff0000)
       else
          GuiCtrlSetData($Output3, $config_server3 & " is ok " &@CRLF& _DateTimeFormat(_NowCalc(), 2) &" - "& _DateTimeFormat(_NowCalc(), 4))
          GUICtrlSetBkColor($Server3, 0x8fff89)
    EndIf
    EndFunc
    
    
    Func ExitApp()
        Exit
    EndFunc
    Alles anzeigen

    config.ini

    Code
    [server]
    serverip=127.0.0.1
    server1=Server1
    server1port=28000
    server2=Server2
    server2port=24000
    server3=Server3
    server3port=7000
    timer=301
    text0=CANTARA
    text1=CATARA
    text2=Server Status
    Alles anzeigen
  • [Problem] Item Reader - Daten aus 3 Dateien lesen & zuordnen

    • Ram3000
    • 15. Januar 2019 um 14:26

    Hi, ja sorry für den 'bump'

    Das lustige ist ja, wenn ich das erste Script (#27) nehme was von BugFix stammt, dann funktioniert es super.

    Das ist aber nur für die Items zuständig und ich dachte ich kann es leicht angepasst/abgeändert auch für die Monsterliste nehmen.

    Aber das funktioniert leider so nicht und ich komme da nun nicht mehr weiter ;(

    Ich würde mich über jede Hilfe freuen, damit das kleine Script läuft ;)

  • [Problem] Item Reader - Daten aus 3 Dateien lesen & zuordnen

    • Ram3000
    • 15. Januar 2019 um 12:15

    bump...kann mir keiner helfen?

  • [Problem] Item Reader - Daten aus 3 Dateien lesen & zuordnen

    • Ram3000
    • 13. Januar 2019 um 19:33

    Lass mal gut sein, das gehört hier echt nicht rein und macht das Thema kaputt !

    Es dient und wird auch nie für irgendetwas schlimmes und/oder böses genutzt !

    Es steht im Post #3 !

    @ Kann hier mal einer aufräumen? Danke.

  • [Problem] Item Reader - Daten aus 3 Dateien lesen & zuordnen

    • Ram3000
    • 13. Januar 2019 um 17:25

    *LOL* dann solltest du dir das mal genauer angucken !

    Das hat nichts damit zu tun.

    Es geht hier um Daten die ich aus meinem Server ziehe und möchte diese Daten nur einfach und schnell umwandeln.

  • [Problem] Item Reader - Daten aus 3 Dateien lesen & zuordnen

    • Ram3000
    • 13. Januar 2019 um 17:15

    Wogegen habe ich denn bitte verstossen?

  • [Problem] Item Reader - Daten aus 3 Dateien lesen & zuordnen

    • Ram3000
    • 13. Januar 2019 um 14:11

    Hallo BugFix ;)

    Ich hätte da noch mal eine Frage zu dem gleichen Thema nur mit anderen Daten.

    Jetzt geht es um die Auflistung der Monster.

    Ich habe das Script genommen und wollte es für die Monsterliste anwenden, funktioniert aber leider nicht so und ich bekomme das einfach nicht hin.

    Könntest Du oder jemand anderes mir bitte helfen?

    Danke.

    Ich habe mal die benötigten Dateien angehängt.

    monster_dateien.7z

    C
    #include <GUIListView.au3>
    #include <File.au3>
    #include <GUIConstantsEx.au3>
    $date = @MDAY & "." & @MON & "." & @YEAR
    MainGUI()
    ; GUI =============================================
    Func MainGUI()
    Global $SF = StringFormat
    Global $sPathObj = $SF('%s\defineObj.h', @ScriptDir)
    Global $sPathPropMover = $SF('%s\propMover.txt', @ScriptDir)
    Global $sPathPropMoverTxt = $SF('%s\propMover.txt.txt', @ScriptDir)
    Global $sPathResult = $SF('%s\\Monster-Liste ' & $Date &'.txt', @ScriptDir)
    Global $timer = TimerInit()
    
    Global $aObj = StringRegExp(FileRead($sPathObj), '(?<=\r\n)#define\s+([\S\T]+)\s+(\d+)',  3) ; defineObj.h
    Global $oObj = ObjCreate('Scripting.Dictionary')
    For $i = 0 To UBound($aObj) -2 Step 2
        $oObj.Add($aObj[$i], $aObj[$i+1]) ; ItemDefine = ID
        ConsoleWrite($aObj[$i+1] & ' | ' & $aObj[$i] & @CRLF) ; Ausgabe: ID | OBJECTNAME
    Next
    
    Global $aPropMover = StringRegExp(FileRead($sPathPropMover), '(?<=\r\n)\d+\t+([\w_\d]+)\t+([\S]+)\s+', 3) ; propMover.txt
    Global $oPropMover = ObjCreate('Scripting.Dictionary')
    For $i = 0 To UBound($aPropMover) -2 Step 2
        If Not $oPropMover.Exists($aPropMover[$i+1]) Then
            $oPropMover.Add($aPropMover[$i+1], $aPropMover[$i]) ; Text-Identifier = ItemDefine
            ConsoleWrite($aPropMover[$i] & @CRLF)
        EndIf
    Next
    
    $hGUI=GUICreate("Monster-Liste", 900, 800)
    Opt('GUIOnEventMode',1)
    $hList = GUICtrlCreateListView("Item Code|DEFINE|Item Name|Item Text", 20, 20, 860, 650)
    _GUICtrlListView_SetColumn($hList, 0, 'ID', 60, 0) ; 2. Spalte = 470 Px breit, rechts ausgerichtet
    _GUICtrlListView_SetColumn($hList, 1, 'Monstername', 240, 0) ; 2. Spalte = 470 Px breit, rechts ausgerichtet
    _GUICtrlListView_SetColumn($hList, 2, 'Beschreibung', 356, 0) ; 2. Spalte = 470 Px breit, rechts ausgerichtet
    _GUICtrlListView_SetColumn($hList, 3, 'Define', 180, 0) ; 1. Spalte = 40 Px breit, links ausgerichtet
    $Button1 = GUICtrlCreateButton ("OPTION 1", 20, 680, 200, 50)
    $button2 = GUICtrlCreateButton ("OPTION 2", 230, 680, 200, 50)
    $btnExport = GUICtrlCreateButton ("Export full List", 470, 680, 200, 50)
    $btnExportShort = GUICtrlCreateButton ("Export small List (ID | NAME)", 680, 680, 200, 50)
    GUISetOnEvent(-3, "_close")
    
    Global $aObjTxt = StringRegExp(FileRead($sPathPropMoverTxt), '(IDS_(?:PROPMOVER|UNBIND)\w+\d+)([^\r]+)', 3) ; propMover.txt.txt
    Global $sResult = ''
    Global $sLVItem = '', $iID, $sIdent, $sTxt, $sDescript
    Global $sResultShort = ''
    Global $sLVItemShort = '', $iID, $sIdent
    
    For $i = 0 To UBound($aObjTxt) -2 Step 2
        $sDescript = ''
        If $oPropMover.Exists($aObjTxt[$i]) Then  ; Eintrag ist Text-Identifier
            $sIdent = $oPropMover.Item($aObjTxt[$i])                       ; Item Define
            $iID = Number($oObj.Item($sIdent))                        ; ID
            $sTxt = StringStripWS($aObjTxt[$i+1], 1+2)                ; Name
            ; Folgeeintrag kein Text-Identifier -->                      Beschreibung
            If ($i < UBound($aObjTxt) -2) And (Not $oPropMover.Exists($aObjTxt[$i+2])) Then
                $sDescript = StringStripWS($aObjTxt[$i+3], 1+2)
            EndIf
            ; ID | Name | Beschreibung | ItemDefine
            $sLVItem = $SF('%s|%s|%s|%s', $iID, $sTxt, $sDescript, $sIdent) ; Volle Ausgabe
            $sLVItemShort = $SF('%s|%s', $iID, $sTxt) ; Ausgabe: ID | Name
            $sResult &= $SF('%s%s', $sLVItem, @CRLF)
            $sResultShort &= $SF('%s%s', $sLVItemShort, @CRLF)
            GUICtrlCreateListViewItem($sLVItem, $hList)
        EndIf
    Next
    ConsoleWrite($SF('Time used: %0.1f s', TimerDiff($timer)/1000) & @CRLF)
    
    GUISetState()
    ;_Export()
    ;_ExportShort()
    
       While 1
            $nMsg = GUIGetMsg()
             Switch $nMsg
                Case $GUI_EVENT_CLOSE
                      Exit
                Case $Button1
                     MsgBox(0, 'INFO', 'Button 1')
                Case $btnExport
                    _Export()
                Case $btnExportShort
                    _ExportShort()
             EndSwitch
       WEnd
    
    EndFunc
    
    Func _close()
       ;MsgBox(0, 'INFO', 'beenden')
       Exit
    EndFunc
    
    Func _Export()
    ; Schreiben in Datei
    MsgBox(0, 'INFO', 'EXPORT')
    _FileCreate($sPathResult) ; Datei erstellen
    Global $fH = FileOpen($sPathResult, 2+8)
    FileWrite($fH, $sResult)
    FileClose($fH)
    EndFunc
    
    Func _ExportShort()
    MsgBox(0, 'INFO', 'EXPORT SHORT')
    ; Schreiben in Datei
    _FileCreate($sPathResult) ; Datei erstellen
    Global $fH = FileOpen($sPathResult, 2+8)
    FileWrite($fH, $sResultShort)
    FileClose($fH)
    EndFunc
    Alles anzeigen
  • [Problem] Item Reader - Daten aus 3 Dateien lesen & zuordnen

    • Ram3000
    • 26. September 2017 um 16:04

    hehe...achso...ich sehe was du meinst.

    da wurde einfach nur der name in die beschreibung gesetzt und kein extra beschreibungs element erstellt.

    ansich auch blöd, aber das kann mai vorkommen, sollte nicht....

    so ist der itemname und die itembeschreibung gleich....eine element gespart...LOL

    aufbau der datei: als erstes wird der itemname (IDS_PROPITEM_TXT_007239) gelesen und ganz am ende kommt die itembeschreibung (IDS_PROPITEM_TXT_007239)....dazwischen natürlich die ganzen anderen sachen für das item...

    wenn ich besser programmieren könnte, würde ich die 3 dateien zu einer umbauen....aber der aufwand ist viel zu gross... ;)

  • [Problem] Item Reader - Daten aus 3 Dateien lesen & zuordnen

    • Ram3000
    • 26. September 2017 um 13:40

    BugFix :

    In der propItem.txt gibt es doppelte, weil man dort die Items zusammen stellt und scheinbar jemand eine verhandene Beschreibung einfach noch einmal benutzt hat. Grundsätzlich sollte ein Eintrag wie zB IDS_PROPITEM_TXT_002080 nur einmal vorkommen, aber wie man sieht passiert es doch.

    Die ID ist das einzige was wirklich einmalig ist, selbst die defines sollten einmalig sein. Die Namen und Beschreibungen sollten auch einmalig sein, werden aber scheinbar öfters genutzt.

    Das Script schaue ich mir später mal genauer an. :)

    Ich kann dich verstehen, darum habe ich hier nachgefragt, weil ich da überhaupt nicht durchgestiegen bin, wie ich das Script erstellen sollte.

    Ich danke Dir auf jedenfall für deine Mühe !!!!!

    PS: Evtl habe ich noch einen alten Snip von einem C# Programm, wenn Dir das etwas helfen sollte, leider nicht den ganzen Source :(


    @Musashi:

    Ich habe keinen direkten Kontakt zu denen und es sind soweit original Dateien. Die sehen leider so aus., es gibt nur noch schlimmere... ;)

    Und da wird sich auch nichts daran ändern, solange keiner die ganzen Funktionen und Daten mal ordentlich aufbaut/umbaut.

  • [Problem] Item Reader - Daten aus 3 Dateien lesen & zuordnen

    • Ram3000
    • 26. September 2017 um 11:43

    Evtl sollte man mit der propItem.txt.txt anfangen, weil die meinstens am saubersten ist.

    Von dort aus könnte man doch bestimmt dann die anderen Daten suchen & zuweisen, denn dort ist ja der Name und die Beschreibung (falls vorhanden) drin.

    propItem.txt.txt:

    IDS_PROPITEM_TXT_000004 Penya1

    IDS_PROPITEM_TXT_000005 Penya1 Beschreibung

    propItem.txt

    II_GOLD_SEED1 IDS_PROPITEM_TXT_000004 ..........ganz zum schluss der Zeile, falls angegeben........... IDS_PROPITEM_TXT_000005

    defineItem.h

    II_GOLD_SEED1 12

    Ich würde mich riesig freuen, wenn Du das hinbekommen würdest ;)

  • [Problem] Item Reader - Daten aus 3 Dateien lesen & zuordnen

    • Ram3000
    • 26. September 2017 um 11:14

    BugFix : DU bist zu schnell ! Danke !

    Ich habe etwas im Forum gefunden und es mal so gelöst:

    FileOpen($sPathResult,2) ; works...

    FileWrite($sPathResult, $sResult)

    Aber deine Lösung ist besser ;)

    Naja, eigentlich sollte man es schon machen können, auch wenn eine Beschreibung fehlt.

    Es gibt immer eine Item-ID für jedes Item und ein entsprechendes Define und einen Itemname.

    Die Beschreibung wurde oft einfach weggelassen, leider leider....

  • [Problem] Item Reader - Daten aus 3 Dateien lesen & zuordnen

    • Ram3000
    • 26. September 2017 um 10:53

    @Musashi: Danke für die Hilfe.

    BugFix :

    Edit1:

    Danke für den Edit. Jetzt schreibt das Script die Datei mit Inhalt.

    Edit2:

    Diese Datei ist original so wie sie ist, dort habe ich noch nichts geändert.

    Es gibt nicht immer zwangsläufig eine Beschreibung, die Programmierer meinen es sei nicht nötig und so haben nicht alle Einträge eine Beschreibung, leider.

    Normalerweise ist 'sollte' es so sein:

    IDS_PROPITEM_TXT_000004 Itemname

    IDS_PROPITEM_TXT_000005 Itembeschreibung, ob nötig oder nicht

    IDS_PROPITEM_TXT_000006 Itemname

    IDS_PROPITEM_TXT_000007 Itembeschreibung, ob nötig oder nicht

    Manchmal haben die einfach nur einen Itemname hinterlegt, ohne Beschreibung.

    IDS_PROPITEM_TXT_000008 Itemname

    IDS_PROPITEM_TXT_000009 Itemname

    Und manchmal machen die auch einfach riesen Sprünge.

    IDS_PROPITEM_TXT_001008 Itemname

    IDS_PROPITEM_TXT_002001 Itemname

    Die fehlenden Texte sind vom original schon so und sollten als leerzeichen ' ' gesetzt werden, dann kann ich sehen wo etwas fehlt.

    Kleine Frage zum FileWrite: Wie kann ich es machen, das die result.txt immer neu gefüllt wird? Jetzt schreibt das Script immer weiter in die Datei, dann ist alles mehrfach in der Datei.

    Ich danke Dir schon einmal für deine Mühe !!!

  • [Problem] Item Reader - Daten aus 3 Dateien lesen & zuordnen

    • Ram3000
    • 26. September 2017 um 06:28

    Hey, ich habe das schon versucht und habe es aktiviert, aber ohne erfolg :/

    Code
    $sResult &= $SF('%s|%s|%s%s', $oItem.Item($aPropItem[$i]), $oItemTxt.Item($aPropItem[$i+1]), $aPropItem[$i], @CRLF)
        ; oder direkt in Listview eintragen
        GUICtrlCreateListViewItem($SF('%s|%s|%s%s', $oItem.Item($aPropItem[$i]), $oItemTxt.Item($aPropItem[$i+1]), $aPropItem[$i]), $hList)
    Next
    ; Schreiben in Datei
     FileWrite($sPathResult, $sResult)
    ConsoleWrite(TimerDiff($timer)/1000 & @CRLF)
  • [Problem] Item Reader - Daten aus 3 Dateien lesen & zuordnen

    • Ram3000
    • 25. September 2017 um 21:58

    BugFix :

    WOW Dickes Danke ! Das sieht sehr gut aus.
    Aber kann es sein das das FileWrite nichts macht? Bei mir wir keine Datei erstellt...?!

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™