@TAB - Probleme mit Texterstellung

  • Hallo zusammen,

    ich setze Textbausteine zusammen mit Tabulatoren (@TAB).

    Es wird @TAB problemlos in GUICtrlSetData gesetzt.


    Local $sTemp = $sText1 & @TAB & $sText2 & @TAB & $sText3 & @TAB


    GUICtrlSetData($sEditTextInhalt, $sTemp)

    Dann erstelle ich e-Mail und füge erstellten Inhalt hinzu.

    _INetMail($sAddress, $sSubject, $sTemp)

    Allerdings finde ich statt Tabulatoren nur die Leerzeichen in e-Mail. In Textfeld sind aber richtige Tabulatoren da und ich kann die kopieren 1:1 ins Mail-Programm.

    Auch mit _INetMail($sAddress, $sSubject, GUICtrlRead($sEditTextInhalt))  kann ich die gewünschte Tabulatoren nicht finden.

    Woran kann es liegen, dass ich Tabulatoren bei der automatisierten Erstellung im Mail vermisse?

    Danke und Gruß

  • Woran kann es liegen, dass ich Tabulatoren bei der automatisierten Erstellung im Mail vermisse?

    Weil sie ausgefiltert werden...

    Ich habe die Funktionen _INetMail() und _INetExplorerCapable(), die von _INetMail() aufgerufen wird, mal eine wenig umgestrickt und Run() durch ConsoleWrite() ersetzt... so kannst du sehen, was gesendet wird...

  • Hallo und Danke für die Rückmeldungen!

    @Xenobiologist

    Direkte Ausgabe ConsoleWrite zeigt in Code "richtigen" Text.

    Du schreibst: "in den UDFS (includes) selbst einsehen"

    Wie kann ich es implementieren?

    @Bitnugger

    bei mir kommt mit Deinen Vorschlag sowas raus:

    %0D%0A%09Text1%09Text2%09Text3%0D%0A

  • Du schreibst: "in den UDFS (includes) selbst einsehen"

    Wie kann ich es implementieren?

    Wenn du SciTE4AutoIt3 als Editor verwendest, ist es sehr einfach.

    Steht das Caret (Textcursor) direkt vor, nach, oder in einem Funktionsnamen, kannst du Strg + j drücken - das Include, in dem sich diese Funktion befindet, wird in einem neuen Tab geladen und das Caret direkt vor den Funktionsnamen gesetzt - in deinem Fall also _INetMail und _INetExplorerCapable. Das funktioniert also nur bei Funktionen, die in mit Include geladen werden.

    Steht das Caret in einer Zeile, in der das "Schlüsselwort" #Include steht, kannst du Alt + i drücken - das Include, wird in einem neuen Tab geladen und das Caret an den Anfang des Scriptes gesetzt.

    In der AutoIt-Hilfe findest du im Anhang eine Tabelle mit dem ASCII-Zeichensatz.

  • Hallo und Danke für die Unterstützung!

    Ich habe verstanden, dass die Zeichen ausgefiltert werden, was ich aber nicht ganz checke, wie ich meine Sonderzeichen (Tab's) in Outlook haben kann???

  • Hallo und Danke für die Unterstützung!

    Ich habe verstanden, dass die Zeichen ausgefiltert werden, was ich aber nicht ganz checke, wie ich meine Sonderzeichen (Tab's) in Outlook haben kann???

    Ersetzt Outlook vielleicht die Tabs mit Leerzeichen? Schick doch mal eine Nachricht von Outlook mit Tabs weg unf lies sie dann aus und lass dir die Hex-Werte der Zeichen zurückgeben. Vielleicht sind es ja nur Leerzeichen?

  • Ja, Outlook ersetzt Tabs mit Leerzeichen.

    Hier die Antwort, warum das so ist: Beim Versenden werden alle Tabulatorzeichen (Tabstoppzeichen) durch Lehrzeichen ersetzt.

    Wie kann man es ändern?

    Indem du nicht die Original-Funktion _INetMail aus den Includes benutzt.

    In der Funktion _INetExplorerCapable musst du lediglich eine kleine Änderung vornehmen, dann sollte es funktionieren.

  • Hallo,

    das Problem immer noch da.

    Ich habe nun beide Zeilen aktiviert,

    Code
    Local $iRet = Run(StringReplace($sVar, '%1', _INetExplorerCapable('mailto:' & $sMailTo & '?subject=' & $sMailSubject & '&body=' & $sMailBody)))     
        Local $iError = @error, $iExtended = @extended
        Local $iRet = ConsoleWrite(StringReplace($sVar, '%1', _INetExplorerCapable('mailto:' & $sMailTo & '?subject=' & $sMailSubject & '&body=' & $sMailBody)) & @CRLF)
        Local $iError = @error, $iExtended = @extended

    dabei ist mir aufgefallen, dass in Console auch Tabs dabei, aber nicht in Outlook.

    Was mir noch auffällt sind komische Zeichen, wenn ich ÖÄÜ im Text verfüge.

    Vielleicht habe ich Kodierungsproblem, Formatierungsproblem o.ä.?

    In Outlook wird die NAchricht als HTML formatiert.

    Danke und Gruß

  • Was mir noch auffällt sind komische Zeichen, wenn ich ÖÄÜ im Text verfüge.

    Du meinst in Outlook? Die Umlaute sind zerhackt? Dann ist es ein Kodierungsproblem. Falls ja, dann poste mal die Ausgabe der folgenden Funktion...

    AutoIt
    Local $iEncoding = FileGetEncoding(@ScriptFullPath)
    ConsoleWrite('$iEncoding = ' & $iEncoding & @CRLF)

    Habe noch was dazu gefunden: Tabulator innerhalb der E-Mail

    Zitat

    Beachte, dass Email entweder in html oder plain-text geschrieben wird. In beiden gibt es keinen setzbaren Tabstopp. Bei Drücken der Tab-Taste werden nur 3 geschützte Leerzeichen eingefügt und das auch nur wenn Du ein E-Mail Programm also einen lokalen Editor verwendest.

    Im Web (Outlook.com) kannst Du Dir evtl. für einige Fälle mit dem eingerückten Absatz behelfen.

    Gert

    Gert