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

Beiträge von MadCatz

  • ListView Spalten Füllungsproblem

    • MadCatz
    • 7. Januar 2014 um 08:05

    So ich hab jetzt schonmal herausgefunden, dass das Problem an der Schleife liegt

    [autoit]

    For $a = 0 To Ubound($SectionsCount) -1
    $ArrayA = IniReadSection($Pfad_Start&"\Start.ini", $SectionsCount[$a]) ;$SectionsCount auslesen Array[][] geht nicht
    $Name = $ArrayA[1][1]
    MsgBox(1,"",$Name)
    GUICtrlCreateListViewItem($Name, $Voll_Uebersicht_List)
    _ArrayDisplay($ArrayA)
    Next

    [/autoit]

    Wenn ich dann den Teil des Auslesens unter die Schleife setzte

    [autoit]

    For $a = 0 To Ubound($SectionsCount) -1
    $ArrayA = IniReadSection($Pfad_Start&"\Start.ini", $SectionsCount[$a]) ;$SectionsCount auslesen Array[][] geht nicht
    ;~ $Name = $ArrayA[1][1]
    ;~ MsgBox(1,"",$Name)
    ;~ GUICtrlCreateListViewItem($Name, $Voll_Uebersicht_List)
    _ArrayDisplay($ArrayA)
    Next

    $Name = $ArrayA[1][1]
    MsgBox(1,"",$Name)
    GUICtrlCreateListViewItem($Name, $Voll_Uebersicht_List)

    [/autoit]

    funktioniert es in sofern, dass nur die Letzte Section´eingelesen wird ?(

  • ListView Spalten Füllungsproblem

    • MadCatz
    • 6. Januar 2014 um 14:43

    Danke für deine Idee:)

    Den Plan hatte ich bereits vorher schonmal allerdings erfült es nicht seinen Zweck, da die Namen dann ständig überschrieben wurden.


    Aber ich hab jetzt das eigentliche Problem isoliert aber komm nicht drauf warum das so ist. Das Array wird richtig mit

    [autoit]

    _ArrayDisplay

    [/autoit]

    ausgegben, kann aber nicht in die ListView eingetragen werden.

    z.B muss der Wert

    [autoit]

    $ArrayStart[1][1]

    [/autoit]

    in die Spalte Mitarbeiter. Beim Einlesen in das Array kommt dann der Fehler: Subscript used with non-Array variable, der bringt mich eigentlich zur Verzweiflung, denn so wie ich es vor habe sollte es klappen, dass hat bereits vorher schonmal an einer anderen Stelle funktion, mit anderen Ini Dateien :(

  • ListView Spalten Füllungsproblem

    • MadCatz
    • 6. Januar 2014 um 14:14

    Okey Soory falsch verstanden also

    hier nochmal die Ini Datei:
    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    Das Array wird auch richtig angezeigt, es kann nur nicht in die ListView eingetragen werden.


    So soll es aussehen:


    Code
    Mitarbeiter:       KommBereich:                            Spool:          Start:
    Sebi               Wird aus anderer Datei gespeist         123             Jeweilige Uhrzeit
    Mischa             Wird aus anderer Datei gespeist         123456          Jeweilige Uhrzeit

    Der Rest der Tablle wird durch andere Ini's gefüllt und dann abgeglichen

  • Combobox Werte begrenzen

    • MadCatz
    • 6. Januar 2014 um 14:02

    Hey, danke für deine Hilfe, dass funktioniert leider nicht, dann bleibt die Combobox geöffnet und lässt sich nicht mehr schließen


    Lösung für das Problem:
    Eine Combobox kann man nicht begrenzen, sie begrenzt sich von selbst, sobald das Bildschirmformat gefüllt ist.

  • ListView Spalten Füllungsproblem

    • MadCatz
    • 6. Januar 2014 um 13:40

    Danke für deine Antwort :)

    Hab ich bereits geändert, aber ich hab das Problem, dass das ArrayStart[][] mir als flasch angegeben wird, dass dieses Array kein Array sei.


    Ich versuchs mal weiter

    Fehler: Subscript used with non-Array variable??


    Ich weis aber nicht warum

  • ListView Spalten Füllungsproblem

    • MadCatz
    • 6. Januar 2014 um 12:08

    Hallo BugFix =)

    Du hast das richtig erkannt, genauso wie du mir das geschrieben hast, sollte die ini Datei eingelsen werden

  • Combobox Werte begrenzen

    • MadCatz
    • 6. Januar 2014 um 12:06

    Hallo Leute,

    hab mal wieder eine Frage: Wie kann man eine Combobox begrenzen??

    Heist die Combobox beinhaltet z.B. 100 Werte, davon sollen aber nur 10 Angezeigt werden, in dem Auswahlfenster, dann muss man scrollen und die nächsten 10 Werte werden angezeigt.

    Gibt es dafür irgendwas umsetzbares??

    Das Problem habe nicht ich sondern ein Freund von mir.

  • ListView Spalten Füllungsproblem

    • MadCatz
    • 6. Januar 2014 um 10:11

    Hallo zusammen, ich bin es mal wieder.

    Zuerst einmal wünsche ich euch ein frohes neues Jahr und vielen Dank an euch für die sehr gute Unterstützung bei meinen Autoit Problemen im letzten Jahr.


    So jetzt zu meinem bescheidenen Problem:

    Ich habe eine ListView (Bild: oberes großes weißes leeres Feld)

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

    die soll mit Daten aus verschiedenen Dateien gespeist werden, wichtig ist allerdings erstmal, dass ich verstehe wie ich das mit 2 Dateien anstelle damit ich weis wie es mit allen anderen Dateien dann funktioniert. Es sind alles Ini Dateien!


    Quellcode:

    [autoit]

    Func ListView_Uebersicht_fuellen()

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

    $ArrayWork = IniReadSectionNames($Pfad_Auftragserfassung&"\Aufträge.ini")
    $LastIndex = $ArrayWork[0]
    _ArrayDisplay($ArrayWork)


    For $a = 0 To 1000000000000
    $ArrayStart2 = IniReadSection($Pfad_Start&"\Start.ini", $a)
    _ArrayDisplay($ArrayStart2)
    GUICtrlCreateListViewItem($ArrayStart2[1][1], $Voll_Uebersicht_List)
    Next
    For $i = 0 To $LastIndex
    $ArrayStart = IniReadSectionNames($Pfad_Start&"\Start.ini")
    $LastIndex = $ArrayStart[0]
    _ArrayDisplay($ArrayStart)
    IniReadSection($Pfad_Start&"\Start.ini", $ArrayStart[$i])
    GUICtrlCreateListViewItem($ArrayStart[2], $Voll_Uebersicht_List)
    _GUICtrlListView_AddSubItem($Voll_Uebersicht_List,$i-1,$ArrayStart[$i],2,1)
    Next

    EndFunc

    [/autoit]

    Mein Problem ist jetzt, dass ich vorher eine Ini Datei anlegen lasse, bei der Zahlen mit bis zu 16Stellen eingepflegt werden.

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

    da die Zahlen aber nicht bekannt sind müsste ich diese durch eine Varible deklarieren, allerding tue ich mich da schwer... Dazu soll in der erstespalte der ListView der Name stehen, der bei MItarbeiter steht.

    Hier muss irgendwas falsch sein:

    [autoit]

    For $a = 0 To 1000000000000
    $ArrayStart2 = IniReadSection($Pfad_Start&"\Start.ini", $a)
    _ArrayDisplay($ArrayStart2)
    GUICtrlCreateListViewItem($ArrayStart2[1][1], $Voll_Uebersicht_List)

    Next

    [/autoit]


    Hat einer eine Idee?

    Ich hoffe ich hab dass nicht zu kompliziert verfasst und ihr versteht was ich meine :)

    Dateien

    Bild1.jpg 123,06 kB – 0 Downloads
  • Mehrer Sections auslesen

    • MadCatz
    • 20. Dezember 2013 um 15:17

    Verdammt!!!

    Entschuldige ich habe bei deinem ".Post IniReadSectionNames, das Names überlesen :(

    Da hast du mir bereits geholfen!

    Danke =)

    Dann kann ich jetzt die Keys = Values mit

    [autoit]

    Ini Read

    [/autoit]

    auslesen?

  • Skalieren von Bildern ohne Verzerrung

    • MadCatz
    • 20. Dezember 2013 um 15:15

    Hey Skalierung von 32x32 Pixeln???

    Selbst wenn du das mit einem Programm wie Adobe Photoshop skalierst und neu berechnest, wird das Bild unscharf sein, ich glaube nicht dass dir dass etwas bringen wird, wenn du so kleine Bilder neu und größer SSkalieren willst ?(

  • Mehrer Sections auslesen

    • MadCatz
    • 20. Dezember 2013 um 15:00

    Geht klar:

    Also ich will eine Ini Datei auslesen, die durch ein anderes bereits fertig gestelltes Tool, mit Daten gespeist wird, dabei wird immer eine Nummer eingegeben z.b 1234 oder 123456. Diese Nummer dient als Section. Alle Sections werden in dieser Datei gespeichert.


    Ich will nun diese Ini Datei einträge in eine ListView einbinden, wie das geht weis ich schon ;), ich weis halt nur nicht wie verschiedene Sectionsnamen auslesen kann, ohne vorher zuwissen, wie der Sectionsname ist, da der für das Auslesetool für die ListView zuspeißen "Random" ist.

    Verstehst du was ich meine? Oder brauchst du doch Code einblicke?

  • Mehrer Sections auslesen

    • MadCatz
    • 20. Dezember 2013 um 14:50

    Hey, das Problem an der ganzen Sache ist allerdings, dass ich nicht weiß, wie die Sectionen heissen werden, da es sich hierbei im Endeffekt um willkührliche Zahlenfolgen handeln wird, die fast zufällig angelegt werden ?(

  • Mehrer Sections auslesen

    • MadCatz
    • 20. Dezember 2013 um 14:27

    Hey ich bins nochmal, mit einem neuen Problem, was wahrscheinlich eine total einfache Lösung hat, aber auf die ich nicht komme =)
    (Brett vorm Kopf)

    Also: ich habe eine Ini-Datei aus der ich mehrere Sectionen auslesen möchte.
    Bisher hatte ich immer nur eine EINZIGE Section in einer Ini-Datei weswegen ich bisher immer

    [autoit]

    IniReadSection

    [/autoit]

    verwendet habe.

    Die INI-Datei sieht z.B. So aus:

    [1234]
    1=abc
    2=def
    3= ghi
    [123456]
    1=abc
    2=def
    3= ghijk
    [1234231]
    1=abc
    2=dghu
    3= ghi

    Da die Sectionsnamen varrieren weis ich nicht wie ich das machen soll ?(?(


    Der Quellcode sollte hierfür eigentlich ziemlich unwichtig sein =)

  • Nur Buchstaben zulassen?

    • MadCatz
    • 20. Dezember 2013 um 11:58

    Vielen Dank euch allen =)


    James Lösung war das, was ich brauchen kann :)

    Danke :D

  • Nur Buchstaben zulassen?

    • MadCatz
    • 20. Dezember 2013 um 11:07

    Hey,

    Danke für deine schnelle Antwort =)

    Du hast recht es gibt nur die Möglichkeit mit

    [autoit]

    StringRegExp

    [/autoit]

    .
    Allerdings kann man damit wenn man meine Zeile

    [autoit]

    StringRegExp($Mitarbeiter, "[a-zA-Z]")

    [/autoit]


    so verbessert

    [autoit]

    StringRegExp($Mitarbeiter, "[a-zA-Z]",1)

    [/autoit]

    dann wird direkt überprüft, ob alles ganz genau stimmt. Der Standardwert 0 prüft zwar auch, aber lediglich nur darauf, ob eine Buchstabe da ist, dann ist der Rest egal.


    Naja jetzt wissen wir beide etwas mehr ^^, schade das es nicht sowas wie

    [autoit]

    $ES_NUMBER

    [/autoit]

    gibt, dann würde immerhin direkt ein Fehlerinfofenster angezeigt werden, dass man nicht selbst basteln muss.

  • Nur Buchstaben zulassen?

    • MadCatz
    • 20. Dezember 2013 um 10:45

    Hallo Leute

    Ich habe eine interessensbasierte Frage:

    Gibt es eine Möglichkeit in einer CreateInput nur Buchstaben zu zulassen, heißt, dass direkt bei der Eingabe überprüft wird, ob etwas anderes eingegeben wird und das direkt geblockt wird (Zahlen und Sonderzeichen).

    Für Zahlen gibt es ja in der GUI den

    [autoit]

    $ES_Number

    [/autoit]

    Befehl, der direkt überprüft ob etwas anderes als Zahlen eingegeben wird.

    Für Buchstaben verwende ich momentan

    [autoit]

    StringRegExp($abc, "[a-zA-z]")

    [/autoit]

    Da das aber nicht so schön ist, weil z.B. auch Abcdef4 zugelassen wird erfüllt es ja nicht ganz den Anspruch.

  • Doppelten Datensatz aus Ini-Datei löschen

    • MadCatz
    • 20. Dezember 2013 um 08:28

    Hey, Danke für deine schnelle Antwort :)

    Dein Tipp mit IniDelete hat mir sehr geholfen =)
    Musste zwar noch ein bisschen ausprobieren bis ich es hinbekommen hab, dass alles so ist wie es sein soll, aber jetzt hab ichs ^^


    Vielen Dank =)

  • Doppelten Datensatz aus Ini-Datei löschen

    • MadCatz
    • 18. Dezember 2013 um 14:59

    Hallo Leute,
    Ich habe ein kleines Problem.

    Ich lese eine Ini-Datei in ein 2D Array ein und dieses Array wird dann in eine ListView eingetragen. Drückt man nun den entfernen Button unter der ListView, so wird der Eintrag aus dem Array, aus der ListView und der Ini- Datei überschreiben, und anschließend aus den drei Besagten auch gelöscht. (Ja ich weis das kann man auch einfacher machen werde ich auch, wenn ich kurz vor dem final bin =) )

    Mein Problem besteht jetzt darin das jetzt das hier passiert:

    Ini-Datei vor EntfernenButton:

    1=a
    2=b
    3=c
    4=d
    5=e


    Ini-Datei nach dem EntfernenButton (z.B Eintrag 2 entfernen):

    1=a
    2=c
    3=d
    4=e
    5=e


    So die Funktion von unten schiebt alle Einträge um ein nach oben, allerdings hab ich jetzt einen doppelten Eintrag, und zwar ist das immer der Letzte!
    Das Problem besteht nur in der Ini Datei, nicht im Array und auch nicht in der ListView, da wird alles richtig angezeigt.


    Quellcode:

    [autoit]

    Func ListBox_Mitarbeiter_fuellen()

    $Array2 = IniReadSection($Pfad_Mitarbeiter&"\Mitarbeiter.ini", "Mitarbeiter")
    $LastIndex = $Array2[0][0]


    For $i = 0 to $LastIndex Step 1


    If $Array2[$i][1] <> "leer" And $Array2[$i][1] <> "" Then

    GUICtrlCreateListViewItem($Array2[$i][0]&"|"&$Array2[$i][1], $Mitarbeiter_List)
    _ArrayDisplay($Array2, "Mitarbeiter")

    Endif

    Next

    MsgBox(0,"","ListView angelegt")

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

    $Array2 = IniReadSection($Pfad_Mitarbeiter&"\Mitarbeiter.ini", "Mitarbeiter")
    MsgBox(0,"","ReadSection")

    For $a = UBound($Array2)-1 To 0 Step -1

    If $Array2[$a][1] = "leer" Then

    _Array2DDelete($Array2, $a)
    _ArrayDisplay($Array2, "Mitarbeiter")
    _GUICtrlListView_DeleteAllItems($Mitarbeiter_List)

    EndIf

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

    Next

    MsgBox(0,"","Array gespeichert ohne 'leer' Einträge")


    $Index = 1

    For $s = 1 To Ubound($Array2)-1 Step 1

    IniWrite($Pfad_Mitarbeiter&"\Mitarbeiter.ini", "Mitarbeiter", $Index-1, $Array2[$s][1])
    $Index = $Index +1

    Next

    $Index = $LastIndex-1

    MsgBox(0,"","Datei gespeichert ohne 'leer' Einträge")


    For $t = 1 To Ubound($Array2)-1 Step 1
    For $v = $t+1 To UBound($array2)-1

    If $Array2[$t][1] = $Array2[$v][1] Then

    MsgBox(0,"", "Array Eintrag: "&$t&" | "&$v&" sind gleich")
    _ArrayDelete($Array2,$v)
    _ArrayDisplay($Array2)

    EndIf

    Next
    Next

    MsgBox(0, "", "Array gespeichert ohne Doppelte Einträge")

    _GUICtrlListView_DeleteAllItems($Mitarbeiter_List)


    For $w = 0 to Ubound($Array2)-1 Step 1

    If $Array2[$w][1] <> "leer" And $Array2[$w][1] <> "" Then

    GUICtrlCreateListViewItem($Array2[$w][0]&"|"&$Array2[$w][1], $Mitarbeiter_List)
    _ArrayDisplay($Array2, "Mitarbeiter")

    Endif

    Next

    MsgBox(0,"","ListView ohne Dopplete Einträge gespeichert")

    $IndexNew = 1

    For $NewInt = 1 To Ubound($Array2)-1 Step 1

    IniWrite($Pfad_Mitarbeiter&"\Mitarbeiter.ini", "Mitarbeiter", $IndexNew-1, $Array2[$NewInt][1])
    $IndexNew = $IndexNew +1

    Next

    $IndexNew = $LastIndex-1

    MsgBox(0,"","Datei gespeichert ohne 'leer' Einträge")


    Return $LastIndex

    EndFunc

    [/autoit]


    Die ganzen MsgBox'n sind nur zum Testen ob das Programm lauft. Da mir kein Fehler angezeigt wird und ich selbst nicht den Fehler finden kann, der das Problem verursacht würde ich mich echt freunen, wenn mir hier einer bei helfen könnte :)


    Bisher sind es viele Zwischenschritte in der Funktion, aber ich brauche wirklich nur Hilfe bei den Doppelten Eintrags Problem, der Rest ist erstmal unwichtig =)


    Freue mich über jede Hilfreiche Antwort =)

  • 2 Diminsonale Array Einträge verschieben

    • MadCatz
    • 16. Dezember 2013 um 14:40

    So Leute, ihr hab die ersten Fehler schonmal ausgemerzt und werde mal eure beiden Vorschläge versuchen :)

    Edit:

    Herzlichsten Dank Leute =) Der Tipp mit Ubound($Array2)-1 to 0 Step-1 war genau das was ich brauchte und ich noch nicht kannte :)


    Jetzt kann ich endlich weiter machen.

    Vielen vielen Dank =)

  • 2 Diminsonale Array Einträge verschieben

    • MadCatz
    • 16. Dezember 2013 um 13:38

    Das habe ich natürlich als erstes gemacht, es funktioniert aber nicht.

    Die Bedingung:

    [autoit]

    If $Array2[$i][1] = "leer" then _Array2DDelete($Array2, $i)

    [/autoit]

    wird einfach ignoriert

    Quellcode:

    [autoit]

    Func ListBox_Mitarbeiter_fuellen()

    $Array2 = IniReadSection($Pfad_Mitarbeiter&"\Mitarbeiter.ini", "Mitarbeiter")
    $LastIndex = $Array2[0][0]

    For $i = 1 To $LastIndex Step 1
    ;~ $Row = 12
    ;~ $Casesens=0
    ;~ $CASESENS=0

    If $Array2[$i][1] <> "leer" Then

    GUICtrlCreateListViewItem($Array2[$i][1], $Mitarbeiter_List)
    _ArrayDisplay($Array2, "Mitarbeiter")


    ;~ IniWrite($Pfad_Mitarbeiter&"\Mitarbeiter1.ini", "Mitarbeiter1", $i, $Array2[$i][1])
    ;~ GUICtrlCreateListViewItem($Array2[$i][0] & "|" & $Array2[$i][1], $Mitarbeiter_List)
    ;~ _Array2DDblDel($Array2)
    ;~ _Array2DDblDel($Array2, $Casesens)

    If $Array2[$i][1] = "leer" then _Array2DDelete($Array2, $i)


    ;~ _Array2DDelete($Array2,$i)
    ;~ _Array2DDblDel($Array2)
    ;~ _Array2DDblDel(ByRef $ARRAY [, $CASESENS=0])
    ;~ _Array2DDelete($Array2,$Row)
    ;~ _Array2DDelete(ByRef $ARRAY, $iDEL)
    ;~ $ArrayA = IniReadSection($Pfad_Mitarbeiter&"\Mitarbeiter1.ini", "Mitarbeiter1")
    ;~ GUICtrlCreateListViewItem($ArrayA[$i][1], $Mitarbeiter_List)

    EndIf

    Next
    Return $LastIndex
    EndFunc

    [/autoit]


    Wenn ich es mit eine ElseIf versuche bekomme ich die Fehlermeldung, die im Anhang zusehen ist angezeigt, die für mich keinen Sinn macht, aber da ich noch ziemlich Nobby im Thema Autoit bin...

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

    Wenn ich die erste If-Bedingung weglasse:

    [autoit]

    If $Array2[$i][1] <> "leer" Then

    GUICtrlCreateListViewItem($Array2[$i][1], $Mitarbeiter_List)
    _ArrayDisplay($Array2, "Mitarbeiter")

    [/autoit]

    und nur

    [autoit]

    If $Array2[$i][1] = "leer" then _Array2DDelete($Array2, $i)

    [/autoit]

    dann klappt es insofern, dass die Einträge "leer" aus dem Array entfernt werden, allerding gibt es dann wieder eine Fehlermeldung. Der Error ist genau der Selbe, wie im Screenshot bei dem anderen Fehler.

    Ich finde das Problem aber nicht ?(?(

    Dateien

    Fehler1.jpg 36,95 kB – 0 Downloads

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™