Vielen Dank Funkey. Hat auf Anhieb funktioniert. Erstaunlich dass HotKeySet nicht mit hexadezimalen Tastaturwerten umgehen kann, eine UDF aus Uhrzeiten kann das.
Danke für die Lösung.
Vielen Dank Funkey. Hat auf Anhieb funktioniert. Erstaunlich dass HotKeySet nicht mit hexadezimalen Tastaturwerten umgehen kann, eine UDF aus Uhrzeiten kann das.
Danke für die Lösung.
Hallo,
ich möchte einen Hotkey setzen:
Numlock aus
Wie lautet der Befehl HotKeySet für die "Taste 5"?
HotKeySet ( "???" , "_num_aus_5_" )
Bei Numlock an geht es so.
HotKeySet ( "{numpad5}" , "_num_5_" )
Danke
Ich verstehe Euch und ehrlich gesagt bin ich froh, dass ich über ISN GUI erzeugen kann. Ich greife das Thema später wieder auf und teste in der Zwischenzeit.
Wenn Dein Fenster nicht allzu viele 'komplizierte' Controls enthält, sollte das selbst für einen GUI-Anfänger nicht zu schwer sein.
Das Fenster enthält "komplizierte" Controls, daher auch die ISN Nutzung, mit der das fehlerfreier geht.
Ich pausiere das Thema, bis ich den Kopf dafür frei habe und bei ISN direkt nachfragen kann. Es gibt einen Knoten, den ich erst entwirren muss.
1) Du bindest deine au3 doch so oder so per include ein, also einfach die Funktion aus deiner au3 aufrufen und beim Funktionsaufruf die Parameter übergeben (Haupt au3 zu deiner inout-au3 funktion) wie bei jeder anderen Funktion auch. Und das Return macht die Datenübergabe (Ergebnis) wieder in die andere Richtung.
Nein.
Ich binde die input.au3 per "ShellExecuteWait" ein, nicht per include - wie in Post 1 in Punkt (2) geschrieben.
Grund = Problem:
Wenn ich die input-au3 mit include einbinde, wird die GUI aufgerufen und der Code in der Haupt-au3 weiter abgearbeitet.
Wie kann ich den Code in der Haupt-au3 so lange pausieren lassen, so lange die input.au3 läuft?
... ich habe bisher im Forum kein Beispiel auf Basis von ISN gefunden.
Und danke für Eure Antworten. Finden wir eine Lösung.
Hallo,
ich nutze das „ISN Autoit Studio“ mit dem GUI Modul.
Ich möchte die AutoIt-Inputbox durch eine eigene GUI (isf-Datei) ersetzen, u.a. wegen der Schriftgröße und mehrerer unterschiedlicher Eingabezeilen und Button.
Ich möchte so viel wie möglich Code in die input.au3 und die input.isf auslagern und in unterschiedlichen Projekten wieder verwenden.
(1) Was wäre aus Eurer Sicht die einfachste Datenübergabe von der input-au3 zu der Haupt-au3? Mir fallen nur die Zwischenablage (störanfällig) und Dateispeicherung (aufwendig) ein.
Wie wäre eine Variablenübergabe von der input-au3 zur Haupt-au3 möglich?
(2) Gibt es einen besseren Weg, als von der Haupt-au3 Datei mit der ShellExecuteWait die input-au3 aufzurufen, um den Input-Dialg der GUI anzuzeigen?
(3) Gibt es im Forum bereits lauffähige Beispiele als Anregung? (konnte keine finden, die auf au3 / isf Dateien basieren ... ISN )
(4) Was wäre Eurer Meinung ein flexibler Weg, um das Grundgerüst mit wenigen Änderungen in vielen Projekten zu verwenden?
Danke für Eure Anregungen und Beispiele.
Edit 30.12.2013
Bugs in _Array2DEmptyDel() und _Array2DDblDel() beseitigt. Aktuelle Version: v 0.4
EDIT 25.07.07
Es ist doch einiges hinzugekommen, bzw. wurden die Funktionen, die bisher nur mit 1D-Arrays arbeiteten (oder Dim 2 begrenzt auf 2) erweitert auf 2D ohne Begrenzung.
Lange ist es her ...
Ich habe die ArrayMore.au3 heute eingebunden (voher neu runtergeladen) und stoße bei der Überprüfung mit ISN auf folgende Fehlermeldung:
Liegt der Fehler in der Prüfroutine oder in der au3?
Magst Du noch mal in den Code schauen?
#Region - TimeStamp
; 2013-12-30 14:43:59 v 0.4
#EndRegion - TimeStamp
AutoIt3 Syntax Checker v3.3.14.5 Copyright (c) 2007-2013 Tylo & AutoIt Team
"d:\ArrayMore.au3"(132,48) : error: missing separator character before keyword.
( $ARRAY[$i][$u-1] = $ARRAY[$i+1][$u-1] )Then
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
"d:\ArrayMore.au3"(534,55) : error: missing separator character before keyword.
ElseIf ($i > $iElement) And ($i < UBound($avArray))Then
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
"d:\ArrayMore.au3"(564,55) : error: missing separator character before keyword.
ElseIf ($i > $iElement) And ($i < UBound($avArray))Then
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
d:\ArrayMore.au3 - 3 error(s), 0 warning(s)
ArrayMore.au3 -> Exit Code: 2 (Laufzeit: 1.46 sec)
Alles anzeigen
Ich benutze den hier: https://sqlitebrowser.org/blog/version-3-12-2-released/
Ausprobiert und Danke , der Browser arbeitet fast so schnell wie der Code von Bugfix
Ich nehme an, du meinst die db-Datei. Hier: https://we.tl/t-eFzg2ifUxQ
Vielen Dank, ja die Datei meinte ich.
Testlauf erfolgreich und schnell
Weißt Du noch, wie / mit welchem Programm Du damals die SQLite Datenbank erzeugt hast?
Was ist ein guter SQLite Datenbank Viewer unter Windows 8 - 10?
Möchte mir die "germandict.db" im Original anschauen.
Vielen Dank, das gibt Stoff fürs Wochenende.
Und besonderen Dank für die Anmerkungen in Regex. Eine Materie, in die es sich lohnt, tiefer einzusteigen.
Reicht das verlinkte Pattern für deinen Zweck?
Ich bin gerade am Testen, die Datei enthält rund 1000 Zeilen. Melde mich heute, ob es funktioniert
Vielen Dank.
Kannst Du das Pattern so umschreiben, dass es unabhängig von einer Topleveldomain ist?
Laut Wiki gibt es ca. 1500 Topleveldomains.
Es sind sehr viele unterschiedliche Topleveldomains.
Lokale IP Adressen habe ich bei meiner Anfrage in Post 1 vergessen.
ublock Beispiel (in Post 1 ergänzt)
192.168.178.100##.col-sm-6.col-xs-12
([[:alnum:]-]+\.(?>de|com|net|org))\b
Wäre folgendes ein Ansatz ohne Topleveldomain, die 2 bis 4 Zeichen enthalten?
zu (1)
\. gefolgt von 2 bis 4 Zeichen, gefolgt von /
zu (2)
\. gefolgt von 2 bis 4 Zeichen, gefolgt von ##
Warum zwei getrennte Abfragen?
Vielen Dank.
2 Abfragen, weil die in unterschiedlichen Scripten verwendet werden sollen.
Hallo,
wer kennt sich von Euch mit Regex aus? Ich suche 2 getrennte Abfragen, um die Domain aus folgenden Zeichenketten zu erhalten.
Quelle ublock
StringRegExp() Abfrage (1) für folgende Zeilen
||p5.focus.de/img/fotos/*/banner*.jpg$image
||apis.google.com/js/plusone.js$script
||mobilbranche.de/wp-content/themes/mobilbranche_2014/lib/img/mobilbranche_bg1.gif$image
||connect.facebook.net^$script
||a.bf-tools.net^$script
Ergebnis
focus.de
google.com
mobilbranche.de
facebook.net
bf-tools.net
StringRegExp() Abfrage (2) für folgende Zeilen
www1.wdr.de##.socialMedia
praxistipps.focus.de##.fb-wrap.fb-direction-row.fb-col-12
192.168.178.100##.col-sm-6.col-xs-12
Ergebnis
wdr.de
focus.de
192.168.178.100
PS: Gibt es eine bessere / leichtere Möglichkeit als StringRegExp()?
(3)
Was ist der beste Ansatz, um die ublock.txt inhaltlich nach der Domain zu sortieren?
Vielen Dank, ich arbeite damit. Eine gelungene Hilfe.
Die Datenverarbeitung ist recht schnell, hatte nach jedem Schritt _ArrayDisplay eingefügt und das war die eigentliche Bremse.
Was Du gemacht hast, kenne ich (allerdings nicht in diesem Ausmaß).
Das bedurfte jahrelanger Pflege und inzwischen hat das Ausmaß ein Volumen erreicht, dass ich die Reißleine und eine Lösung finden muss.
"themenübergreifend" Ein gutes Stichwort – es landet vieles in einer einzigen Datei, es gibt mehr Infos als Zeit zur Verarbeitung.
So wie ich Deinen Aufbau verstanden habe, gibt es, kurz gesagt, also :
-> 1..n Textblöcke unterschiedlicher Länge (innerhalb eines Blockes kommen keine Leerzeilen vor)
-> die einzelnen Textblöcke werden durch 1..n Leerzeilen voneinander getrennt
Ist das soweit richtig ?
Ja, genau so ist
Die von Dir gemachten Vorgaben sind zu 'unscharf' um konkrete Aussagen zu treffen.
Konnte mein Beitrag in Post 10 mehr Klarheit bringen?
Mein Datenmengen-Beispiel in Post 10 zeigt ein gutes Abbild von 4 Datensätzen.
Habe sie mit in meine Datenbank eingefügt.
Fragt bitte konkret, wenn die Beschreibung noch nicht ausreichend ist.
Die Frage ob eine Datenbank wie SQLite hier sinnvoll wäre oder nicht können wir anhand des gezeigten gar nicht beurteilen.
Die Frage ist doch aber gibt es dort irgendeine inhaltliche Struktur?
Gibt es dort eventuell bestimmte Attribute die jeden Datensatz beschreiben?
Ich versuche es zu konkretisieren.
Trennzeichen ist eine oder mehrere Leerzeilen.
Es ist eine immense Textsammlung. Damit vergleichbar, als ob jemand aus dem AutoIt Forum diverse Textpassagen zu unterschiedlichen Themen ohne Leerzeilen in eine Textdatei kopiert hat.
Es sind aus News, Foren, Ideen zusammenkopierte Texte, ohne weitere Struktur. Beispiel unten. Wird Zeit für Ordnung
Immer, wenn neuer Datensatz eingefügt wurde, wurde zuvor eine Leerzeile als Trenner hinzugefügt.
Das ist die echte Datenmenge, die mir hier so vorliegt.
Daher sieht die Struktur der Datenbank wirkich so aus, wie in Post 1 dargestellt. Die Header sind nur zur Verdeutlichung, die gibt es nicht.
Textblock unterschiedlich lang
eine oder mehrere Leerzeilen
Textblock unterschiedlich lang
eine oder mehrere Leerzeilen
...
Da ich keine Möglichkeit kenne, bei einer Suche jeden Absatz als 1 Datensatz zu betrachten, wollte ich das in ein durchsuchbares Datenbankformat umwandeln.
Ich hätte neben AutoIt auch z.B. die Möglichkeit auf Access zuzugreifen, aber keine Erfahrungen. Früher gab es noch Asksam, vielleicht kennt das jemand, eine Freitextdatenbank.
In Schritt 1 möchte ich eine praktikable Möglichkeit, was ich mit der Datenmenge tun kann, um sie absatzweise durchsuchbar zu machen.
Ich suche dabei 1 bis 12 Suchbegriffe, die in jedem Absatz = Datensatz vorkommen müssen.
Diese Absätze sollen ausgegeben und im Original gelöscht werden.
So wird aus dem Chaos eine neue Datenbank, die unter Stichworten verschlagwortet ist.
Würde ich im untenstehenden Beispiel nach
SQLite, Möglichkeit
suchen, würde Datensatz = Absatz (4) zurückgegeben, im Original gelöscht und in eine neue Datenbank eingefügt werden.
Beispiel für die Datenmenge mit 4 Datensätzen - hier exemplarisch durchnummeriert, so sieht das Original mit anderen Textinhalten und ohne Nummeriung aus:
(1) Daher sieht die Struktur der Datenbank wirkich so aus, wie in Post 1 dargestellt.
(2) Die Frage ob eine Datenbank wie SQLite hier sinnvoll wäre oder nicht können wir anhand des gezeigten gar nicht beurteilen.
Für eine Datenbank müssen die Datensätze eine in sich wohnende feste Struktur haben.
Das gezeigte Beispiel ist jedoch mal wieder herrlich unkonkret was komplett verhindert ableiten zu können wie man mit diesen Daten am besten umgeht.
####################
Da stehen nur durchnummerierte Datensatz-Header mit darauf folgenden variablen Anzahl an Textzeilen.
Die Frage ist doch aber gibt es dort irgendeine inhaltliche Struktur? Gibt es dort eventuell bestimmte Attribute die jeden Datensatz beschreiben?
Mit solchen nonsens-Beispielen kann man schlicht nicht adäquat Hinweise geben wie man damit umgeht.
(3) "Wäre es bei dieser Datenmenge nicht ggf. sinnvoll, eine Umsetzung mit SQLite zu überlegen ?"
#### eine Überlegung wert
_______________________________________
(4) Ich vermute, SQLite ist eine Möglichkeit mit AutoIt, die ich nicht kenne?!
Da muss ich mich einlesen.
~ welche Quellen gibt es?
Ich habe auch schon überlegt, ob es ein alternatives Programm gibt.
Die Datenmenge besteht aus vielen Zeilen und einer Leerzeile als Trenner.
Ich kenne keine Programme, die das sinnvoll verarbeiten.
Alles anzeigen
Kannst Du die Datei bitte erneut hochladen?
http://www.filedropper.com/germandict
Vielleicht hat diese auch jemand von Euch zur Hand?
Nachtrag - Frage :
Wäre es bei dieser Datenmenge nicht ggf. sinnvoll, eine Umsetzung mit SQLite zu überlegen ?
Klares Ja
Hast Du ein Beispiel, wie ich obige Datenmenge in eine SQL-Datenbank überführe?
Ich lese mir parallel in SQL ein.
Wenn ich im Forum nach SQLite im Titel suche, sind die letzten Artikel aus 2018 und dann noch 1 - 2 ...
Scheint ein seltenes Thema in aktueller Zeit zu sein.
Das klingt schon mal hoffnungsvoll
Danke Musashi, ich scheitere an folgenden Punkten:
"Wäre es bei dieser Datenmenge nicht ggf. sinnvoll, eine Umsetzung mit SQLite zu überlegen ?"
Ich vermute, SQLite ist eine Möglichkeit mit AutoIt, die ich nicht kenne?!
Da muss ich mich einlesen.
Ich habe auch schon überlegt, ob es ein alternatives Programm gibt.
Die Datenmenge besteht aus vielen Zeilen und einer Leerzeile als Trenner.
Ich kenne keine Programme, die das sinnvoll verarbeiten.
Testdatei 300 MB mit 10116866 Zeilen, wird in Notepad plus in null komma nichts geöffnet.
Habe auch UltraEdit und andere probiert.
In keinem Programm kann ich die Suche auf Absätze eingrenzen. Daher die Idee, etwas mit AutoIt umzusetzen.
Scheinbar klappt auch das Einlesen in ein Array in AutoIt gut.
Das rekursive Löschen von Leerzeilen in einem großen Array dauert ewig mit:
Oder gibt es eine schnelle Möglichkeit, x untereinander stehende Leerzeilen als 1 Leerzeile = 1 Trenner zu nehmen? Siehe Beispiel Post 1, die Anzahl der Leerzeilen ist unterschiedlich.
For $i = UBound ( $aText ) - 1 To 0 Step -1
If $aText[$i] = "" Then
_ArrayDelete ( $aText , $i )
EndIf
Next
Gibt es dafür eine schnellere Variante?
kurze Zwischenmeldung - teste weiter -