Syntax Problem

  • Hallo zusammen,

    ich brauch euch mal wieder.

    Ich muß ein String zusammensetzen.
    Normalerweise kein Problem, aber ich krieg das nicht zum laufen.
    (sorry nur ein Code-Schnippsel...)

    Kurze info:

    [autoit]


    $MeinText = "Das ist mein Text"
    $var = StringRight($arraylang[$i], 2)
    MsgBox(0, "Die 2 Zeichen von rechts lauten:", $var)

    [/autoit][autoit][/autoit][autoit]

    de, fr , en

    [/autoit][autoit][/autoit][autoit][/autoit]

    und genau diese Zeichen de, fr, it muß ich in einem String zusammenbauen und austauschen
    Beispiel en durch it, fr...

    Zitat

    UTF-8&q=" & $MeinText & "&tl=en&total=1&idx=0&textlen=3"

    mein Versuch geht leider nicht.

    Zitat

    UTF-8&q=" & $MeinText & "&tl="&$var&"&total=1&idx=0&textlen=3"

    $var zeigt mit korrekt it, oder de, oder fr an.


    Liebe Grüße
    Ilse :(

    Einmal editiert, zuletzt von Ilse (9. Juli 2012 um 11:20)

  • Wenn ich es richtig verstehe, fehlen ganz am Anfang Anführungszeichen...

    [autoit]

    "UTF-8&q=" & $MeinText & "&tl="&$var&"&total=1&idx=0&textlen=3"

    [/autoit]
  • Hallo Var,

    nochmal alles in einer Zeile:

    [autoit]


    InetGet("http://test.test.de/abc_tts?ie=UTF-8&q=" & $meinText & "&tl=en&total=1&idx=0&textlen=3", @ScriptDir & "\test.jpg")

    [/autoit]

    bis hierhin klappt es ja...
    es geht nun darum das en durch $Var zur ersetzen ......&tl=en&total......


    [autoit]


    InetGet("http://test.test.de/abc_tts?ie=UTF-8&q=" & $meinText
    & "&tl="&$var&"&total=1&idx=0&textlen=3", @ScriptDir &
    "\test.jpg")

    [/autoit]


    und das geht nicht.

    Ersetze ich das en von Hand mit it, oder fr das klappt, nur $Var klappt nicht


    ;) Liebe Grüße Ilse

    Einmal editiert, zuletzt von Ilse (8. Juli 2012 um 19:49)

  • [autoit]

    InetGet("http://test.test.de/abc_tts?ie=UTF-8&q=" & $meinText & "&tl=" & $var & "&total=1&idx=0&textlen=3", @ScriptDir & "\test.jpg")

    [/autoit]
  • Wo liegt denn da das Problem?

    [autoit]

    $Text = 'Test_Text'
    $Lang = 'en'
    ConsoleWrite("http://test.test.de/abc_tts?ie=UTF-8&q="&$Text&"&tl="&$Lang&"&total=1&idx=0&textlen=3"&@CRLF)
    $Lang = 'de'
    ConsoleWrite("http://test.test.de/abc_tts?ie=UTF-8&q="&$Text&"&tl="&$Lang&"&total=1&idx=0&textlen=3"&@CRLF)
    $Lang = 'fr'
    ConsoleWrite("http://test.test.de/abc_tts?ie=UTF-8&q="&$Text&"&tl="&$Lang&"&total=1&idx=0&textlen=3"&@CRLF)

    [/autoit]


    Edit: $var war schneller... ^^

    LG
    Christoph :)

  • Also ich bekomme dabei keinen Syntax-Fehler... Solange die Variablen deklariert sind, ist das kein Problem.
    Da scheint wohl etwas anderes nicht zu stimmen.

  • Ich erhalte auch keinen Syntax Fehler...

    Hier nochmal die Schleife
    mit Kommentaren


    [autoit]


    For $i = 0 To UBound($arrayLang) - 1

    [/autoit][autoit][/autoit][autoit]

    $var = StringRight($arraylang[$i], 2)
    ;MsgBox(0, "Die 2 Zeichen von rechts lauten:", $var) zeigt korrekt an!

    [/autoit][autoit][/autoit][autoit]

    InetGet("http://test.test.de/abc_tts?ie=UTF-8&q=" & $meinText & "&tl="&$var&"&total=1&idx=0&textlen=3", @ScriptDir & "\test.jpg")
    ;im 2. Bereich liegt das Problem: das geht

    [/autoit][autoit][/autoit][autoit]

    ;"&tl=en&total=1&idx=0&textlen=3"

    [/autoit][autoit][/autoit][autoit]

    ; das geht nicht
    ;"&tl="&$var&"&total=1&idx=0&textlen=3"
    next

    [/autoit]

    die $var ist deklariert, zeigt auch den Wert an...
    Ändere ich die Syntax von Hand, also fr oder it dann stimmt es

    wirklich seltsam...

    Wie kann ich mir die InetZeile kpl. mal anzeigen lassen?
    Also mit Var als Text zur Überprüfung

    :( Grüße Ilse

    Einmal editiert, zuletzt von Ilse (8. Juli 2012 um 20:11)

  • So kannst es anzeigen. Aber darauf hättest du auch selbst kommen können.

    Spoiler anzeigen
    [autoit]

    Global $sLang, $sUrl

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 0 To UBound($aLang) - 1
    $sLang = StringRight($aLang[$i], 2)
    $sUrl = "http://test.test.de/abc_tts?ie=UTF-8&q=" & $meinText & "&tl=" & $sLang & "&total=1&idx=0&textlen=3"
    MsgBox(0, "", $sUrl)
    INetGet($sUrl, @ScriptDir & "\test.jpg")
    Next

    [/autoit]


    Aber musst du textlen am Ende nicht auch noch variabel machen mit StringLen?

    Wie sieht das Array eigentlich aus?