1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Moombas

Beiträge von Moombas

  • Text Konvertierung

    • Moombas
    • 6. Januar 2023 um 12:40

    Ich nutze ja aktuell die Lösung mit dem BinarytoString etc. und die funktioniert auch.

    Wenn es jedoch auch eine Lösung gibt, die das Problem "an der Wurzel" packt, würde ich diese halt bevorzugen aber ja, generell tut sie's.

  • Text Konvertierung

    • Moombas
    • 6. Januar 2023 um 12:02

    Ich nutze diese Funktion für GET, PUT und POST requests, daher muss ich dabei bleiben, wenn auch in diesem Fall es wirklich nur ein Get request ist..

    Ich habe deinen Vorschlag mit dem Charset getestet aber das Ergebnis ändert sich (leider) nicht.

  • Text Konvertierung

    • Moombas
    • 6. Januar 2023 um 08:01

    Hi, bitte nicht streiten ;)

    Die Daten kommen wie gesagt aus einer API Schnittstelle, die ich über AutoIt per winhttp request anspreche.

    AutoIt
    Func SendRequest2($Target, $RequestType, $Request, $OptionalData = $WINHTTP_NO_REQUEST_DATA)
    Local $Data, $Url, $oHTTP, $Response, $Return, $Final, $aArray, $LastResponse
    Local Const $HTTPREQUEST_PROXYSETTING_DEFAULT   = 0
    Local Const $HTTPREQUEST_PROXYSETTING_PRECONFIG = 0
    Local Const $HTTPREQUEST_PROXYSETTING_DIRECT    = 1
    Local Const $HTTPREQUEST_PROXYSETTING_PROXY     = 2
    
        $Url = "https://" & $Target & $Request
    
        $oHTTP = ObjCreate("winhttp.winhttprequest.5.1")
    
        $oHTTP.Open($RequestType, $Url, False)
        $oHTTP.Option(4) = 13056        ;Ignores any SSL Errors
    
        $oHTTP.SetRequestHeader('accept', 'application/json')
        $oHTTP.SetRequestHeader('Authorization', 'Basic ' & base64($Logindata, True, True))
        $oHTTP.SetRequestHeader('Content-Type', 'application/json')
    
        $oHTTP.Send($OptionalData)
        $LastResponse = $oHTTP.GetAllResponseHeaders()
        $Response = $oHTTP.Status
    
        $Data = $oHTTP.ResponseText
        $aArray = StringRegExp($Data,'"([^"]*)":"([^"]*)"', 3)
        if IsArray($aArray) then
            $Final = _Array_Resize($aArray, 2)
        Else
            $Final = $Data
        EndIf
    
        $Return = Response($Response)
        If not IsString($Return) Then
            Return $Final
        Else
            _FileWriteFromArray(@ScriptDir & '/lastError.txt', $LastResponse)
            _FileWriteFromArray(@ScriptDir & '/lastData.txt' , $Final)
            Return $Return
        EndIf
    EndFunc
    Alles anzeigen

    Leider ist in der Doku zur API nicht hinterlegt welche Codierung zurück kommt aber ich vemrute das hier 2 Probleme aufeinander treffen:

    1. Die Text-Codierung (ich vermute UTF-8, da die CSV die ich dort einlesen kann nur UTF-8 akzeptieren)

    2. HTML-Probleme mit Sonderzeichen

    Das ist aber nur eine Vermutung. Im Original bekomme ich z.B. das hier: Hammersbacher StraÃe, wenn ich die Daten per FileWriteFromArray speicher, das ja als UTF 8 speichert.

    Grundsätzlich würde es halt mit dem oben genannten "workaround" gehen, wobei ich immer natürlich die 100% Lösung bevorzugen würde.

  • Text Konvertierung

    • Moombas
    • 5. Januar 2023 um 15:00

    Also danke schon vielmals, ich versuche mal das stepbystep zu beantworten:

    #2: Die Daten Stammen aus einem Cloud Verwaltungstool, dort ist leider nicht angegeben in welcher Codierung die Daten zurück kommen. Ich arbeite bei mir in Autoit immer mit einer anderen Codierung, da ich das für ein weiterführendes Tool brauche (99% meiner Scripte versorgen dieses, daher per Standard auf anderer Codierung eingestellt).

    Mit StringtoBinary habe ich auch shcon gespielt, da ich aber die Codierung nicht wusste habe ich es verworfen. Danke dafür!

    #3: Ich benutze das direkt aus der Variable aber speichere mir das Originale immer nebenbei weg, damit ich, falls Fehler auftreten etwas direkt zum Vergleichen habe. In Notepad++ habe ich die Codierung auf ANSI geändert und das Problem blieb bestehen (nur die falschen Zeichen haben sich geändert).

    Da es sich hierbei um Firmeninterne Daten handelt kann ich diese leider nicht zur Verfügung stellen.

    #7: Jepp, habe es mit der "gedrehten" Variante getestet und bis auf das 'ß' (das ich nun noch gesondert per Stringreplace ersetze) funktioniert es einwandfrei.

    AutoIt
    Func CorrectName($Name)
    Local $Return = StringToBinary($Name, 1)
        $Return = BinaryToString($Return, 4)
        $Return = StringReplace($Return, '�?', 'ß')
        Return $Return
    EndFunc
  • Text Konvertierung

    • Moombas
    • 5. Januar 2023 um 13:44

    Hi,

    ich hoffe ihr könnt mir weiter helfen, eventuell übersehe ich die Lösung auch.

    Ich bekomme Text aus einer API Abfrage, leider sind dort die entsprechenden Sonderzeichen falsch dargestellt. Also vermutlich ein Codierungsproblem.

    Nun finde ich aktuell keinen Weg diese richtig darzustellen.

    Beispiel (oben IST | unten SOLL):

    é,ü,ö,Ã,ä,è

    é,ü,ö,ß,ä,è

    Jemand eine Idee welche Konvertirung das wäre und wie ich das korrigiert bekomme?

    Ein einfaches Stringreplace funktioniert leider nicht :(

    Nachdem ich die Codierung in Autoit auf UTF8 geändert habe, würde das Stringreplace funktionieren, jedoch sehe ich das aktuell nicht als Lösung an, da zu viele Sonderzeichen existieren wenn man international arbeitet.

  • GuiCtrlInfo.au3 UDF aus dem Forum <-> Objekt erstellen und ansteuern lassen

    • Moombas
    • 3. Januar 2023 um 13:20

    np, immer wieder gerne.

  • GuiCtrlInfo.au3 UDF aus dem Forum <-> Objekt erstellen und ansteuern lassen

    • Moombas
    • 3. Januar 2023 um 12:44

    Also bei mir funktioniert es so:

    AutoIt
    Opt('MustDeclareVars', 1)
    ;testbug.au3
    #include <IE.au3>
    #include <GUIConstantsEx.au3>
    #include <MsgBoxConstants.au3>
    #include <WindowsConstants.au3>
    #include <GuiButton.au3>
    #include <EditConstants.au3>
    #include <ComboConstants.au3>
    #include <StaticConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <MsgBoxConstants.au3>
    #include <GUIConstants.au3>
    #include <GuiCtrlInfo.au3>
    #include <Array.au3>
    Global $oIE, $nMsg
    
    Start_h1()
    _IENavigate($oIE,  'https://www.google.de')
    ;Consolewrite(@error & @CRLF)
    _IEAction($oIE, "stop")
    ;Consolewrite(@error & @CRLF)
    
    
    While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case -3
                Exit
    
        EndSwitch
    WEnd
    
    Func Start_h1()
    Local $beginn, $end, $aId[0], $ID, $main, $bearbeiten, $datenbank, $extras, $inextra, $btn, $t
    
        $oIE = _IECreateEmbedded()
        $main = GUICreate("Hauptfentser", 1860, 849, -1, -1, -1, -1)
        $beginn = GUICtrlCreateMenu("Start")
        ;test
        GUICtrlCreateObj($oIE, 0, 60, 1459, 767)
        ;test
        GUICtrlCreateMenuItem("Entcryptool", $beginn, -1, 0)
        GUICtrlCreateMenuItem("Beenden", $beginn, -1, 0)
        $bearbeiten = GUICtrlCreateMenu("Bearbeiten")
        GUICtrlCreateMenuItem("Profile", $bearbeiten, -1, 0)
        $datenbank = GUICtrlCreateMenu("Datenbank")
        GUICtrlCreateMenuItem("MySQL Datenbank", $datenbank, -1, 0)
        GUICtrlCreateMenuItem("Daten (Format-XML) anzeigen", $datenbank, -1, 0)
        $extras = GUICtrlCreateMenu("Extras")
        GUICtrlCreateMenuItem("Time sperren/entsperren", $extras, -1, -1)
        $inextra = GUICtrlCreateMenu("Verlaufsordner", $extras)
        GUICtrlCreateMenuItem("PDF", $inextra, -1, 0)
        GUICtrlCreateMenuItem("txt", $inextra, -1, 0)
        GUICtrlCreateMenuItem("test", $beginn, -1, 0)
        GUICtrlCreateCombo("", 80, 9, 150, 21, -1, -1)
        GUICtrlSetData(-1, "")
        GUICtrlCreateInput("", 80, 40, 150, 20, $ES_PASSWORD, $WS_EX_CLIENTEDGE)
        $btn = GUICtrlCreateButton("Login", 242, 40, 70, 20, -1, -1)
        GUICtrlSetBkColor($btn, "-2")
        GUICtrlCreateButton("Profil laden", 900, 0, 193, 60, $BS_COMMANDLINK, -1)
        GUICtrlCreateButton("Datenbank erstellen ...", 600, 0, 193, 60, $BS_COMMANDLINK, -1)
        GUICtrlCreateEdit("", 1459, 170, 398, 657, BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL)) ;, -1, -1)
        GUICtrlCreateLabel("Benutzer", 13, 15, 50, 15, -1, -1)
        GUICtrlSetBkColor(-1, "-2")
        GUICtrlCreateLabel("Passwort", 13, 40, 50, 15, -1, -1)
        GUICtrlSetBkColor(-1, "-2")
        GUICtrlCreateProgress(1537, 154, 252, 10, -1, -1)
        GUICtrlCreateButton("menue", 1609, 0, 200, 60, $BS_COMMANDLINK, -1)
        GUICtrlCreateLabel("von", 373, 20, 21, 15, -1, -1)
        GUICtrlSetBkColor(-1, "-2")
        GUICtrlCreateLabel("bis", 373, 40, 21, 15, -1, -1)
        GUICtrlSetBkColor(-1, "-2")
        GUICtrlCreateInput(@MDAY & '.' & @MON & '.' & @YEAR, 399, 20, 63, 15, $ES_CENTER, $WS_EX_CLIENTEDGE)
        GUICtrlSetState(-1, $GUI_DISABLE)
        GUICtrlSetBkColor(-1, "-2")
        GUICtrlCreateInput(@MDAY & '.' & @MON & '.' & @YEAR, 399, 40, 63, 15, $ES_CENTER, $WS_EX_CLIENTEDGE)
        GUICtrlSetState(-1, $GUI_DISABLE)
        GUICtrlSetBkColor(-1, "-2")
        $end = GUICtrlCreateInput("23:00:00", 466, 40, 51, 15, $ES_CENTER, $WS_EX_CLIENTEDGE)
        GUICtrlSetState(-1, $GUI_DISABLE)
        GUICtrlSetBkColor(-1, "-2")
        GUISetBkColor(0xFFFFFF)
        GUISetState(@SW_SHOW, $main)
        For $i = $beginn to $end
            $t = _GuiCtrlGetInfo($i)
                If $t.ID <> $ID Then
                $ID = $t.ID
                _ArrayAdd($aId, $ID)
            EndIf
        Next
        Return $aId
    EndFunc
    Alles anzeigen
  • GuiCtrlInfo.au3 UDF aus dem Forum <-> Objekt erstellen und ansteuern lassen

    • Moombas
    • 3. Januar 2023 um 12:37

    Dann füge der URL mal http:// bzw. https:// hinzu

    Und die 3 von Consolewrite sagt ja aus: 3 ($_IEStatus_InvalidDataType) - Invalid Data Type

  • GuiCtrlInfo.au3 UDF aus dem Forum <-> Objekt erstellen und ansteuern lassen

    • Moombas
    • 3. Januar 2023 um 10:45

    Deine Objekt zuweisung ist falsch:

    Zeile 32 ändern in: $oIE = _IECreateEmbedded()

    Zeile 37 ändern in: GUICtrlCreateObj($oIE, 0, 60, 1459, 767)

    Probier es dann nochmal.

    Edit: Füge in Zeile 19 ggf. noch ein: Consolewrite(@error & @CRLF) (nur zum debugging) und danach: _IEAction($oIE, "stop") (ist in der Hilfe nach allen Navigate Befehlen.

  • Deutsche Hilfe auf 3.3.16.1 updaten - mitmachen

    • Moombas
    • 2. Januar 2023 um 14:59

    Ich denke, das dies aus 2 Gründen ggf. mehr ein "nice to have" ist:

    1. Wer programmiert sollte/muss sich eigentlich mit Englisch beschäftigen (nur Vokabeln! nicht mal die Zeiten)

    2. Es heutzutage gute (Online-) Übersetzungstools gibt (keine perfekten!) mit deren Hilfe sich auch sowas übersetzen lässt.

    Bestes Beispiel: Google interner Übersetzer, sprich: Englische Hilfe öffnen und dann von Google die Webseite übersetzen lassen. Das sollte für das Verständnis vollkommen ausreichen.

    Bin ich da nun so verkehrt mit meiner Meinung?

  • Netzlaufwerk einbinden Win10

    • Moombas
    • 2. Januar 2023 um 12:01

    Das wollt ich auch grade mal vorschlagen, alternativ auch mal etwas ohne Umlaute testen.

  • Netzlaufwerk einbinden Win10

    • Moombas
    • 2. Januar 2023 um 08:49

    Versuch mal bei _RunDOS("net use H: \\192.168.150.34\Bücher Cloud /persistent:yes") auch beim Pfad " zu nutzen, also so:

    _RunDOS("net use H: '\\192.168.150.34\Bücher Cloud' /persistent:yes")

  • Code Kata - Christmas Tree

    • Moombas
    • 22. Dezember 2022 um 09:06

    2022_12_22_08_55_40_Hi_Assistant_Greeting.jpg

    AspirinJunkie :rofl: Und es hätte noch eine Zeile sparen können, indem das Global in der 2. Teile steht

    ChatGPT hat auf Nachfrage dann einen dynamischen Code erstellt, der das ganz mit 177 Zeichen macht. Daraufhin habe ich ihm deinen Code geschickt und bekam folgende Antwort:

    Zitat

    Du hast Recht, dass der von dir vorgeschlagene Code tatsächlich kürzer ist als das von mir vorgestellte Beispiel. Der Code verwendet eine Schleife, um den Baumstring Schritt für Schritt aufzubauen, indem er jedes Mal eine zusätzliche Zeile hinzufügt, die aus Sternen besteht. Diese Sternzeichen werden mithilfe der StringFormat-Funktion generiert und dann dem Baumstring hinzugefügt.

    Es gibt jedoch einige mögliche Nachteile an diesem Ansatz. Zum einen ist der Code etwas schwieriger zu verstehen, da er eine Reihe von Funktionen verwendet, die für sich genommen vielleicht nicht offensichtlich sind. Zum anderen ist der Code nicht sehr flexibel und kann nur Baumhöhen generieren, die eine gerade Anzahl von Zeilen haben. Wenn du beispielsweise versuchen würdest, einen Baum mit einer Höhe von 7 Zeilen zu erstellen, würde der Code fehlschlagen.

    Letztendlich hängt es davon ab, welche Anforderungen du an deinen Weihnachtsbaum hast und wie wichtig dir die Lesbarkeit und Flexibilität des Codes sind. Beide von uns vorgestellten Beispiele könnten in unterschiedlichen Situationen sinnvoll sein. Ich hoffe, das hilft bei der Entscheidung! Wenn du weitere Fragen hast, lass es mich wissen.

  • Tool zur Suche nach Inhalten in .au3-Dateien

    • Moombas
    • 20. Dezember 2022 um 09:36

    Peter S. Taler Ich denke da musst du das dann etwas einbauen das entsprechend per Endung entweder normale Textverarbeitung macht oder (bei den Office Dateien z.B.) die Datei (und zwar jede einzelne) entpackt (Office-Dateien sind ja nur Zip.Dateien) und entsprechend durchsucht/verarbeitet wie bei der normalen Textverarbeitung. Das ganze dann natürlich wieder löschen und wieder von vorne.

    Wobei die zip.au3 das kann: (ich weiß gerade nicht was du dann als Ergebnis zurück bekommst):

    Zitat von https://www.autoitscript.com/forum/topic/73425-zipau3-udf-in-pure-autoit/
    Code
    _Zip_SearchInFile($ZipFile, $SearchString) Search In each File of the Zip Archive. Required #include <Zip.au3>
  • Code Kata - Christmas Tree

    • Moombas
    • 19. Dezember 2022 um 12:59

    Ganz ehrlich: Kurz überlegt ob ich das so verkaufen kann und es dann verworfen, da es mir zu unplausibel klang :D

  • Code Kata - Christmas Tree

    • Moombas
    • 19. Dezember 2022 um 11:24
    Zitat von SOLVE-SMART

    Das du Punkte statt Leerzeichen genutzt hast ist offensichtlich Absicht gewesen, daher: all good.

    Eignetlich vergessen zu ändern, da ich das beim Testen zur besseren Visualisierung genutzt habe :D Aber dann ist es halt so^^

  • Code Kata - Christmas Tree

    • Moombas
    • 19. Dezember 2022 um 10:43

    Meine Lösung sieht so aus:

    Spoiler anzeigen
    AutoIt
    Opt('MustDeclareVars', 1)
    #include <MsgBoxConstants.au3>
    #include <String.au3>
    
    if GenerateTree(10) then MsgBox($MB_SYSTEMMODAL, '', 'Merry Christmas!')
    
    Func GenerateTree(Const $Rows)
    Local $Dots
    Local $Xs = 1
        if $Rows < 4 then
            ConsoleWrite('Enter minimum 4')
            Return False
        EndIf
    
        ;*
        $Dots = 2 + $Rows - 1
        ConsoleWrite(_StringRepeat('.', $Dots) & '*' & _StringRepeat('.', $Dots) & @CRLF)
        ConsoleWrite(_StringRepeat('.', $Dots) & 'X' & _StringRepeat('.', $Dots) & @CRLF)
    
        For $High = 1 to $Rows - 3
            $Dots -= 1
            $Xs   += 2
            ConsoleWrite(_StringRepeat('.', $Dots) & _StringRepeat('X', $Xs) & _StringRepeat('.', $Dots) & @CRLF)
        Next
        $Dots = 2 + $Rows - 2
        ConsoleWrite(_StringRepeat('.', $Dots) & '|.|' & _StringRepeat('.', $Dots) & @CRLF)
        Return True
    EndFunc
    Alles anzeigen
  • Fassungsloser Unsinn oder eben doch nur Windows?

    • Moombas
    • 15. Dezember 2022 um 15:51

    Sicher das es der Dateiname ist? Normalerweise kommt es darauf an was für eine Blockgröße du gewählt hast beim Formatieren. Sind die Dateien kleiner als die Blcöke oder minimal Größer, "verlierst" du potenziellen Speicherplatz.

    Habe das aktuell bei einer SSD im Netzwerk. Viele Bilder, die kleiner sind als der "Default" Block und daher weniger Platz brauchen. Denkste, der ganze Block wird dadurch verbraucht und im Endeffekt hast du wneiger Platz als eigentlich möglich.

    (Dateigröße < Größe auf dem Datenträger)

  • TV Senderliste bearbeiten

    • Moombas
    • 14. Dezember 2022 um 10:48

    Prüf mal in Notepad++ welche Codierung die Original-Datei hat (UTF8 etc.).

    Ggf. brcuht der TV eine bestimmte Codierung und hat daher damit Probleme.

  • TV Senderliste bearbeiten

    • Moombas
    • 14. Dezember 2022 um 09:03

    Das mag dann den Unterschied ausmachen. Danke AspirinJunkie für die Erklärung.

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™