Ordner an das ENDE hängen.

  • Moin-Moin zusammen.

    Erst einmal ein Bild zum Verständlisssss ;)
    autoit.de/wcf/attachment/6078/

    Ich habe dort folgende Felder:
    Quellverzeichnis : "Input 1"
    Zielverzeichnis : "Input 2"

    Wenn ich nun den Radiobutton (evtl. Checkbox besser ?) anklicke, soll er den letzten Ordner vom Quellverzeichnis an das Zielverzeichnis anhängen.

    Das ist mit folgendem Script immer möglich, solange im Zielverzeichnis nicht z. B. f:\ steht, dann macht er nämlich hinter der Laufwerkangabe ein zwei tes "\". Ich muß ihm irgendwie sagen, das wenn an dritter Position ein "\" sich befindet, dann übernehme den Ordner aus dem Quellverzeichnis ohne dem "\" vorweg, ansonsten mit dem "\" vorweg.

    Folgende Anfangseingaben müssen erlaubt sein, bevor man den Ordner anhängt:
    g: <----- da muss auf jeden Fall immer ein "\" hinter. Ergebnis : g:\ordnername
    g:\ <------ Nur den Ordnernamen anhängen OHNE "\" nochmals vor den Ordnernamen zu schreiben. Ergebnis : g:\ordnername
    g:\meine_ordner <------ Ordnernamen anhängen MIT "\" vor den Ordnernamen. Ergebnis : g:\meine_ordner\ordnername
    UNC-Pfade sollen auch erlaubt sein, also "\\" beginnende Pfadangaben.
    Wenn in Input1 und Input 2 die hintersten Ordner identisch sind, dann den Ordner nicht nochmal anhängen.

    Habe ein Beispeilscript:

    Spoiler anzeigen
    [autoit]


    #include<GUIConstantsEx.au3>

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

    $Inhalt_Input1 = "C:\test\muster\mann\beispiel"
    $Inhalt_Input2 = "G:\"

    #include <GUIConstants.au3>

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

    $Form1 = GUICreate("Gui No. 1", 241, 119, 193, 125)
    $Radio1 = GUICtrlCreateRadio("Radio1", 8, 56, 113, 41)
    $Input1 = GUICtrlCreateInput($Inhalt_Input1, 8, 8, 217, 21)
    $Input2 = GUICtrlCreateInput($Inhalt_Input2, 8, 32, 217, 21)
    GUISetState(@SW_SHOW)

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

    While 1

    if GUICtrlRead($radio1)=$GUI_CHECKED Then
    $ja = GUICtrlRead($Input1)
    $j2a = GUICtrlRead($Input2)
    $splitter1 = StringSplit($ja, "\")
    $erg_1 = $splitter1[0]
    GUICtrlSetData($Input2,$j2a & "\" & $splitter1[$erg_1])
    GUICtrlSetstate($radio1,$GUI_UNCHECKED)
    EndIf

    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

    [/autoit]

    So, mal schauen was da zu machen ist ;)

    Lieben Dank schon jetzt und wir lesen uns ;)

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

    Einmal editiert, zuletzt von Alina (15. September 2009 um 17:52)

    • Offizieller Beitrag

    So sollten alle Fälle abgedeckt sein:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>

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

    $Inhalt_Input1 = "C:\test\muster\mann\beispiel"
    $Inhalt_Input2 = "G:\"

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

    $Form1 = GUICreate("Gui No. 1", 241, 119, 193, 125)
    $Button = GUICtrlCreateButton("übernehmen", 8, 56, 100, 21)
    $Input1 = GUICtrlCreateInput($Inhalt_Input1, 8, 8, 217, 21)
    $Input2 = GUICtrlCreateInput($Inhalt_Input2, 8, 32, 217, 21)
    GUISetState(@SW_SHOW)

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

    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button
    $read1 = StringRegExpReplace(GUICtrlRead($Input1), '(.:|\\).*\\(.+)', '$2')
    $read2 = StringRegExpReplace(GUICtrlRead($Input2), '(.:|\\).*\\(.+)', '$2')
    If $read1 <> $read2 Then
    $tmp = GUICtrlRead($Input2)
    If StringRight($tmp, 1) <> '\' Then $tmp &= '\'
    GUICtrlSetData($Input2, $tmp & $read1)
    EndIf
    EndSwitch
    WEnd

    [/autoit]

    Edit: Doch noch nicht alle Fälle. Script angepasst.

  • Hallo Oscar.

    Das Problem ist, wenn ich im unteren Input (Nr. 2) nur g: rein schreibe, das er dann keine "\" davor setzt. Ansonsten schön klein ;)

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • Oscar .

    DANKE !!! Das schaut sehr gut aus.

    Werde es gleich mal in mein "RC-CJ" einfügen und dann mal heute in den frühen Abendstunden weiter schauen. Der "RC-CJ", hat ordentlich Zeit gebraucht und dabei bin ich höchstens 5% an meinem Endergebnis dran. ;)

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl