Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

  • Probiere ich alles mal am Montag Abend aus. Da kann ich auch mal einen Test laufen lassen um zu ermitteln wie groß die Maps nach meiner Methode sein müssen. Mit Message und dann punktgenau allokieren ist natürlich viel eleganter.

    XProfan-Semiprofi (XProfan X4a+XPIA+LemonEd)
    Ryzen 5800X/Gigabyte B550m DS3H/32GB RAM@3600MHz/Radeon HD7770 OC/Asus Xonar SE/108TB HDD+512GB Samsung 980 Pro+2TB Crucial SSD/28" Samsung 4k
    TerraMaster F4-421 mit 28TB
    XBox Classic/360S/Series X/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84)
    OnePlus 6 8GB/256GB
    jacdelad.bplaced.net

  • Geiler Scheiß. Nur leider lässt sich das nur sehr schwer eine allgemeine Funktion basteln:

    XProfan-Semiprofi (XProfan X4a+XPIA+LemonEd)
    Ryzen 5800X/Gigabyte B550m DS3H/32GB RAM@3600MHz/Radeon HD7770 OC/Asus Xonar SE/108TB HDD+512GB Samsung 980 Pro+2TB Crucial SSD/28" Samsung 4k
    TerraMaster F4-421 mit 28TB
    XBox Classic/360S/Series X/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84)
    OnePlus 6 8GB/256GB
    jacdelad.bplaced.net

    2 Mal editiert, zuletzt von Jac de Lad ()

  • Dein Code muß ich mir mal anschauen.
    Auf den ersten Blick :


    Code
    sendmessage(Val(SubStr$(GetString$(liste2&,0),2,"|")),$1001,0,0)


    SendMessage ist dazu gedacht, Messages an ein Fenster oder bestimmtes Control
    (Buttons, Editboxen, Listboxen usw.) zu senden. Controls sind in Windows auch
    Fenster.
    Und NICHT an eine Zeile, bzw. Teil eines Strings, die/der mit GetString$ ermittelt wurde.
    Erwartet also unbedingt ein HANDLE. Da kommt natürlich auch kein Fehler. Der Aufruf
    verhallt in den Weiten des Computerspeichers, weil Windows kein Handle findet.


    Also, nochmals Code durchsehen.


    Wie man jetzt einem Prozess eine Message schicken kann, weiß ich nicht.
    Das Fenster, das du im Prozess verwendest, ist ja dem Hauptprogramm
    nicht bekannt (ungefähr das gleiche, wie eine lokale Variable in einer PROC).


    Ich kenne es jetzt nur anders rum. Der Prozess sendet dem Fenster, dessen Handle
    man per pExec mitgibt, eine Message.
    Mal schauen, ob es da eine Möglichkeit, außer Map, gibt.


    Mit Map + FindWindow hätte ich da was :
    Die Übergabe geht natürlich auch mit einem Editfeld. Das könnte man ja
    bei Bedarf auch mit ShowWindow ausblenden.


    Vielleicht kannst du ja daraus was machen, indem du dir den Namen der Filemap per Editfeld holst.

  • Heinz, jetzt bin ich sauer. Hast du den Code mal ausprobiert? Natürlich mit angepassten Suchpfaden?


    Message $1000 sendet das Zielfenster und die benötigte Größe. Die werden in der Liste gespeichert, weil die nächste Message auch eine $1000 sein kann und die nicht verloren gehen kann. Dann wird die Liste nacheinander abgearbeitet. Message $1001 geht zurück an den Client, deshalb das Handle wieder mit GetString auslesen. Kein Murks und keine Zauberei. Message $1002 vom Clienten zeigt den Host, dass er den String übertragen hat.


    Message an Prozess funktioniert nicht, das habe ich probiert. Bei mir funktioniert mein Programm einwandfrei, egal wie viele Suchvorgänge ich simultan starte.

    XProfan-Semiprofi (XProfan X4a+XPIA+LemonEd)
    Ryzen 5800X/Gigabyte B550m DS3H/32GB RAM@3600MHz/Radeon HD7770 OC/Asus Xonar SE/108TB HDD+512GB Samsung 980 Pro+2TB Crucial SSD/28" Samsung 4k
    TerraMaster F4-421 mit 28TB
    XBox Classic/360S/Series X/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84)
    OnePlus 6 8GB/256GB
    jacdelad.bplaced.net

  • Bin immer noch wütend! :-D

    XProfan-Semiprofi (XProfan X4a+XPIA+LemonEd)
    Ryzen 5800X/Gigabyte B550m DS3H/32GB RAM@3600MHz/Radeon HD7770 OC/Asus Xonar SE/108TB HDD+512GB Samsung 980 Pro+2TB Crucial SSD/28" Samsung 4k
    TerraMaster F4-421 mit 28TB
    XBox Classic/360S/Series X/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84)
    OnePlus 6 8GB/256GB
    jacdelad.bplaced.net

  • Brauchst nicht gleich sauer zu sein.
    Das habe ich tatsächlich übersehen, sorry.
    Wenn ich so empfindlich wäre, da wäre ich schon seit Jahren
    nicht mehr hier anwesend.

    Bei mir funktioniert mein Programm einwandfrei, egal wie viele Suchvorgänge ich simultan starte.

    Dann ist ja alles gut und für mich das Thema abgeschlossen.

  • Ich hab mich mehr geärgert, dass du den Code kritisierst ohne ihn probiert zu haben. Aber das Thema ist durch, auf zum nächsten.


    Neue Proc "AddFilesASync". Sie funktioniert wie "AddFiles" inklusive Modus. Mehrere Aufrufe werden mit dem Listentrennzeichen getrennt. Die Proc achtet auch darauf, dass eventuell schon vergebene UserMessages wiederhergestellt werden. Das Programm hält nicht an während die Suchvorgänge durchgeführt werden, aber die Proc selbst übernimmt die Kontrolle bis alle Vorgänge beendet sind. Eine wirklich asynchrone Funktion muss man dann selbst anpassen und tief ins Programm einbinden. Für Verbesserungsvorschläge bin ich natürlich offen.

    XProfan-Semiprofi (XProfan X4a+XPIA+LemonEd)
    Ryzen 5800X/Gigabyte B550m DS3H/32GB RAM@3600MHz/Radeon HD7770 OC/Asus Xonar SE/108TB HDD+512GB Samsung 980 Pro+2TB Crucial SSD/28" Samsung 4k
    TerraMaster F4-421 mit 28TB
    XBox Classic/360S/Series X/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84)
    OnePlus 6 8GB/256GB
    jacdelad.bplaced.net

    Einmal editiert, zuletzt von Jac de Lad ()

  • Mir ist gerade noch ein Fehler aufgefallen, die Zeilen

    Code
    sendmessage(liste&,$B,0,0)

    und

    Code
    sendmessage(liste&,$B,1,0)

    müssen raus bzw. vor/nach


    Code
    Move("ListToHandle",Liste&)

    rein. Vielleicht kann das ein Moderator ändern.


    Ein weiterer Schwachpunkt ist, dass die Anzahl der Ergebnisse nicht über 252144 liegen darf. Gegebenfalls muss man den Code weiter anpassen.


    Anmerkung: Ich habe den Code gerade etwas modifiziert und auf Arbeit ausprobiert. Ich habe an 7 Orten im Netzwerk insgsamt 603423 Dateien finden lassen. Der Originalcode mit aufeinanderfolgenden Suchen braucht etwa 57 Sekunden. Mit parallelen Suchen waren es nur noch etwa 21 Sekunden. Natürliche ist Reihenfolge der gefundenen Dateien dann anders. Da ist jeder selbst dafür verantwortlich den Code anzupassen. Ich stelle morgen eine finale Version mit optionalem dritten Parameter hier rein, der ein Grid oder eine GridBox sein kann, damit der Überlauf bei Element 252145 nicht stattfinden kann.

    XProfan-Semiprofi (XProfan X4a+XPIA+LemonEd)
    Ryzen 5800X/Gigabyte B550m DS3H/32GB RAM@3600MHz/Radeon HD7770 OC/Asus Xonar SE/108TB HDD+512GB Samsung 980 Pro+2TB Crucial SSD/28" Samsung 4k
    TerraMaster F4-421 mit 28TB
    XBox Classic/360S/Series X/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84)
    OnePlus 6 8GB/256GB
    jacdelad.bplaced.net

    2 Mal editiert, zuletzt von Jac de Lad ()

  • Aufruf:
    AddFilesASync S,N1[,N2[,N3]]


    Entweder mit 2 Parametern wie bei AddFiles, oder mit einem dritten Parameter als Handle einer Gridbox/ListBox etc., die die Ergebnisse aufnimmt. Es ist auch ein dritter Parameter möglich (0=kein Einfluss, 1=Neuzeichnen des Handles von N2 nicht verändern, 2=Rückgabe der Ergebnisse als String (dann wird N2 ignoriert)).

    XProfan-Semiprofi (XProfan X4a+XPIA+LemonEd)
    Ryzen 5800X/Gigabyte B550m DS3H/32GB RAM@3600MHz/Radeon HD7770 OC/Asus Xonar SE/108TB HDD+512GB Samsung 980 Pro+2TB Crucial SSD/28" Samsung 4k
    TerraMaster F4-421 mit 28TB
    XBox Classic/360S/Series X/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84)
    OnePlus 6 8GB/256GB
    jacdelad.bplaced.net

  • Soweit ich weiß nein und nein.

    XProfan-Semiprofi (XProfan X4a+XPIA+LemonEd)
    Ryzen 5800X/Gigabyte B550m DS3H/32GB RAM@3600MHz/Radeon HD7770 OC/Asus Xonar SE/108TB HDD+512GB Samsung 980 Pro+2TB Crucial SSD/28" Samsung 4k
    TerraMaster F4-421 mit 28TB
    XBox Classic/360S/Series X/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84)
    OnePlus 6 8GB/256GB
    jacdelad.bplaced.net

  • Hier habe ich gesehen das es ein Xprofan x64 gibt. Könnte man davon eine aktuelle Fassung haben?

    Eine Version, die den Funktionsumfang (mit ein paar Ausnahmen) von X3 hat, bekommst du hier :


    https://xprofan.net/intl/de/xprofan/freeprofan/


    War wohl die letzte Version. Eine 64-Bit Version mit Delphi geschrieben, wird es auch nicht geben.
    Dazu ist die 64Bit Version von Delphi schweineteuer, somit fällt das auch flach.


    An eine Version 5 glaube ich eigentlich nicht mehr. Dafür nutzen es momentan nur wenige, sodaß sich
    der Aufwand nicht lohnt. Es ist auch abhängig, ob Roland genügend Freizeit daür hat. Schließlich gehen
    Arbeit und Familie vor.


    Was ich mir noch wünschen würde, wäre noch eine weitere Subscription.
    Da wären ja noch einige Baustellen, die bereits schon in den anderen 2 Foren angesprochen wurden,
    fertig zu stellen. Etwa Drag & Drop, mit dem auch Anfänger zurecht kommen, mehr Netzwerkfunktionalität
    und das eine oder andere noch. Da käme bestimmt noch eine gut bestückte Liste mit kleinen Wünschen,
    für die es sich lohnen würde. Lohnen würde sich das nicht geldlich sondern rein arbeitstechnisch und um
    XProfan noch etwas am Leben zu halten.


    Ich hatte ja gehofft, daß in der CORONA - Zeit, ein paar mehr neue Leute, die zuhause bleiben müssen,
    Interesse daran hätten.