www.ClickEXE.de Click.EXE - In 5 Minuten zum eigenen Programm!
Start Einloggen Einloggen Die Mitglieder Das Foren-Team Suchfunktion
30656 Posts & 5455 Themen in 33 Foren
Benutzername/Passwort:
  Login speichern
Forenübersicht » Andere Versionen und Sprachen » DLLs für den Einsatz mit der Pro-Lizenz » cx_Search2List.dll

vorheriges Thema   nächstes Thema
4 Posts in diesem Thema (offen)
Seiten (1): (1)
Autor
Beitrag
Findus ist offline Findus  
cx_Search2List.dll
130 Beiträge - Profi-Clicker
Hallo Cxler,

ich habe mich in der letzten Zeit ein wenig mit DLLs und deren Einbindung in ClickExe beschäftigt. Mir geht es im Moment um die Bearbeitungsdauer bei großen Datenmengen in Cx, angeregt durch durch das Problem, welches AudiA4 hier beschrieben hatte und wir versucht haben, mit Cx-Bordmitteln zu lösen. Es geht um die Suchabfrage in einer Datei nach einem Text, der NICHT in einer Zeile vorkommt. Das Ergebnis war für mich nicht zufrieden stellend.
Da Cx die Einbindung von DLLs bereitstellt, sehe ich hier eine Möglichkeit, die Laufzeit unserer Programme zu verbessern. Nur sind passende DLLs nur sehr schwer oder gar nicht zu finden. Ich jedenfalls habe mir schon die Finger wund gegoogelt. Es hilft wohl alles nichts, Selbermachen ist angesagt.
Ich habe mich also mit der Programmierung von DLLs beschäftigt und eine DLL-Struktur gefunden, mit der große Datenmengen an Cx übergeben werden können.
Bevor ich jetzt rangehe und zig Funktionen schreibe, würde ich gerne meine erste DLL von euch testen lassen. Vielleicht liege ich ja mit meiner Struktur daneben oder die DLL läuft nicht auf allen Systemen oder oder oder....... Ich bin ja auch nur Hobbyclicker.

Vieleicht können wir Cx für uns noch konfortabler gestalten und besser ausreizen. Ich hoffe auf ein reges Feedback von euch.

Die DLL behandelt das oben beschriebene Problem von AudiA8. Hier die DLL, mein Testprogramm und eine Testdatei.

Die DLL steht euch frei zur Verfügung, einzige Außnahme ist die Benutzung für kostenpflichtige Clickexe-Erweiterungen (kostenpflichtige Plugins, cXtensionen etc.)

Gruß

Findus


cX2Web-Code: (einfach anklicken, kopieren und in ... einfügen)
Erstellt mit cX2Web - cX3 (12 Skriptzeilen, cX Pro 3.0.41.0)


Ach, ich habe ganz vergessen, die Funktion der DLL zu beschreiben:
Die DLL sucht in der vorgegebenen Datei nach zwei Suchbegriffen pro Zeile und speichert für jeden Suchbegriff entweder eine 1 (für gefunden) oder eine 0 (für nicht gefunden). Wenn der interne Speicher eine die Größe von 32k erreicht hat, gibt sie diesen Speicher an Cx zurück. Wurde die Datei nicht bis zum Ende abgearbeitet, steht im Ergebnis die Zeilennummer der nächsten zu bearbeitenden Zeile. Dieses Ergebnis wird dann in Cx in einer Schleife in die Startzeile-Variable eingegeben. Die DLL arbeitet dann ab dieser Zeilennummer weiter und gibt die nächsten 32k aus. Wurde das Ende der Datei erreicht, wird im Ergebnis eine 0 eingetragen. Bei Dateifehlern wird eine Minuszahl ausgegeben.
Durch Verketten der ausgegebenen Variablenpuffer in Cx entsteht ein String aus 1en und 0en, für jede Zeile abgeschlossen mit einem Zeilenumbruch. Nun braucht man nur noch die Kombination, die man sucht, in den Bearbeite-Befehl einzugeben, und schon erhält man das erwünschte Ergebnis.

Parameter1: Dateiname als String
Parameter2: Variablenpuffer 32767 (max Puffer, den Cx zur Verfügung stellt)
Parameter3 und 4: Suchbegriffe als String
Parameter5: Startzeile als Long


