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

Beiträge von stinger2k

  • InetMail() gibt unbekannte PID´s zurück ????

    • stinger2k
    • 2. Mai 2010 um 15:51

    Hallo Leute,
    Kann mir einer sagen warum dieser Code keine gültige PID ausspuckt ?(

    [autoit]


    #include <Inet.au3>
    #include <Array.au3>

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

    $Pid = _INetMail("","","")
    $var = ProcessList()

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

    msgbox(0,"",$Pid)
    _ArrayDisplay($var)

    [/autoit]


    Ich bin dabei eine func zu schreiben die darauf wartet bis der Mail-Client im Fenster aktiv ist um dem Fenster per Send(^v) eine Dateianlage zu übergeben...

  • Unerklärliche Herkunft von Zeichen in Listview

    • stinger2k
    • 1. Mai 2010 um 19:27

    Danke Progandy, :thumbup:
    hatte ich schon versucht, aber da ich in der ersten Spalte, Daten aus 2 anderen Listview´s setze (welche auch nicht unicode sind...) bekomme ich hierdurch nur ein umgedrehtes bild(vorige Daten werden durch Unicode ersetzt...)

    Hab´s nun trotzdem über einen kleinen Umweg (StringReplace) hingekriegt:
    Nachdem ich die Daten aus der Datei lese und bevor diese in die neue Listview eingetragen werden, ersetze ich alle Sonderzeichen (inkl. TAB etc.) und füge diese in einem neuen string wieder hinzu..

    funktioniert auch, nur wieder 8-10 Codezeilen die meiner MEinung nach nicht sein müssten.
    Trotzdem danke :thumbup:

  • Unerklärliche Herkunft von Zeichen in Listview

    • stinger2k
    • 1. Mai 2010 um 17:54

    Hab nun rausgefunden an was es liegt, jedoch weiß ich mir keinen Helfer dies zu umgehen....
    ...Also:
    Grund dafür ist _

    [autoit]

    _GUICtrlListView_SetItemText()

    [/autoit]


    ich lese die daten aus einer textdatei=utf8
    meine listview ist jedoch keine unicode formatierte...
    ich setze nur die subitems neu mit o.g. Funktion. Dieser Schönheitsfehler ist nur mit Windows XP reproduzierbar...

    Vielleicht hat einer von euch einen guten Rat für mich oder auch gleich ein Beispiel....????

    Danke...
    edit: der grund dafür:

    Spoiler anzeigen
    [autoit]

    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _GUICtrlListView_SetItemText
    ; Description ...: Changes the text of an item or subitem
    ; Syntax.........: _GUICtrlListView_SetItemText($hWnd, $iIndex, $sText[, $iSubItem = 0])
    ; Parameters ....: $hWnd - Handle to the control
    ; $iIndex - Zero based index of the item
    ; $sText - Item or subitem text
    ; $iSubItem - One based index of the subitem or 0 to set the item
    ; Return values .: Success - True
    ; Failure - False
    ; Author ........: Paul Campbell (PaulIA)
    ; Modified.......: Gary Frost (gafrost), added code by Ultima to set row text
    ; Remarks .......: If $iSubItem = -1 row is set
    ; Related .......: _GUICtrlListView_GetItemText, _GUICtrlListView_GetItemTextArray, _GUICtrlListView_GetItemTextString, _GUICtrlListView_InsertItem
    ; Link ..........:
    ; Example .......: Yes
    ; ===============================================================================================================================
    Func _GUICtrlListView_SetItemText($hWnd, $iIndex, $sText, $iSubItem = 0)
    If $Debug_LV Then __UDF_ValidateClassName($hWnd, $__LISTVIEWCONSTANT_ClassName)

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

    Local $fUnicode = _GUICtrlListView_GetUnicodeFormat($hWnd)

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

    Local $iRet

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

    If $iSubItem = -1 Then
    Local $SeparatorChar = Opt('GUIDataSeparatorChar')
    Local $i_cols = _GUICtrlListView_GetColumnCount($hWnd)
    Local $a_text = StringSplit($sText, $SeparatorChar)
    If $i_cols > $a_text[0] Then $i_cols = $a_text[0]
    For $i = 1 To $i_cols
    $iRet = _GUICtrlListView_SetItemText($hWnd, $iIndex, $a_text[$i], $i - 1)
    If Not $iRet Then ExitLoop
    Next
    Return $iRet
    EndIf

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

    Local $iBuffer = StringLen($sText) + 1
    Local $tBuffer
    If $fUnicode Then
    $tBuffer = DllStructCreate("char Text[" & $iBuffer & "]")
    $iBuffer *= 2
    Else
    $tBuffer = DllStructCreate("wchar Text[" & $iBuffer & "]")
    EndIf
    Local $pBuffer = DllStructGetPtr($tBuffer)
    Local $tItem = DllStructCreate($tagLVITEM)
    Local $pItem = DllStructGetPtr($tItem)
    DllStructSetData($tBuffer, "Text", $sText)
    DllStructSetData($tItem, "Mask", $LVIF_TEXT)
    DllStructSetData($tItem, "item", $iIndex)
    DllStructSetData($tItem, "SubItem", $iSubItem)
    If IsHWnd($hWnd) Then
    If _WinAPI_InProcess($hWnd, $_lv_ghLastWnd) Then
    DllStructSetData($tItem, "Text", $pBuffer)
    $iRet = _SendMessage($hWnd, $LVM_SETITEMW, 0, $pItem, 0, "wparam", "ptr")
    Else
    Local $iItem = DllStructGetSize($tItem)
    Local $tMemMap
    Local $pMemory = _MemInit($hWnd, $iItem + $iBuffer, $tMemMap)
    Local $pText = $pMemory + $iItem
    DllStructSetData($tItem, "Text", $pText)
    _MemWrite($tMemMap, $pItem, $pMemory, $iItem)
    _MemWrite($tMemMap, $pBuffer, $pText, $iBuffer)
    If $fUnicode Then
    $iRet = _SendMessage($hWnd, $LVM_SETITEMW, 0, $pMemory, 0, "wparam", "ptr")
    Else
    $iRet = _SendMessage($hWnd, $LVM_SETITEMA, 0, $pMemory, 0, "wparam", "ptr")
    EndIf
    _MemFree($tMemMap)
    EndIf
    Else
    DllStructSetData($tItem, "Text", $pBuffer)
    If $fUnicode Then
    $iRet = GUICtrlSendMsg($hWnd, $LVM_SETITEMW, 0, $pItem)
    Else
    $iRet = GUICtrlSendMsg($hWnd, $LVM_SETITEMA, 0, $pItem)
    EndIf
    EndIf
    Return $iRet <> 0
    EndFunc ;==>_GUICtrlListView_SetItemText

    [/autoit]
  • Unerklärliche Herkunft von Zeichen in Listview

    • stinger2k
    • 1. Mai 2010 um 12:34

    An dem kann es nicht liegen... Das Phänomen tritt auch nur bei XP Sp3 32bit auf
    unter 64bit bzw. win7 vista wird es normal dargestellt ohne diesem quadrat...

    Bin jetzt wirklich mal ratlos....

  • Unerklärliche Herkunft von Zeichen in Listview

    • stinger2k
    • 1. Mai 2010 um 12:23

    Hallo Leute,

    in meiner Listview habe ich mit folgenden Funktionen, Einträge erstellt:

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    Func arraysearch2()
    Global $aListe2[1]
    $iColumn = _GUICtrlListView_GetColumnCount(GUICtrlGetHandle ($Liste))
    $iRow = _GUICtrlListView_GetItemCount(GUICtrlGetHandle ($Liste))
    If $iRow > 0 Then

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

    For $i = 0 To $iRow - 1
    For $k = 7 To $iColumn -2
    $sItem = _GUICtrlListView_GetItemText(GUICtrlGetHandle ($Liste), $i, $k)
    For $j = 2 to 2
    $sItem2 = _GUICtrlListView_GetItemText(GUICtrlGetHandle ($Liste), $i, $j)

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

    If $sItem <> "" Then
    $iArraySearch = _ArraySearch($aListe2, $sItem & $sItem2)
    If $iArraySearch = -1 Then
    ReDim $aListe2[UBound($aListe2) + 1][4]
    $aListe2[UBound($aListe2) - 1][0] = $sItem2
    $aListe2[UBound($aListe2) - 1][1] = 1
    $aListe2[UBound($aListe2) - 1][2] = "Stk. " & $sItem
    $aListe2[UBound($aListe2) - 1][3] = $sItem & $sItem2
    Else
    $aListe2[$iArraySearch][1] += 1
    EndIf
    EndIf
    Next
    Next
    Next

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

    _ArraySort($aListe2, 0, 0, 0, 0)
    ReDim $aListe2[UBound($aListe2)][3]
    $stanz_2 =_Array2D_ToString($aListe2,1,-1,@TAB)
    EndIf
    EndFunc

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

    Func stk_hinzufuegen2()
    FileWrite(@TempDir&"\stanz.txt",$stanz_2)
    For $i = 1 To _FileCountLines(@TempDir&"\stanz.txt")
    $sText=StringStripWs (StringLeft (FileReadLine (@TempDir&"\stanz.txt",$i),4),8)
    $pasteindex = _GUICtrlListView_FindText($ListView1,$sText)

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

    For $j = 1 To _FileCountLines(@TempDir&"\stanz.txt")
    $sText2=StringTrimLeft(FileReadLine(@TempDir&"\stanz.txt",$i),4)
    _GUICtrlListView_SetItemText(GUICtrlGetHandle($ListView1), $pasteindex,$sText2,2)
    Next

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

    Next
    FileDelete(@TempDir&"\stanz.txt")
    EndFunc

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

    ; by BugFix:
    Func _Array2D_ToString(ByRef $aArray, $iStart=0, $iEnd=-1, $sDelimItem='|', $sDelimRow=@CRLF)
    If Not IsArray($aArray) Then Return SetError(1,0,'')
    Local $sOut = '', $iUbound = UBound($aArray)
    If $iStart < 0 Or $iStart > $iUbound -1 Then Return SetError(2,0,'')

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

    If $iEnd = -1 Or $iEnd > $iUbound -1 Then $iEnd = $iUbound -1
    If $iEnd < $iStart Then Return SetError(3,0,'')
    For $i = $iStart To $iEnd
    For $j = 0 To UBound($aArray,2) -1
    $sOut &= $aArray[$i][$j] & $sDelimItem
    Next
    $sOut = StringTrimRight($sOut, StringLen($sDelimItem)) & $sDelimRow
    Next
    Return StringTrimRight($sOut, StringLen($sDelimRow))
    EndFunc ;==>_Array2D_ToString

    [/autoit]

    nun habe ich das Problem das bei Stk. (lt.Bild) diese quadratischen ASCII Zeichen kommen anstatt einer leerstelle, warum nur :?:

    Dateien

    fehler.png 26,98 kB – 0 Downloads
  • _ListView2File

    • stinger2k
    • 1. Mai 2010 um 11:49

    Hallo Leute,

    falls es wer gebrauchen kann...

    [autoit]


    #include-once
    #include <GuiListView.au3>

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

    Func _ListView2File($hWnd, $iFile, $iDir=@Scriptdir, $sDelim="|", $sDelimRe=@TAB)
    Local $iItem= _GUICtrlListView_GetItemCount($hWnd)
    If _GUICtrlListView_GetItemCount($hWnd) >0 Then
    $file = FileOpen($iDir & "\" & $iFile, 2)
    If @error then SetError (-2)
    For $i = 0 To $iItem
    $sItem = _GUICtrlListView_GetItemTextString($hWnd, $i) & @CRLF
    FileWrite($file, StringReplace($sItem, $sDelim, $sDelimRe))
    Next
    Return 0
    Else
    SetError (-1)
    ConsoleWrite ("Error! No Item or Data found in " & $hwnd)
    EndIf
    FileClose($file)
    EndFunc ;==>write

    [/autoit]

    ^^
    Achja... Kommentare erwünscht...

  • Gui wie Inet seite

    • stinger2k
    • 28. April 2010 um 19:25

    Ich wollte eine Antwort auf diese Frage liefern und ein funktionierendes beispiel schreiben, jedoch fiel mir beim Versuch das skript zu starten auf, das die 2. If Abfrage greift...
    Wobei mir dies unverständlich ist...

    Vielleicht hat jemand ein Kommentar dazu übrig...

    [autoit]


    #include <GUIConstantsEx.au3>
    #include <Array.au3>
    Global $MainGUI,$SubGUI, $back, $next

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

    main()

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

    While 1
    $nMsg = GUIGetMsg(1)

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

    If $nMsg[1] = $MainGUI Then
    Switch $nMsg[0]
    Case $GUI_EVENT_CLOSE
    Exit
    Case $next
    nextform()
    EndSwitch
    ;------------------------------------------------------------Form #1
    ElseIf $nMsg[1] = $SubGUI Then
    Switch $nMsg[0]
    Case $GUI_EVENT_CLOSE
    GUIDelete($SubGUI)
    $SubGUI = -1
    GUISetState(@SW_HIDE,$SubGUI)
    Case $back
    GUIDelete($SubGUI)
    $SubGUI = -1
    GUISetState(@SW_HIDE,$SubGUI)
    EndSwitch
    EndIf
    ;------------------------------------------------------------Form #2
    WEnd

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

    func main()
    $MainGUI = GUICreate("GUI 1", 246, 74, -1, 259)
    $next = GUICtrlCreateButton("Nächste GUI", 18, 18, 75, 25)
    GUISetState(@SW_SHOW)
    EndFunc

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

    Func nextform()
    If Not WinExists("GUI 2") Then
    $SubGUI= GUICreate("GUI 2", 246, 74, -1, 119)
    $back = GUICtrlCreateButton("zurück...", 18, 18, 75, 25)
    GUISetState(@SW_SHOW)
    Else
    GUISetState(@SW_HIDE,$SubGUI)
    GUISetState(@SW_SHOW,$SubGUI)
    EndIf
    EndFunc

    [/autoit]
  • If Bedingung - Fehler

    • stinger2k
    • 20. April 2010 um 21:44

    oder so...?

    [autoit]


    $xoldArraynum1 = 1
    $yoldArraynum1 = 2

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

    If $xoldArraynum1 <> 1 Then
    If $xoldArraynum1 = 9 And $yoldArraynum1 = 0 Or $yoldArraynum1 = 2 Or $yoldArraynum1 = 4 Or $yoldArraynum1 = 6 Or $yoldArraynum1 = 8 Then
    MsgBox(0, "2", "2te")
    MsgBox(0, "Nummern", $xoldArraynum1 & ", " & $yoldArraynum1)
    $xhelp1 = $xoldArraynum1
    $yhelp1 = $yoldArraynum1+1
    $xoldArraynum1 = $xhelp1
    $yoldArraynum1 = $yhelp1
    MsgBox(0, "Nummern", $xoldArraynum1 & ", " & $yoldArraynum1)
    Sleep(500)
    EndIf
    EndIf

    [/autoit]
  • Config bearbeiten und Config bearbeiten

    • stinger2k
    • 20. April 2010 um 21:35

    Hab´s ein bisschen nachgebessert, sollte nun einwandfrei funktionieren....

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>
    #include <WindowsConstants.au3>
    #include <Array.au3>
    #include <File.au3>

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

    Global $ini = @ScriptDir & "\dvb-tools.ini" ;Pfad zur ini

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

    $Form1 = GUICreate("Ini read to Listview - Beispiel", 700, 500, -1, -1)
    $ListView1 = GUICtrlCreateListView("Key|Value", 20, 20, 660, 350)
    $hlistview = GUICtrlGetHandle($ListView1)
    _GUICtrlListView_SetColumnWidth($hlistview,0,100) ; Spaltenbreite feststzen...
    _GUICtrlListView_SetColumnWidth($hlistview,1,200) ; Spaltenbreite festsetzen SubItem...

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

    $Button2 = GUICtrlCreateButton("Iniread", 20, 420, 120, 33, 0)
    $Button1 = GUICtrlCreateButton("Add", 220, 420, 120, 33, 0)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button2
    _Initolistview($hlistview, $ini)
    Case $Button1
    _Add()
    EndSwitch
    WEnd

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

    Func _Initolistview($hwnd, $path)
    ; nuts (http://www.autoit.de)
    ; $hwnd = Handle to the listview
    ; $path = ini path
    Local $anames, $aread
    If Not IsHWnd($hwnd) Then
    SetError(1) ;not a handle -> @error = 1
    Return
    ElseIf Not FileExists($path) Then
    SetError(2) ;ini not found -> @error = 2
    Return
    EndIf
    $anames = IniReadSectionNames($path)
    $counter = -1;_GUICtrlListView_GetItemCount($hwnd)
    For $i = 1 To $anames[0]
    $aread = IniReadSection($path, $anames[$i])
    If @error Then
    $counter += 1
    _GUICtrlListView_EnableGroupView($hwnd)
    _GUICtrlListView_InsertGroup($hwnd, -1, $i, $anames[$i])
    _GUICtrlListView_AddItem($hwnd, "Kein Eintrag")
    _GUICtrlListView_SetItemGroupID($hwnd, $counter, $i)
    ContinueLoop
    EndIf
    _GUICtrlListView_EnableGroupView($hwnd)
    _GUICtrlListView_InsertGroup($hwnd, -1, $i, $anames[$i])
    For $x = 1 To $aread[0][0]
    $counter += 1
    _GUICtrlListView_AddItem($hwnd, $aread[$x][0])
    _GUICtrlListView_AddSubItem($hwnd, $counter, $aread[$x][1], 1)
    _GUICtrlListView_SetItemGroupID($hwnd, $counter, $i)
    Next

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

    Next
    EndFunc ;==>_Initolistview

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

    Func _Add()
    #region ### START Koda GUI section ### Form=
    $Form2 = GUICreate("Form1", 431, 200, 192, 124)
    $Input1 = GUICtrlCreateInput("", 40, 64, 113, 21)
    $Input2 = GUICtrlCreateInput("", 192, 64, 177, 21)
    $Label1 = GUICtrlCreateLabel("Key", 40, 32, 36, 17)
    $Label2 = GUICtrlCreateLabel("Value", 192, 32, 36, 17)
    $Button = GUICtrlCreateButton("Übernehmen", 140, 150, 120, 33, 0)
    GUISetState(@SW_HIDE, $Form1)
    GUISetState(@SW_SHOW, $Form2)
    #endregion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    GUIDelete($Form2)
    GUISetState(@SW_SHOW, $Form1)
    ExitLoop
    case $Button
    local $count
    _GUICtrlListView_AddItem($hlistview,GUICtrlRead($Input1))
    local $count=_GUICtrlListView_GetItemCount($hlistview)-1
    _GUICtrlListView_AddSubItem($hlistview,$count,GUICtrlRead($Input2),1);hier war auch ein Fehler versteckt anstatt $Input2 war $Input1 angegeben...
    _GUICtrlListView_SetItemGroupID($hlistview,$count,1)
    IniWrite($ini, _GUICtrlListView_GetItemGroupID($hlistview, $count), GuiCtrlRead($Input1), GuiCtrlRead($Input2))
    GUIDelete($Form2)
    GUISetState(@SW_SHOW, $Form1)
    ExitLoop
    EndSwitch
    WEnd
    EndFunc ;==>_Add

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

    ; Mfg Stinger....

    [/autoit]

    Mfg Stinger

  • String nach 2 stelligen Zahlen durchsuchen...???

    • stinger2k
    • 6. April 2010 um 20:04

    damit man auch noch sehen kann, was ich machen will:
    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.
    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    Dateien

    Urspr 78,06 kB – 0 Downloads st 62,38 kB – 0 Downloads
  • String nach 2 stelligen Zahlen durchsuchen...???

    • stinger2k
    • 6. April 2010 um 19:41

    Raupi
    Bei deinem Beispiel meldet er auch funde bei zahlen mit mehr stellen als 2...

    @dsgamer
    Von deinem Beispiel hab ich mal ein Screenshot gemacht, hilft mir auch nicht weiter..
    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist. @

    @Rodny
    du entfernst nur die Char´s aus dem string...

    @all
    Ich benötige dies um item´s in meiner listview genau mit diesen werten zu finden um genau auf deren index, in der spalte daneben items ( "x Stk {50}") einzufügen.
    Ursprünglicher Code: (damit man sehen kann was ich vorhabe..)

    Spoiler anzeigen
    [autoit]


    Func stk_hinzufuegen2()

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

    FileWrite(@TempDir&"\stanz.txt",$stanz_2)
    For $i = 1 To _FileCountLines(@TempDir&"\stanz.txt") ;zähle die Einträge in stanz.txt
    $sText=StringStripWs (StringLeft (FileReadLine (@TempDir&"\stanz.txt",$i),4),8);entferne alle leerstellen aus den ersten 4 zeichen aus stanz.txt
    $pasteindex = _GUICtrlListView_FindText($ListView1,$sText); finde itemindex über suche von $sText
    For $j = 1 To _FileCountLines(@TempDir&"\stanz.txt");zähle Einträge in stanz.txt
    $sText2=StringTrimLeft(FileReadLine(@TempDir&"\stanz.txt",$i),4);lösche die ersten vier zeichen jedes eintrages
    _GUICtrlListView_SetItemText(GUICtrlGetHandle($ListView1), $pasteindex,$sText2,2);setzt den restlichen text - bei gefundenen index, in der Liste
    Next
    Next
    FileDelete(@TempDir&"\stanz.txt")

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

    EndFunc

    [/autoit]

    Bilder

    • SnapShot.jpg
      • 24,23 kB
      • 250 × 494
  • String nach 2 stelligen Zahlen durchsuchen...???

    • stinger2k
    • 6. April 2010 um 19:09

    Hallo,

    ich möchte mit folgendem code, 2,3 oder auch 4 stellige zahlen finden und auslesen... komm jedoch auf keinen nenner.
    Wäre nett wenn ihr mir helfen könntet..

    [autoit]


    #include <File.au3>

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

    Global $stanz_2=FileRead(@ScriptDir&"\stanz.txt")
    msgbox (0,"Ürsprünglicher string",$stanz_2)
    For $i = 1 To _FileCountLines(@ScriptDir&"\stanz.txt")
    $sText=StringStripWs (StringLeft (FileReadLine (@ScriptDir&"\stanz.txt",$i),4),8)

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

    If StringLen($sText) < 3 then
    $sText=StringLeft (FileReadLine (@ScriptDir&"\stanz.txt",$i),2)
    EndIf
    msgbox(0,"Finde Zahlen vor dem Tab...",$sText)

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

    For $j = 1 To _FileCountLines(@ScriptDir&"\stanz.txt")
    $sText2=StringTrimLeft(FileReadLine(@ScriptDir&"\stanz.txt",$i),4)
    Next

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

    MsgBox(0,"Formatierter String...",$sText2)
    Next

    [/autoit]

    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    Dateien

    stanz.txt 74 Byte – 369 Downloads
  • Array Werte verbinden "Bitte Helfen..."

    • stinger2k
    • 5. April 2010 um 21:52

    So einfach????

    [autoit]

    ReDim ()

    [/autoit]


    Und ich Hirni probier schon ein paar stunden mit For-Schleifen & _ArrayDelete / _Array2dDelete rum.
    Danke Raupi...

  • Array Werte verbinden "Bitte Helfen..."

    • stinger2k
    • 5. April 2010 um 21:37

    Hallo Leute,

    hab nun mein Array soweit das es mir die Werte, verbunden mit den zugehörigen Werten in der Tabelle, so ausgibt wie ich es haben will. ^^
    Jedoch brauche ich nochmal eure Hilfe... Wie kann ich nun die letzte spalte in meinem Array, welche mit ArrayDisplay dargestellt wird, so entfernen das die vorherigen Daten so stehen bleiben wie sie sind :?:

    Hier mal der Code:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <ListViewConstants.au3>
    #include <WindowsConstants.au3>
    #include <GuiListView.au3>

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

    $Form1 = GUICreate("Form1", 820, 443, -1, -1)
    $Liste = GUICtrlCreateListView("Pos.|T1|T2|T3|T4|T5|||", 20, 133, 780, 300, BitOR($LVS_REPORT, $LVS_EDITLABELS, $WS_EX_DLGMODALFRAME, $WS_EX_CLIENTEDGE))
    GUICtrlSetResizing(-1, $GUI_DOCKALL)
    _GUICtrlListView_SetColumnWidth($Liste, 0, 130)
    _GUICtrlListView_SetColumnWidth($Liste, 1, 80)
    _GUICtrlListView_SetColumnWidth($Liste, 2, 80)
    _GUICtrlListView_SetColumnWidth($Liste, 3, 80)
    _GUICtrlListView_SetColumnWidth($Liste, 4, 80)
    _GUICtrlListView_SetColumnWidth($Liste, 5, 80)
    _GUICtrlListView_SetColumnWidth($Liste, 6, 80)
    _GUICtrlListView_SetColumnWidth($Liste, 7, 80)
    _GUICtrlListView_SetColumnWidth($Liste, 8, 80)
    _GUICtrlListView_SetExtendedListViewStyle($Liste, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT, $LVS_EX_DOUBLEBUFFER))
    GUICtrlCreateListViewItem("A" & "|" & 225 & "|" & 355 & "|" & 400 & "|" & 102 & "|" & 100 & "|" & 50, $Liste)
    GUICtrlCreateListViewItem("B" & "|" & 325 & "|" & 278 & "|" & 400 & "|" & 207 & "|" & 366 & "|" & 50, $Liste)
    GUICtrlCreateListViewItem("C" & "|" & 425 & "|" & 645 & "|" & 500 & "|" & 752 & "|" & 75, $Liste)
    GUICtrlCreateListViewItem("D" & "|" & 225 & "|" & 100 & "|" & 786 & "|" & 400 & "|" & 200 & "|" & "|" & 530, $Liste)
    GUICtrlCreateListViewItem("E" & "|" & 125 & "|" & 355 & "|" & 900 & "|" & 400 & "|" & 316 & "|" & "|" & 530, $Liste)
    GUICtrlCreateListViewItem("F" & "|" & 100 & "|" & 355 & "|" & 786 & "|" & 752 & "|" & 30 & "|" & "|" & 530, $Liste)
    GUICtrlCreateListViewItem("G" & "|" & 355 & "|" & 225 & "|" & 120 & "|" & 400 & "|" & 100, $Liste)
    GUISetState(@SW_SHOW)

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

    $Button = GUICtrlCreateButton("Stückliste", 350, 60, 120, 25)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $Button
    arraysearch2()
    arraysearch3()
    EndSwitch
    WEnd

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

    Func arraysearch2()
    Global $aListe[1]
    $iColumn = _GUICtrlListView_GetColumnCount(GUICtrlGetHandle ($Liste))
    $iRow = _GUICtrlListView_GetItemCount(GUICtrlGetHandle ($Liste))
    If $iRow > 0 Then

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

    For $i = 0 To $iRow - 1
    For $k = 6 To $iColumn -2
    $sItem = _GUICtrlListView_GetItemText(GUICtrlGetHandle ($Liste), $i, $k)
    For $j = 2 to 2
    $sItem2 = _GUICtrlListView_GetItemText(GUICtrlGetHandle ($Liste), $i, $j)

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

    If $sItem <> "" Then
    $iArraySearch = _ArraySearch($aListe, $sItem & $sItem2)
    If $iArraySearch = -1 Then
    ReDim $aListe[UBound($aListe) + 1][4]
    $aListe[UBound($aListe) - 1][0] = Int ($sItem2)
    $aListe[UBound($aListe) - 1][1] = 1
    $aListe[UBound($aListe) - 1][2] = Int ($sItem)
    $aListe[UBound($aListe) - 1][3] = Int ($sItem & $sItem2)
    Else
    $aListe[$iArraySearch][1] += 1
    EndIf
    EndIf
    Next
    Next
    Next

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

    _ArraySort($aListe, 0, 0, 0, 0)
    _ArrayDisplay($aListe,0)
    $aListe=""

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

    EndIf
    EndFunc
    Func arraysearch3()
    Global $aListe[1]
    $iColumn = _GUICtrlListView_GetColumnCount(GUICtrlGetHandle ($Liste))
    $iRow = _GUICtrlListView_GetItemCount(GUICtrlGetHandle ($Liste))
    If $iRow > 0 Then

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

    For $i = 0 To $iRow - 1
    For $k = 7 To $iColumn -1
    $sItem = _GUICtrlListView_GetItemText(GUICtrlGetHandle ($Liste), $i, $k)
    For $j = 3 to 3
    $sItem2 = _GUICtrlListView_GetItemText(GUICtrlGetHandle ($Liste), $i, $j)

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

    If $sItem <> "" Then
    $iArraySearch = _ArraySearch($aListe, $sItem & $sItem2)
    If $iArraySearch = -1 Then
    ReDim $aListe[UBound($aListe) + 1][4]
    $aListe[UBound($aListe) - 1][0] = Int ($sItem2)
    $aListe[UBound($aListe) - 1][1] = 1
    $aListe[UBound($aListe) - 1][2] = Int ($sItem)
    $aListe[UBound($aListe) - 1][3] = Int ($sItem & $sItem2)
    Else
    $aListe[$iArraySearch][1] += 1
    EndIf
    EndIf
    Next
    Next
    Next
    _ArraySort($aListe, 0, 0, 0, 0)
    _ArrayDisplay($aListe,0)
    $aListe=""
    EndIf
    EndFunc

    [/autoit]

    Danke für jede Hilfe die Ihr mir leisten könnt...

  • Auswahl einer bestimmten Datei und Ausgabe in ein Textfeld

    • stinger2k
    • 5. April 2010 um 17:11

    so etwa:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>

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

    $Form1 = GUICreate("Form1", 480, 100, -1, -1)
    $Button = GUICtrlCreateButton("Öffnen", 350, 60, 120, 25)
    $Input = GUICtrlCreateInput("",40,60,120,25)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $Button
    $file = FileOpenDialog("ÖFfnen", @ScriptDir & "\", "Alle Dateien (*.*)", 1 + 4 )
    GUICtrlSetData($Input,$file)
    EndSwitch
    WEnd

    [/autoit]
  • Array Werte verbinden "Bitte Helfen..."

    • stinger2k
    • 5. April 2010 um 08:34

    :thumbup:  anno2008 Funktioniert schon sehr gut, aber....
    ...gibt es auch eine Möglichkeit das Array so aufzubauen: :?:
    355 | 3 Stk | 1 Stk | 50 Stanzung
    278 | 1 Stk | 1 Stk | 50 Stanzung
    786 | 2 Stk | 2 Stk | 530 Stanzung
    900 | 1 Stk | 1 Stk | 530 Stanzung

    wenn ich ein "|" darin einbaue und mit

    [autoit]

    _GUICtrlListView_AddArray (GUICtrlGetHandle ($Liste),$aListe2)

    [/autoit]

    die Daten der Liste hinzufüge erkennt er es nicht als DataSeparator... ?(

  • Array Werte verbinden "Bitte Helfen..."

    • stinger2k
    • 4. April 2010 um 22:37

    Es sind immer die letzten beiden Spalten...
    Dieses Format kommt daher das ich für mein Büro eine Maske habe die Berechnungen für Beschlagsteile macht(daher die Daten in T1,T2,T3 usw.) die Stanzung (die letzten beiden Spalten) ergeben sich nur bei bestimmten Längen, daher brauche ich sowas wie eine Stückliste, damit man beim Zuschnitt nicht jedesmal nachschauen muss welche Formel zur Berechnung greift(denn einmal ist es z.B. "T2/2 -531" und einmal "T2 -961", kommt aber auf die Länge an).

    Und wenn über 100 Positionen zusammenkommen ergeben sich vielmals die selben werte, so kann eine stückliste alles auf einen Blick enthalten ohne unübersichtlich zu werden.
    Danke für deine Mühen :thumbup:

  • Array Werte verbinden "Bitte Helfen..."

    • stinger2k
    • 4. April 2010 um 22:22

    Entschuldige,
    Die vorletzte Spalte bezieht sich zu "T2" und die letzte zu "T3" und diese zur jeweiligen zeile in der listview.
    Ich möchte darauf hinaus, das ich zählen kann, wieviel Stück mit den Werten in Spalte 2 sind und eine Stanzung(vorletzte Spalte) von 50 haben.

    Genauso auch bei "T3" und der letzten Spalte...

    Dateien

    SnapShot.jpg 79,7 kB – 0 Downloads
  • Array Werte verbinden "Bitte Helfen..."

    • stinger2k
    • 4. April 2010 um 21:46

    im Array sollte dies so stehen:
    355 1(Stk)
    355 1(Stk) 50(Stanzung)

    etc.

    hier beispielscript

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <ListViewConstants.au3>
    #include <WindowsConstants.au3>
    #include <GuiListView.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 820, 443, -1, -1)
    $Liste = GUICtrlCreateListView("Pos.|T1|T2|T3|T4|T5|||", 20, 133, 780, 300, BitOR($LVS_REPORT, $LVS_EDITLABELS, $WS_EX_DLGMODALFRAME, $WS_EX_CLIENTEDGE))
    GUICtrlSetResizing(-1, $GUI_DOCKALL)
    _GUICtrlListView_SetColumnWidth($Liste, 0, 130)
    _GUICtrlListView_SetColumnWidth($Liste, 1, 80)
    _GUICtrlListView_SetColumnWidth($Liste, 2, 80)
    _GUICtrlListView_SetColumnWidth($Liste, 3, 80)
    _GUICtrlListView_SetColumnWidth($Liste, 4, 80)
    _GUICtrlListView_SetColumnWidth($Liste, 5, 80)
    _GUICtrlListView_SetColumnWidth($Liste, 6, 80)
    _GUICtrlListView_SetColumnWidth($Liste, 7, 80)
    _GUICtrlListView_SetColumnWidth($Liste, 8, 80)
    _GUICtrlListView_SetExtendedListViewStyle($Liste, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT, $LVS_EX_DOUBLEBUFFER))
    GUICtrlCreateListViewItem("A" & "|" & 225 & "|" & 355 & "|" & 400 & "|" & 102 & "|" & 100 & "|" & 50, $Liste)
    GUICtrlCreateListViewItem("B" & "|" & 325 & "|" & 278 & "|" & 400 & "|" & 207 & "|" & 366 & "|" & 50, $Liste)
    GUICtrlCreateListViewItem("C" & "|" & 425 & "|" & 645 & "|" & 500 & "|" & 752 & "|" & 75, $Liste)
    GUICtrlCreateListViewItem("D" & "|" & 225 & "|" & 100 & "|" & 421 & "|" & 400 & "|" & 200, $Liste)
    GUICtrlCreateListViewItem("E" & "|" & 125 & "|" & 355 & "|" & 896 & "|" & 400 & "|" & 316 &"|" & "|" & 530, $Liste)
    GUICtrlCreateListViewItem("F" & "|" & 100 & "|" & 355 & "|" & 785 & "|" & 752 & "|" & 30 &"|" & "|" & 530, $Liste)
    GUICtrlCreateListViewItem("G" & "|" & 355 & "|" & 225 & "|" & 120 & "|" & 400 & "|" & 100, $Liste)
    GUISetState(@SW_SHOW)

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

    $Button=GUICtrlCreateButton ("Stückliste",350,60,120,25)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $Button
    stklisterech()
    EndSwitch
    WEnd

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

    Func stklisterech()
    Global $aListe[1]
    $iColumn = _GUICtrlListView_GetColumnCount(GUICtrlGetHandle ($Liste))
    $iRow = _GUICtrlListView_GetItemCount(GUICtrlGetHandle ($Liste))
    If $iRow > 0 Then

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

    For $i = 0 To $iRow - 1
    For $k = 6 To $iColumn -2
    $sItem = _GUICtrlListView_GetItemText(GUICtrlGetHandle ($Liste), $i, $k)
    $sItem2 = _GUICtrlListView_GetItemText(GUICtrlGetHandle ($Liste), $i, 2)

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

    If $sItem <> "" Then

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

    $iArraySearch = _ArraySearch($aListe, $sItem)

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

    If $iArraySearch = -1 Then
    ReDim $aListe[UBound($aListe) + 1][2]
    $aListe[UBound($aListe) - 1][0] = Int ($sItem2)
    $aListe[UBound($aListe) - 1][1] = ($sItem)
    Else
    $aListe[$iArraySearch][1] += 1
    EndIf
    EndIf
    Next
    Next
    _ArraySort($aListe, 0, 0, 0, 0)
    _ArrayDisplay($aListe,0)
    Exit
    EndIf
    EndFunc

    [/autoit]


    ich bin zwar ein bisschen weitergekommen nur glaube ich, ich bin noch meilenweit vom ziel entfernt...

  • Array Werte verbinden "Bitte Helfen..."

    • stinger2k
    • 4. April 2010 um 20:27

    Das soll auch keine Jobbörse sein, wenn du weiter oben mal nachsiehst ist auch ein scriptbeispiel vorhanden und folgende func hab ich um die listview item-werte zu zählen

    Spoiler anzeigen
    [autoit]

    Global $aListe[1]
    $iColumn = _GUICtrlListView_GetColumnCount(GUICtrlGetHandle ($Liste))-4
    $iRow = _GUICtrlListView_GetItemCount(GUICtrlGetHandle ($Liste))
    If $iRow > 0 Then

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

    For $i = 0 To $iRow - 1
    For $k = 1 To $iColumn - 1
    $sItem = _GUICtrlListView_GetItemText(GUICtrlGetHandle ($Liste), $i, $k)
    If $sItem <> "" Then
    $iArraySearch = _ArraySearch($aListe, $sItem)
    If $iArraySearch = -1 Then
    ReDim $aListe[UBound($aListe) + 1][2]
    $aListe[UBound($aListe) - 1][0] = Int($sItem)
    $aListe[UBound($aListe) - 1][1] = 1
    Else
    $aListe[$iArraySearch][1] += 1
    EndIf
    EndIf
    Next
    Next
    _ArraySort($aListe, 0, 0, 0, 0)
    _ArrayDelete($aListe,0)

    [/autoit]


    Nun möchte ich es so hinkriegen das ich die werte mit kriterien zählen kann z.B. sind 2 Stk mit einer Länge von 692 vorhanden und nur eines davon mit einer stanzung von 50... So wollte ich es in ein array bekommen. Das zählen an sich ist ja kein problem nur weiß ich nicht wie ich das bewerkstellige das ich 2 spalten miteinander verknüpfe um zu diesem ziel zu kommen(über "_ArraySearch").

    Hoffe ich konnte das nun besser erklären :huh:

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™