Markierten Text speichern

  • Guten Morgen zusammen.

    Ich muss hier für meine Firma Adresse überprüfen und in unsere Datenbank einfügen.
    800 Stück. Und ein bissel könnte ich ne "Routine" einbringen.

    Mir fehlt die Funktion (ich weiß nicht wie sie heisst):
    ich möchte mit der Maus einen Text markieren und die Taste 1 drücken (das wäre zum Beispiel der Name). Dann den nächsten Text markieren und die Taste 2 drücken. Das wäre der Strassenname und so weiter.

    Und dann später bei unserem System will ich die Texte wieder einfügen.
    Mir fehlt nur die Funktion, den markierten Text bei einem Tastendruck in einer Textdatei zu speichern.
    Den Rest bekomme ich hin.

    Vielen Dank im Voraus.
    Xethria

    EDIT: gelöst.

    2 Mal editiert, zuletzt von Xethria (25. Januar 2010 um 15:59)

  • es wäre hilfreich, wenn Du verraten würdest,
    aus welcher Anwendung Du die Daten auslesen / kopieren möchtest.

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • Ich habe eine Excel-Tabelle da stehen die Namen mit dem Ort, die gebe ich dann bei Google ein. Also habe ich den marikierten Text von einer Internetseite, wenn ich fündig werde.

  • Zitat

    Mir fehlt nur die Funktion, den markierten Text bei einem Tastendruck in einer Textdatei zu speichern.


    Wenn Du "nur" die Funktion zum speichern benötigst, dazu würde ich IniWrite nehmen und mir die "Namen" in die *.ini schreiben.
    Zum Auslesen kannst Du ja _ExcelReadSheetToArray verwenden.
    Um die Daten aus dem Internet auszulesen muß ich jetzt raten, da ich nicht weiß, was Du da für eine HTML-Seite erhälst.
    Da würde ich mal die _IE-Funktionen anschauen.
    Ist sicherlich was passendes dabei ;)

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • Die Handhabung mit Ini-Dateien finde ich in der Hilfe. Das wird kein Problem.
    Ich dachte, dass es direkt einen Befehl für markierte Texte gibt, weil ich den Befehl "MouseClickDrag" gefunden habe. Womit ich ja "markieren" kann.
    Ich möchte ja nicht nur einmal "strg+c" drücken. Ich fummel mal bissel.
    Danke soweit.

  • DragnDrop wird bei AutoIt idR nur mit Dateinamen unterstützt. Um Text von einer in die andere Anwendung zu bringen muss man bissl improvisieren...

    Rudimentäres Drag&Drop-Script für Text:
    Adressen würde ich per *.csv (Kommasepariert) speichern, dann kannst du die so gut wie überall importieren

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <Misc.au3>
    #include <WindowsConstants.au3>

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

    $filename="adressdaten.csv"

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

    $gui = GUICreate("Adressen", 556, 300, 192, 124, -1, BitOR($WS_EX_ACCEPTFILES, $WS_EX_TOPMOST, $WS_EX_WINDOWEDGE))
    $Input1 = GUICtrlCreateInput("", 128, 24, 129, 21)
    $Input2 = GUICtrlCreateInput("", 128, 64, 129, 21)
    $Input3 = GUICtrlCreateInput("", 128, 104, 129, 21)
    $Input4 = GUICtrlCreateInput("", 128, 144, 129, 21)
    $Input5 = GUICtrlCreateInput("", 128, 184, 129, 21)
    $Label1 = GUICtrlCreateLabel("Name", 16, 24, 56, 17)
    $Label2 = GUICtrlCreateLabel("Vorname", 16, 64, 46, 17)
    $Label3 = GUICtrlCreateLabel("Straße", 16, 104, 35, 17)
    $Label4 = GUICtrlCreateLabel("PLZ", 16, 144, 24, 17)
    $Label5 = GUICtrlCreateLabel("Ort", 16, 184, 18, 17)
    $Label6 = GUICtrlCreateLabel("Mit der Maus Text markieren und per Drag/Drop in die Inputfelder ziehen ", 288, 24, 163, 57)
    $button_save = GUICtrlCreateButton("Daten Speichern", 300, 80, 100, 40)

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

    GUISetState(@SW_SHOW)

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

    While 1
    $msg=GUIGetMsg()
    switch $msg
    case -3 ;ende
    Exit
    case $button_save ;
    _savedata()
    endswitch

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

    If _IsPressed(01) Then ;linke maustaste gedrückt
    If WinActive("") <> $gui Then
    ToolTip("Markieren und mit Drag&Drop ins Inputfeld ziehen")
    Sleep(50)
    Send("^{INS}") ;text kopieren
    While _IsPressed(01) ;solange wie die Maus gedrückt ist ....
    Sleep(10)
    WEnd
    Local $a = GUIGetCursorInfo($gui) ;mausposition der abfragen
    Switch $a[4]
    Case $Input1 To $Input5 ;wenn über einem input in der gui
    MouseClick("left") ;focus Input
    Send("^v") ;reinkopieren
    EndSwitch
    EndIf
    EndIf

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

    WEnd

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

    func _savedata()
    local $data=""
    for $i=1 to 5 ;alle inputfelder
    $data&=GUICtrlRead(eval("input"&$i))&","
    Next

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

    Filewriteline($filename,stringtrimright($data,1))
    endfunc

    [/autoit]
  • EDIT: peethebee : deinen Beitrag nicht gesehen, aber ja, mit genau dem habe ich es gelöst.

    Habs nun so gelöst:

    Spoiler anzeigen
    [autoit]


    #Include <Misc.au3>

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

    If FileExists( "Bla.txt") then FileDelete("Bla.txt")
    $file = FileOpen ( "Bla.txt", 2)
    $sHexKey= "13"
    Do
    If _IsPressed ($sHexKey) then
    Send("^c")
    $text = ClipGet()
    FileWrite($file, $text & @CRLF)
    EndIf
    Until _IsPressed("23")
    FileClose($file)
    $file = FileOpen ( "Bla.txt", 0)
    MouseClick("left", 850,135)
    Sleep(500)
    $z1=FileReadLine($file,1)
    ;usw...

    [/autoit]

    Ich speicher so oft mit der Taste "Pause" den markierten Text in eine Textdatei, bis ich mit der Taste "Ende" es abbreche (dann wird die TXT-Datei geschlossen).
    Danach rufe ich dann die Zeilen gezielt ab. Klappt super.

    Vielen Dank für die Aufmerksamkeit.

    Einmal editiert, zuletzt von Xethria (25. Januar 2010 um 13:51)