Der Post wurde 1 mal editiert, zuletzt von Findus am 11.04.2009 - 00:18.
Beitrag vom 10.04.2009 - 17:19
Diesen Beitrag melden   nach weiteren Posts von Findus suchen Findus`s Profil ansehen Findus eine E-Mail senden Findus eine Kurznachricht senden Findus zu deinen Freunden hinzufügen zum Anfang der Seite
Findus ist offline Findus  
cx_Search2List.dll noch schneller
130 Beiträge - Profi-Clicker
Hallo,

ich hab die DLL noch einmal überarbeitet und sie ist noch wesentlich schneller geworden.
Ich habe in der DLL Ausgabe das Trennzeichen von CRLF in Komma geändert, da mir pro Schleife nur 32K an Speicher für die Ausgabe zur Verfügung steht. Dadurch spare ich mir ein Zeichen pro Zeile in der Ausgabe ein, d.h. es werden auf der cx-Seite weniger Schleifendurchläufe benötigt.
Außerdem ließt die DLL die Datei nicht mehr zeilenweise ein, sondern direkt in eine Variable. Dadurch habe ich die Bearbeitungszeit bei einer Testdatei mit ca. 150000 Zeilen auf unter 7 sec. runtergekriegt. Vorher 30 sec.
Der letzte Parameter ist nicht mehr die Startzeile, sondern das Startzeichen.

Als weitere Zugabe habe ich die Funktion Search1List in die DLL eingebaut. Wenn man also in der Datei nur einen Suchtext pro Zeile untersuchen will, kann diese Funktion eingesetzt werden. Die schafft die 150000 Zeilen in 5,5 sec.
Die Ausgabe wird hierbei ohne Trennzeichen ausgegeben

Parameter für die Funktion Search1List:
Parameter1: Dateiname als String
Parameter2: Variablenpuffer 32767$ (max Puffer, den Cx zur Verfügung stellt)
Parameter3: Suchbegriff als String
Parameter4: Startzeichen als Long

Frohe Ostern aus China

Findus


cX2Web-Code: (einfach anklicken, kopieren und in ... einfügen)
Erstellt mit cX2Web - cX3 (12 Skriptzeilen, cX Pro 3.0.41.0)



Der Post wurde 3 mal editiert, zuletzt von Findus am 12.04.2009 - 18:27.
Beitrag vom 12.04.2009 - 17:58
Diesen Beitrag melden   nach weiteren Posts von Findus suchen Findus`s Profil ansehen Findus eine E-Mail senden Findus eine Kurznachricht senden Findus zu deinen Freunden hinzufügen zum Anfang der Seite
Pascal1975 ist offline Pascal1975  
Themenicon    Danke für die Mühe!!!
191 Beiträge - click.EXE Süchtiger
Hallo Findus !

Vielen Dank für die Mühen, die Du Dir gemacht hast!

Ich habe zwar noch nie in so großen Dateien durchsuchen müßen, aber sollte es mal der Fall sein: Gut zu wissen...

Grüße Pascal
Beitrag vom 22.04.2009 - 05:00
Diesen Beitrag melden   nach weiteren Posts von Pascal1975 suchen Pascal1975`s Profil ansehen Pascal1975 eine E-Mail senden Pascal1975 eine Kurznachricht senden Pascal1975 zu deinen Freunden hinzufügen zum Anfang der Seite
Adonis ist offline Adonis  
727 Beiträge - click.EXE - Meister
Adonis`s alternatives Ego
Big Thx von meiner seite auchzwinkern
Beitrag vom 04.05.2009 - 16:34
Diesen Beitrag melden   nach weiteren Posts von Adonis suchen Adonis`s Profil ansehen Adonis eine Kurznachricht senden Adonis zu deinen Freunden hinzufügen zum Anfang der Seite
Baumstruktur - Signaturen anzeigen
Seiten (1): (1)
vorheriges Thema   nächstes Thema

Gehe zu:  
Es ist / sind gerade keine registrierte(r) Benutzer und 137 Gäste online. Neuester Benutzer: MiB
aktive Themen der letzten 48 Stunden - Top-User
0
0

www.ClickEXE.de © 2019
Seite in 0.51797 sec generiert