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

Beiträge von BugFix

  • Problem bei einer Variablendeklarierung

    • BugFix
    • 4. August 2011 um 23:39

    Du weist der Variable $11 Daten zu bevor du diese erstellt hast. Deklariere diese einfach am Beginn mit: Local $11, dann sollte dein Problem behoben sein.
    Aber mit Einzelvariablen wirst du bald die Übersicht verlieren - nimm Arrays.

  • Dateien vergleichen

    • BugFix
    • 4. August 2011 um 23:20
    Zitat von Rey96

    wie war der befehl um den inhalt zu vergleichen?


    Mach ein Kommandofenster auf und verwende "compare". Geht schnell und zuverlässig.

  • Fernseher an die Wand oder nicht ?!

    • BugFix
    • 4. August 2011 um 21:57
    Zitat von Dietmar

    ,will ich von verschiedenen Perpektiven (wie z.B. Gun-Food) TV schauen können.
    Dann gibts Drehteller

    Nun, den Drehteller braucht man da nicht wirklich. Bei meinem Samsung kann ich de facto aus fast 180° Winkel von der Seite schauen, ohne deutlich spürbare Minderung der Bildqualität.

  • Fernseher an die Wand oder nicht ?!

    • BugFix
    • 4. August 2011 um 19:29

    Also 46" bei 3,5m Abstand geht.
    Aber machs lieber 'ne Nummer kleiner und dann hochwertiger in der Ausstattung. Ich hab den hier (UE 40 D 7090 LSXZG) Samsung-Link, als Multimedia-Zentrale ideal (WLAN, TV-Aufzeichnung auf USB-HD - auch bei TV aus, etc.)

    Wenn du die Möglichkeit hast - häng ihn auf.

  • EditBox erkennt keine CR (Wagenrücklaufzeichen)

    • BugFix
    • 4. August 2011 um 09:56
    Zitat von DerSchatten

    Falls ja, wie kann ich das so drehen das die CR als Zeilensprung interpretiert werden?


    Ganz einfach:

    [autoit]

    $GesamterText = StringReplace($GesamterText, @CR, @CRLF)

    [/autoit]
  • autoit.de goes professional

    • BugFix
    • 2. August 2011 um 22:13

    Klingt nicht übel.
    Zumindest kann man dann mal einer interessierten Gruppe aus dem Arbeitsleben aufzeigen, was alles mit AutoIt im administrativen und produktiven Bereich geht.
    Meine Automatisierungen betreffen vorrangig DB-Auswertungen, Fehlersuche/-korrektur in Abrechnungsdaten, etc. Halt alles so kleine Tools, die einem Zeit sparen und langweilige Arbeit abnehmen. ;)

  • Doppelklick verhindern?

    • BugFix
    • 31. Juli 2011 um 17:00
    Zitat von Lottich

    Nachtrag:
    Hat funktioniert, kann geclosed werden :D


    Nicht closen - setze du bitte im ersten Beitrag das Präfix auf "gelöst".

  • Doppelklick verhindern?

    • BugFix
    • 31. Juli 2011 um 16:23

    Einfachster Weg: Deaktiviere den Button wenn er geklickt wurde und starte dann die Anwendung. Ist die Anwendung beendet aktivierst du ihn wieder.

  • Leerfelder aus Array herausfinden und ausgaben ?

    • BugFix
    • 29. Juli 2011 um 18:18
    Zitat von sbsebbo

    wenn eine Information fehlt soll die aber nicht Leer bleiben!


    Du kannst ja alternativ die leeren Felder durch Pseudoeinträge ersetzen, z.B. numerischer Wert mit "9999999" (Länge nach Standardeintragslänge bestimmen) und Zeichenfolge mit "ZZZZZZ".
    Einfach das Array durchlaufen und die Leerfelder ersetzen (Abhängigkeit SpaltenIndex - zugeordneter Feldtyp).

  • Leerfelder aus Array herausfinden und ausgaben ?

    • BugFix
    • 29. Juli 2011 um 09:02

    Leg dir ein 2D-Array an. Die Anzahl der Elemente in der 2.ten Dimension legst du fest anhand der maximalen Feldinformationen. Dazu definierst du aber einen eindeutigen Index für diese Info.
    Bsp.:

    Code
    IDK+102514072+99+AOK Bramsche'
    VDT+19970403'
    FKT+04'
    VKG+01+102114819+5++++++00'
    NAM+01+AOK Die Gesundheitskasse+für Niedersachsen'
    ANS+1+49565+Bramsche+Marktstrasse 5'
    ANS+2+49551+Bramsche+1151'
    UNT+000009+00005'
    UNH+00006+KOTR:01:001:KV'


    Nun sind automatisch die Arrayfelder, für die im Datensatz keine Werte waren, leer.
    Angenommen dieser Datensatz enthält alle überhaupt möglichen Informationen, dann legst du im Vorfeld dein Array fest:
    [ZeilenIndex][0] = IDK
    [ZeilenIndex][1] = VDT
    [ZeilenIndex][2] = FKT
    [ZeilenIndex][3] = VKG
    [ZeilenIndex][4] = NAM
    [ZeilenIndex][5] = ANS+1
    [ZeilenIndex][6] = ANS+2
    [ZeilenIndex][7] = UNT
    [ZeilenIndex][8] = UNH
    Du definierst demnach erstmalig dein Array:

    [autoit]

    Global $arrayOut[1][9]

    [/autoit]


    Das Feld "IDK" scheint hier der Identifier für einen neuen Datensatz zu sein. Du kannst jetzt einfach Zeile für Zeile der Datei lesen (_FileReadToArray nutzen) und dann in einem Select-Case bearbeiten.
    In etwa so:

    [autoit]

    For $i = 1 To $FileArray[0]
    Select
    Case StringLeft($FileArray[$i], 3) == 'IDK'
    If $arrayOut[Ubound($arrayOut)-1][0] <> '' Then ReDim $arrayOut[Ubound($arrayOut)+1][9] ; neue Zeile im Array erstellen
    $arrayOut[Ubound($arrayOut)-1][0] = ; das was du aus der Zeile verwenden möchtest
    Case StringLeft($FileArray[$i], 3) == 'VDT'
    $arrayOut[Ubound($arrayOut)-1][1] = ; das was du aus der Zeile verwenden möchtest
    Case StringLeft($FileArray[$i], 3) == 'FKT'
    $arrayOut[Ubound($arrayOut)-1][2] = ; das was du aus der Zeile verwenden möchtest
    Case StringLeft($FileArray[$i], 3) == 'VKG'
    $arrayOut[Ubound($arrayOut)-1][3] = ; das was du aus der Zeile verwenden möchtest
    Case StringLeft($FileArray[$i], 3) == 'NAM'
    $arrayOut[Ubound($arrayOut)-1][4] = ; das was du aus der Zeile verwenden möchtest
    Case StringLeft($FileArray[$i], 5) == 'ANS+1'
    $arrayOut[Ubound($arrayOut)-1][5] = ; das was du aus der Zeile verwenden möchtest
    Case StringLeft($FileArray[$i], 5) == 'ANS+2'
    $arrayOut[Ubound($arrayOut)-1][6] = ; das was du aus der Zeile verwenden möchtest
    Case StringLeft($FileArray[$i], 3) == 'UNT'
    $arrayOut[Ubound($arrayOut)-1][7] = ; das was du aus der Zeile verwenden möchtest
    Case StringLeft($FileArray[$i], 3) == 'UNH'
    $arrayOut[Ubound($arrayOut)-1][8] = ; das was du aus der Zeile verwenden möchtest
    EndSelect
    Next

    [/autoit]


    Nun sind automatisch die Arrayspalten, für die in der Datei keine Werte standen, leer.

  • Regex Fragen an Experten

    • BugFix
    • 28. Juli 2011 um 16:54

    Vorab: Hast du hier ein Bsp. wild erfunden, mit dem du üben willst oder ist das etwas Reales? Sollte es real sein, wäre es nicht sehr sinnvoll aufgebaut.
    Du hast hier Datensätze der Form "Vorname, Name, Strasse". Nur warum sind sie nicht zusammengehörig? Wenn schon keine Datenbank verwendet wird (was sich eigentlich bei solchen Daten anbietet), sollten Daten immer logisch zusammengehörig gespeichert werden.
    Also in Textdateien jede Zeile ein Datensatz mit z.B. per Semikolon oder Komma getrennten Einträgen. Kannst du dann auch super in Arrays einlesen und durchforsten.
    Das betrifft jetzt zwar nicht deine Regex-Frage - aber wenn dein Problem keine Übung ist, solltest du eine andere Herangehensweise bevorzugen.

  • Bug? Benötige Workaround

    • BugFix
    • 28. Juli 2011 um 13:23

    Hättest du das mal von Anfang an gesagt. :D
    - Kombination von Ctrl-ID und Event $EN_CHANGE abfragen
    - mit RegEx den Inhalt des Ctrl prüfen
    - wenn Übereinstimmung mit Muster (2 Nachkommastellen ? ) - erst dann senden

  • Bug? Benötige Workaround

    • BugFix
    • 28. Juli 2011 um 12:57

    Nach wie vor: Ich weiß nicht, WAS genau du haben willst. Schreib doch mal Step-by-Step als Pseudocode, was passieren soll.

  • Bug? Benötige Workaround

    • BugFix
    • 28. Juli 2011 um 10:29
    Zitat von funkey

    Ich möchte aber Adlibregister eigentlich nicht deaktivieren.


    Wenn mit den Funktionen kontinuierlich Einträge gemacht werden sollen, kannst du ja diese Werte auch puffern, während du händische Eingaben machst. Habs grad nicht getestet - aber ich vermute du würdest den Fokus verlieren, wenn während deiner Eingabe per Adlibfunktion ein Eintrag automatisch erfolgt.

  • Bug? Benötige Workaround

    • BugFix
    • 28. Juli 2011 um 10:08

    Ich bin mir nicht ganz sicher, was du vorhast. Aber du solltest WM_COMMAND auswerten. Wenn ein Ctrl den Fokus bekommt wird $EN_SETFOCUS ausgelöst. Ist es das Ctrl, das du per Hand bearbeiten möchtest, solltest du für die Dauer der Bearbeitung AdlibRegister deaktivieren und nach $EN_KILLFOCUS für dieses Ctrl wieder aktivieren.

  • IRC Chat (Schlüsselwörter) auslesen

    • BugFix
    • 26. Juli 2011 um 08:45
    Zitat von PuhDerBär

    Ausserdem hab ich in dem Clienten nicht gefunden wo er und wie er die sachen ausliest


    Das wundert mich sehr. Denn exakt deine Frage wurde in Post 2 dieses Threads auch gestellt und mit dem entsprechenden Code-Bsp. von mir in Post 3 beantwortet.

  • ListView - SubItem einzeln färben/formatieren, Finale Version! (v1.3)

    • BugFix
    • 25. Juli 2011 um 20:37
    Zitat von chip

    Mh ok dann muss ich schauen ob ich da selbst reinbauen kann, weil die Spalzenanzahl zumindestens bei mir nicht fest ist :).


    In der Funktion _GUICtrlListView_Formatting_Startup wird die Größe von $aIParam unter anderem anhand der größten verwendeten Spaltenzahl (bei mehreren Listview) definiert.

    [autoit]

    Global $aIParam[1][$maxColumn+1][5] ; [n][0][0]=ItemStruct, [n][1..Count][0..4]=SubItemValue

    [/autoit]

    Hier kannst du aber durchaus auch vorab z.B. das mögliche Maximum festlegen (also z.B. 32 ). Dann sollte dein Problem gelöst sein. Aber beachten: Immer 1 größer als die max. Anzahl an Spalten!

  • ListView - SubItem einzeln färben/formatieren, Finale Version! (v1.3)

    • BugFix
    • 24. Juli 2011 um 17:52
    Zitat von chip

    Jetzt habe ich doch noch ein Problem. Wenn ich ein Subitem, welches mit _GUICtrlListView_AddSubItem hinzugefügt wurde, umfärben will kommt immer der Fehler:


    Das ist auch völlig korrekt. Beim StartUp ( _GUICtrlListView_Formatting_Startup($hGUI, $hListView) ) wird die Spaltenzahl des/der verwendeten Listview ausgelesen und anhand dieser Werte das Array $aIParam erstellt. Wenn du später eine Spalte hinzufügst, ist dafür im Array kein Platz reserviert und der Fehler tritt auf.
    Ich möchte auch ungern diesen Schritt variabel gestalten, da eine ständige zusätzliche Überprüfung auf neue Spalten in allen betroffenen Funktionen auch einen erheblichen (zeitlichen) Mehraufwand im Programmablauf darstellt.
    Ich denke mal, es ist auch keine allzu große Hürde beim Programmieren, die Spaltenzahl zuerst festzulegen. ;)

  • Veränderte Registry Aktuallisieren!

    • BugFix
    • 24. Juli 2011 um 11:51

    Bei Registryeinträgen ist Windows nunmal zickig. :D Aber wenn du in den Schlüssel "HKEY_CURRENT_USER" schreibst, brauchst du nicht kpl. neustarten. Hier reicht Abmelden/Anmelden zum Aktivieren der Änderungen. Geht etwas schneller als Neustart.
    Eventuell reicht es ja auch die explorer.exe neu zu starten - schon probiert?

  • Virtuelles (partielles) Laufwerk Erstellen/Löschen

    • BugFix
    • 23. Juli 2011 um 23:33
    Zitat von owi dowi spinn

    Liegt es an XP?

    Nun dadran nicht. Vermutlich hast du das erforderliche NET Framework nicht installiert. Bin mir nicht ganz sicher - sollte im 2.0 enthalten sein. Aber es ist generell sinnvoll, alle Versionen zu installieren, da immer mehr Software das voraussetzt.

    Mit folgendem Skript kannst du prüfen ob das Objekt vorhanden ist.

    [autoit]

    $oArrayList = ObjCreate("System.Collections.ArrayList")
    If Not IsObj($oArrayList) Then ConsoleWrite( 'Das Objekt "System.Collections.ArrayList" ist auf dem PC nicht enthalten' & @CRLF )

    [/autoit]

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™