Beiträge von TheLuBu

    Leider ist es nicht ganz das, was ich suche :)


    Falls es jemand kennt, ich suche nach einer Möglichkeit ähnlich zu Crystal Reports oder anderen Report-Designern.


    Ich bin allerdings heute Nacht auch auf eine Lösung gekommen.


    Execute() kann leider keine If...ElseIf...Else...EndIf oder Switch Anweisungen ausführen.
    Was man aber tun kann, ist die diese in einer Funktion zu bündeln.


    Diese kann dann auch über Execute ausgeführt werden:




    AutoIt
    Execute("IIf(10 = 11, 20, 30)")


    Ich mache mal weiter und poste das Ergebnis, vielleicht wird auch eine UDF draus ;)


    TheLuBu

    Hallo zusammen,


    Ich arbeite derzeit an einem Problem und die Lösung möchte mir nicht so recht einfallen.


    Ich bin auf einen vielversprechenden Ansatz gestoßen:
    https://www.autoitscript.com/f…/17728-dynamic-functions/
    Leider ist es auf das ausgeben von einzelnen Zeilen beschränkt, IF abfragen oder Schleifen sind nicht möglich (soweit ich es zumindest getestet habe)


    Zur Nutzung:


    Der Nutzer soll über eine GUI ein Exportformat festlegen können ( Tabellarisch).
    Dafür ist ein Grundstock an Funktionen, Feldern und Operatoren vorgegeben, weiterhin ist eine Datenquelle vorhanden, auf die zugegriffen werden kann.


    Jetzt soll der Nutzer jeder Spalte eine Überschrift geben können und den Inhalt der Zeile dann eben über kleine Funktionen, z.B:

    AutoIt
    If $sStatus = 1 THEN Return 5 ELSE Return 10 EndIf

    bestimmen können.



    Die Spalte und den Autoit Code speichere ich in einer Datenbank, um die Daten entsprechend abrufen zu können.


    Das meiste ist schon fertig, allerdings fehlt das Herzstück, das aufrufen dieser UDFs.


    Ich habe mir auch schon diverse Plugin-Systeme angesehen, aber die meisten arbeiten nicht mit uncompiliertem AutoIt Code.


    hat jemand von euch schonmal etwas ähnliches geschrieben oder einen Link zu einem Projekt, in dem soetwas genutzt wird?


    Danke schonmal für die Hilfe
    LuBu

    Hallo liebe Community,


    Ich arbeite derzeit an einem HTML Converter, leider funktionieren ein paar Dinge nicht.
    In dem zu konvertierenden Text sind einige Sonderzeichen enthalten:
    & #8232; und noch einige mehr, aber für den Anfang soll dieses Zeichen reichen.


    Ich möchte dieses Zeichen jetzt durch den HTML Code ersetzen, da das Zeichen durch AutoIt in ein ? umgewandelt wird.
    Allerdings kann ich ja nicht danach suchen, da das Zeichen eben nicht druckbar in AutoIt ist.


    Ich habe das Zeichen in einer Textdatei, diese lese ich ein und wenn ich mir das Zeichen über AscW($zeichen)
    ausgeben lasse, erhalte ich auch die Korrekte Nummer ( 8232 ). Allerdings kann ich nicht danach suchen.
    StringInStr($read, ChrW(8223)) gibt 0 zurück.


    Hat jemand eine Idee, wie man dieses, und andere Symbole mit AscW > 255 suchen und ersetzen kann?

    Nach langer Zeit mal wieder ein Update:


    Die aktualisierte UDF findet ihr im ersten Beitrag


    Es sind 2 neue Funktionen hinzugekommen,
    zum einen _MSSQL_Logging und _MSSQL_Errorhandler


    _MSSQL_Logging ermöglicht es, die generierten Queries auszugeben, um evtl. Fehler in der Syntax zu finden.
    Die Idee und der Code dazu sind von peethebee
    und seiner Logging UDF


    _MSSQL_Errorhandler erstellt einen Handler für evtl. auftretende Objektfehler, damit das Script weiterlaufen kann.


    Das Logging ist derzeit nicht in allen Funktionen eingebaut, wird aber noch nachgereicht

    Hallo liebe Community,
    ich habe ein kleines Problem mit einer GUI, an der ich gerade arbeite.


    Ich habe mehrere Group Controls mit Inhalten, die zur Laufzeit erstellt werden.
    Um das ganze übersichtlich zu halten, sollen die Group Controls samt Inhalt beim Hinzufügen oder entfernen eines neuen Controls verschoben werden.


    Dabei ist mir aufgefallen, das man z.B. einen Button nicht mehr drücken kann, nachdem das Group Control bewegt wurde.
    Anbei mal ein Beispiel, einfach auf OK klicken, um das Group Control zu verschieben.



    Ist das ein Bug oder mache ich etwas falsch, wie könnte man das verhindern?

    aus meiner MSSQL UDF, etwas umgewandelt ;)



    --EDIT--


    Da du ja sowieso meine UDF benutzt, kannst du auch mit _MSSQL_GetRecords arbeiten :


    Da sind die Fehlerabfragen ja bereits vorhanden

    Ich glaube, da wurde meine Fragestellung falsch verstanden,
    bzw. habt ihr den bisherigen Code mal ausgeführt? :)


    Nochmal zur Verdeutlichung (einfach Copy & Paste ;)


    Wie ihr seht erhalte ich nur
    1. Den letzten Wert (in diesem Fall 3)
    2. Die ID des 1 Wertes (0)
    3 Und die Bezeichnung (Wert1)


    Was ich aber weiter benötige sind eben auchnoch die ID´s und Bezeichnungen 1|Wert2, 2|Wert3 ... n|Wert n+1


    --EDIT--
    mit folgendem Pattern erhalte ich alle Werte aus dem String, aber ich benötige nur die Werte, die zu der ersten ID passen.


    --EDIT--
    Ich habe es jetzt geschafft, aber anscheinend kann AutoIt keine wiederholung in einem RegEx anzeigen


    Liefert eigentlich das richtige zurück (Laut anderen RegExprüfern) In Autoit erhalte ich aber trotzdem nicht die Werte, die ich benötige...
    Ich werde es wohl doch in mehreren Schritten machen müssen.

    Da bin ich schon wieder ;)


    Diesmal komme ich bei einem RegEx nicht weiter.


    Ich habe folgenden String:


    Vor und nach diesem String können noch weitere Strings mit einer anderen ID und anderen Werten kommen.
    Die ID ist bekannt
    Ich kriege mit meinem RegEx allerdings immernur den ersten Wert heraus.

    Code
    tn="bf06685d-5219-4040-8f3f-b867f0e24562" tmk="(\d+)"><tis><ti tk="(\d+)" tv="([^"]*)


    Könnte jemand einmal drüber sehen und mir sagen, wie ich eine Wiederholung unbekannter Anzahl(Die Werte können bis N weitergehen)
    In dieses RegEx einbaue?

    Hallo Liebe Community,


    Für mein aktuelles Projekt suche ich eine Möglichkeit, dem Benutzer Bedinungen für spezielle Abfragen und Aufgaben selber erstellen zu lassen.


    Die Idee dahinter ist folgende:


    Ich habe eine Datenbank, an welche eine Abfrage gesendet wird.
    Das Ergebnis der Abfrage liegt dann als Array vor.
    Dieses Array soll nun verarbeitet werden und als eine CSV Datei gespeichert werden.
    Welche Datensätze genau mit welchen Bedingungen und/ oder besonderen Formatierungen soll der Benutzer selbst festlegen können.


    Die Idee, wie es funktionieren könnte, habe ich von einem anderen Programm:
    http://screencast.com/t/okDySkzt0


    Mein Problem ist aber, das ich bis jetzt bei solchen GUI Geschichten meist gescheitert bin :D
    Kennt jemand eine UDF oder ein AutoIt Beispiel, das so ähnlich funktioniert?


    Wenn es die Logik des Groupings und das Erstellen und Hinzufügen der neuen Controls bereits gibt, würde mir das natürlich eine Menge arbeit abnehmen :)


    Vielen Dank schonmal für eure Hilfe :)

    Hallo liebe Community,


    Ich habe mir überlegt, das ich gerne mal ein Puzzle - Spiel basteln würde, allerdings fehlt mir eine Idee,
    wie ich das aneinanderdocken der verschiedenen Teile realisieren kann.


    Hat jemand etwas ähnliches schonmal programmiert oder hätte einen Ansatz für mich?


    Gibt es einen Style o.Ä, den ich übersehen habe?


    Ich würde es gerne ähnlich dem Koda GUI realisieren, also quasi Links eine Leiste mit den ganzen Teilen und rechts ein Feld, auf die man die verschiedenen Teile ziehen kann, und sollte das andere Teil richtig sitzen, die beiden Teile zu einer Einheit verbinden.


    Würde mich über eine Idee freuen :)

    Func test()
    Local $hQuery, $aRow
    _SQLite_Query($hDB, "SELECT Name FROM Einstellungen;", $hQuery)
    _SQLite_FetchData($hQuery, $aRow)
    $blubber = String($hQuery)
    ConsoleWrite($blubber)
    EndFunc ;==>test


    Du fragst nicht die abgefangenen Daten ab sondern das Queryhandle.


    Versuchs mal so:
    Func test()
    Local $hQuery, $aRow
    _SQLite_Query($hDB, "SELECT Name FROM Einstellungen;", $hQuery)
    _SQLite_FetchData($hQuery, $aRow)
    $blubber = String($aRow[0]) ; Die Zahl in der Klammer gibt die Abgefragte Spalte an (also bei 2 Spalten wäre die erste Spalte 0 und die 2te Spale 1 usw...)
    ConsoleWrite($blubber)
    EndFunc ;==>test

    Ich habe mir grade die Funktion für _SQLite_FetchData 
    angesehen und sehe ein gewisses Optimierungspotenzial ;)


    Ich bastel mal ein bisschen ;)


    --EDIT--


    Ich habe mich vertan, ich habe ein ReDim in der Funktion gesehen und dort an eine Optimierung gedacht, aber bei genauerer Betrachtung ist es nur eine Umwandlung der übergebenen Variable und keine große, zeitraubende Veränderung.


    Ich glaube aber auch, das dein Weg


    nicht funktioniert.
    1. Es gibt es keine Stored Funktions / Stored Procedures bei SQlite (http://www.sqlite.org/whentouse.html)
    2. Datenbanken arbeiten Datensatzweise, der Datensatz in der ersten Zeile hat nichts mit dem Datensatz in der 2ten Zeile zu tun, eine Verknüpfung ist also nicht möglich

    Ich glaube du verfehlst denn Sinn eines RDBMS ;)


    Klar, wenn die Daten in Textformat vorliegen sind sie schneller aus einer Textdatei geparst, als aus einer DB.
    Hinter einer Textdatei steht ja auch kein SQL Server, der die Daten auf-, vor- und abarbeitet ;)
    Das pure Speichern von Daten ist ja nicht der Hauptgedanke eines RDBMS.


    Der Geschwindigkeitsvorteil kommt, sobald du Bedingungen hast.
    Willst du immer alle Datensätze aus der Datenbank abrufen? Wohl eher nicht :D


    Eine einzige WHERE Bedingung sollte den Geschwindigkeitsvorteil eigentlich schon deutlich machen.
    Oder auch, sollte sich deine Datenbank weiterentwickeln, mehrere Tabellen (3te. Normalform etc), JOINS,
    VIEWS wie du schon gesagt hast, Hinzufügen, ändern und Löschen von einzelnen Datensätzen oder auch größeren Datenmengen,
    darin liegt der Vorteil eines RDBMS ;)


    P.S:


    Du rufst alle Spaltennamen der Tabelle ab und speicherst sie in einem String.



    Selbes Ergebnis, aber 10mal Schneller ;)


    PRAGMA TABLE INFO: 3.01685434320743
    _SQLite_FetchNames: 0.352390055538509

    Hier mal ein Beispiel zu Tabs:


    Die Reihenfolge, in der du die Controls anlegst, ist bei den Tabs wichtig.

    also zum auslesen kannst du das hier benutzen


    um herauszufinden, wann ein Item im Listview angeklickt wurde, benötigst du WM_NOTIFY