TABs wegmachen

  • Hi,
    Mein Problem ist folgendes: Ich habe ein Word Document mit ca. 1000 Vokabeln, von denen ein paar Leerzeichen und Tabs weiter weg die Übersetzung steht. Jetzt möchte ich die Vokabeln in ein Vokabeltrainer eintragen...Wenn ich aber dann die Zeile markiere, sind außer der Übersetzung auch noch einige Tabs und Leerzeichen drin...

    Nachdem der Text in der Zwischenablage ist kommt das:

    [autoit]


    $text = ClipGet()
    sleep(300)
    StringStripWS($text, 3)
    send($text)

    [/autoit]


    Das Problem ist, dass in $text jetzt auch och einige TAbs vor dem eigentlichen Wort stehen...Das bewirkt, dass er den Text in Vokabeltrainer irgendwo völlig falsch hinschriebt, da er ja zuvor einigemale Tab gedrückt hat...

    Vg,

    RapIT

  • Hi,
    Ich habe das so verstanden, daß die Vokabel und die Übersetzung in einer Zeile stehen. Also sollte deine Textmarkierung (clipget() ) so aussehen:

    Code
    glasses           Brille


    Dazwischen stehen dann die Tabs bzw Leerzeichen?
    Das wäre doch etwas für die Regex-Cracks, alle "Leerzeichen" entfernen und die beiden Wörter in $Vokabel und $Uebersetzung ablegen^^
    Es geht natürlich auch "zu Fuß"^^

    [autoit]

    $text=" glasses Brille " ;clipget
    $text=StringStripWS($text, 3) ;hier die 8 statt der 3 liefert Oscars Ergebnis
    $vokabel=""
    $uebersetzung=""

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

    for $i=1 to stringlen($text) ;alle Zeichen im String durchforsten
    if asc(stringmid($text,$i,1))<33 then ;irgendein Leerzeichen gefúnden
    if $vokabel="" then $vokabel=stringleft($text,$i-1) ;wenn Vokabel noch nicht erkannt, Vokabel aus String extrahieren
    Else ;es ist kein Leerzeichen gefunden
    if $vokabel<>"" Then ; Wenn Vokabel bereits gefunden,
    $uebersetzung=stringtrimleft($text,$i-1) ; dann ist das wort ab dieser Position die Übersetzung
    exitloop ;raus aus der schleife
    endif
    endif
    Next
    msgbox(0,$vokabel,$uebersetzung)

    [/autoit]


    Btw, mit der 3 in stringstripws() entfernst du führende und nachfolgende "Leerzeichen" (auch TAB), um ALLE (auch zwischen der beiden Wörtern) zu entfernen, nimm die 8. Dann hast du aber das Ergebnis wie in Oscars Vorschlag, beide Wörter "zusammengeschrieben"...

    ciao
    Andy


    "Schlechtes Benehmen halten die Leute doch nur deswegen für eine Art Vorrecht, weil keiner ihnen aufs Maul haut." Klaus Kinski
    "Hint: Write comments after each line. So you can (better) see what your program does and what it not does. And we can see what you're thinking what your program does and we can point to the missunderstandings." A-Jay

    Wie man Fragen richtig stellt... Tutorial: Wie man Script-Fehler findet und beseitigt...X-Y-Problem

    Einmal editiert, zuletzt von Andy (1. September 2009 um 20:55)