Beiträge von progandy


    Mit ein paar Schriften und dieser UDF klappt das einfach (für Bilder das ganze per GDI+ zeichnen und speichern)
    http://www.autoitscript.com/forum/topic/141103-barcode-udf/


    Edit: Die Schriften kannst du auch ohne installation verwenden: _WinAPI_AddFontResourceEx für GDI und GUI (WinApiEx.au3)
    und für GDIPlus: _GDIPlus_PrivateCollectionAddFontFile, _GDIPlus_PrivateCollectionAddMemoryFont, _GDIPlus_PrivateCollectionCreate, _GDIPlus_PrivateFontCollectionDispose (GDIP.au3)

    Übrigens, wenn du den String dynamisch zusammenbauen willst, dann musst du den String in einer globalen (oder statischen) Variable zwischenspeichern bis AutoIt ihn in seine eigene Variable kopiert hat. Am einfachsten geht das so (String bleibt bis zum nächsten Funktionsaufruf erhalten)

    Anders funktioniert es nicht, höchstens du fängst an, DLLStructs zu verwenden und dort ist der Zugriff so weit ich weiß langsamer als die Konvertierung von Binary nach ASCII.


    Zitat

    Wenn ich das richtig verstehe wird der string von utf8 nach ansi umgewandelt, oder?


    Die Befehlskette macht folgendes.
    - Eingabe ist ein Unicode-String (AutoIt verwendet Unicode strings) --> Schritt kann nicht umgangen werden
    - Unicode wird in UTF-8 bytes gewandelt --> muss gemacht werden
    - Die UTF-8 bytes werden als ASCII interpretiert und in einen Unicode-String kopiert. (z.B. doppelbyte Zeichen in UTF-8 = 2 Zeichen in ASCII)
    - Der DLLCall erwartet einen ASCII-String und wandelt daher Unicode in die ASCII repräsentation. Das geht hier verlustfrei, da nur noch ASCII bytes im String sind.


    Die letzten beiden Schritte könnten durch DLLStructCreate, DLLStructSetData und dem Datentyp struct* statt str ersetzt werden, aber ob das schneller ist weiß ich nicht. Eventuell geht es schneller, wenn man für Schritte 1-3 _WinAPI_WideCharToMultiByte und struct* verwendet.

    Etwa so, aber hab keine Testarchive hier ;)

    Nein, IPv6 habe ich bisher ignoriert, im Wohnheimnetz funktioniert es sowieso nur über nen tunnel daher ist das nicht so interessant.
    Wenn du damit anfängst wäre bei den UDP funktionen eventuell etwas mehr Kontrolle bei ein- und ausgehendenn Ports sinnvoll.

    Und "By Value" ist "Standard", wenn man Funktionen mit Parametern macht?


    Und dann kann man ja, wenn man ein Array "bearbeitet", wie hier beim Filtern, eig. immer besser mit ByRef arbeiten, hmmm :)


    Exakt. Es gibt eine kleine Ausnahme bei DLLStructs, diese kann man sozusagen nur ByRef übergeben. (Nicht wirklich, aber es macht keinen wirklichen Unterschied. Die AutoIt-Variable enthält die Struktur-Definition und einen Pointer auf die Struktur im Speicher. Nun ist es egal, ob diese Infos referenziert oder kopiert werden, der Pointer im Speicher bleibt der gleiche.)

    Hier mal eine Liste mit möglichen Kanälen:
    - TCP (dann kannst du auch einfach mal Server und Client auf getrennte Rechner packen und fernsteuern)
    - geteilter Speicher ("Shared Memory", "Memory Mapping")
    - Pipes (benannt und anonym, dazu gehören auch Console... / Std... Funktionen )
    - Dateien
    - Fensternachrichten, WM_COPYDATA ist dabei am einfachsten
    - Mailslot-Protokoll


    Das genannte "Exchange Variables" setzt glaube ich auf WM_COPYDATA auf, bin mir aber nicht mehr ganz sicher.

    Eventuell musst du eine doppelte Abfrage machen:
    - Zuerst alle Datensätz wählen bei denen zumindest eine Bedingung zutrifft, gruppieren und dabei die gruppierten Objekte zählen.
    - Wenn mehr als 3 gruppiert wurden, dann wieder selektieren

    Hmm.


    Zitat

    Make-Grafik hatte schon recht^^


    Na wenn du meinst... Ich bleibe bei meiner Meinung. Die Jungen zahlen genau 27€ und nicht 28. Sie zahlen 25 fürs Zimmer und dazu 2 an den Boten = 27€. 3€ haben sie wieder bekommen.