RegExp??

  • Hallo Habe folgendes Problem,
    wollte ein TXt formatieren habe Probleme sie zu Formatieren würde mich über jede unterstützung freuen.

    Auszug aus der TXT:

    dn desc
    CN=Server001,OU=Servers,OU=Test3,OU=ML,DC=xx,DC=Test,DC=com Beschreibung 1
    CN=serverTS1,OU=Servers,OU=TEST4,OU=FL,OU=xx,DC=Test,DC=com Beschreibung 2
    CN=serverfi1,OU=Servers,OU=TEST2,OU=HL,DC=xx,DC=Test,DC=com Beschreibung 3
    CN=serverfi2,OU=Servers,OU=Test1,OU=JT,DC=xx,DC=Test,DC=com Beschreibung 4

    Und so soll es Später aussehen:
    Also muss die erste Zeile auch gelöscht werden und dann sollte es so aussehen

    Server001,ML,Beschreibung 1
    serverTS1,FL,Beschreibung 2
    serverfi1,HL,Beschreibung 3
    serverfi2,JT,Beschreibung 4

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."

    3 Mal editiert, zuletzt von subzero007 (3. Juli 2009 um 07:08)

    • Offizieller Beitrag

    Die erste Zeile löschen/überspringen wirst Du wohl allein hinkriegen, oder?
    Und dann einfach jede Zeile so bearbeiten:

    [autoit]


    $string = 'CN=Server001,OU=Servers,OU=Test3,OU=ML,DC=xx,DC=Test,DC=com Beschreibung 1'
    $string = StringRegExpReplace($string, 'CN=(.+?),OU=.+?,OU=.+?,OU=(.+?),.+DC=com (.+)', '$1, $2, $3')
    MsgBox(0,0,$string)

    [/autoit]
  • Also so vllt.?

    Text vorher:

    Spoiler anzeigen
    [autoit]


    dn desc
    CN=Server001,OU=Servers,OU=Test3,OU=ML,DC=xx,DC=Test,DC=com Beschreibung 1
    CN=serverTS1,OU=Servers,OU=TEST4,OU=FL,OU=xx,DC=Test,DC=com Beschreibung 2
    CN=serverfi1,OU=Servers,OU=TEST2,OU=HL,DC=xx,DC=Test,DC=com Beschreibung 3
    CN=serverfi2,OU=Servers,OU=Test1,OU=JT,DC=xx,DC=Test,DC=com Beschreibung 4

    [/autoit]


    Script: Dank Suchfunktion

    Spoiler anzeigen
    [autoit]


    ;***********************************************
    ; Script ist von http://www.autoit.de
    ;***********************************************
    #include <File.au3>

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

    Local $stringCount = 0

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

    $srcfile = @ScriptDir & "\test.txt"
    $searchString = "dn desc"
    $replaceString = ""
    Search_And_Replace($srcfile, $searchString, $replaceString, 1)

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

    $srcfile = @ScriptDir & "\test.txt"
    $searchString = "CN=Server001,OU=Servers,OU=Test3,OU=ML,DC=xx,DC=Test,DC=com Beschreibung 1"
    $replaceString = "Server001,ML,Beschreibung 1"
    Search_And_Replace($srcfile, $searchString, $replaceString, 1)

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

    $srcfile = @ScriptDir & "\test.txt"
    $searchString = "CN=serverTS1,OU=Servers,OU=TEST4,OU=FL,OU=xx,DC=Test,DC=com Beschreibung 2"
    $replaceString = "serverTS1,FL,Beschreibung 2"
    Search_And_Replace($srcfile, $searchString, $replaceString, 1)

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

    $srcfile = @ScriptDir & "\test.txt"
    $searchString = "CN=serverfi1,OU=Servers,OU=TEST2,OU=HL,DC=xx,DC=Test,DC=com Beschreibung 3"
    $replaceString = "serverfi1,HL,Beschreibung 3"
    Search_And_Replace($srcfile, $searchString, $replaceString, 1)

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

    $srcfile = @ScriptDir & "\test.txt"
    $searchString = "CN=serverfi2,OU=Servers,OU=Test1,OU=JT,DC=xx,DC=Test,DC=com Beschreibung 4"
    $replaceString = "serverfi2,JT,Beschreibung 4"
    Search_And_Replace($srcfile, $searchString, $replaceString, 1)

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

    Search_And_Replace($srcfile, $searchString, $replaceString, 1)

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

    Func Search_And_Replace($s_file, $s_searchString, $s_replaceString, $b_DeleteDuplicates)
    ; $s_file = filename
    ; $s_searchString = string to search in file
    ; $s_replaceString = string to replace the searched string in file
    ; $b_DeleteDuplicates = flag, value 0=no or 1=yes, to deletes all duplicate lines of the search string or not,
    Local $stringCount
    $sfile = FileOpen($s_file, 0)

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

    For $i = _FileCountLines($s_file) to 1 step -1
    $readline = FileReadLine($sfile, $i)
    If StringInStr($readline, $s_searchString, 2) Then
    $stringCount += 1
    ;MsgBox(0, "String found!", "The String " & $s_searchString & " is found in line: " & $i)
    If $stringCount > 1 Then
    _FileWriteToLine($s_file, $i, "", 1)
    Else
    _FileWriteToLine($s_file, $i, $s_replaceString, 1)
    EndIf
    EndIf
    Next
    FileClose($sfile)
    EndFunc ;==>Search_And_Replace
    ;***********************************************
    ; Script ist von http://www.autoit.de
    ;***********************************************

    [/autoit]


    Text hinterher:

    Spoiler anzeigen
    [autoit]


    Server001,ML,Beschreibung 1
    serverTS1,FL,Beschreibung 2
    serverfi1,HL,Beschreibung 3
    serverfi2,JT,Beschreibung 4

    [/autoit]

    Eine andere Möglichkeit ist aus einem String das heraus zu nehmen was man braucht.
    Würde dann so aussehen:

    Spoiler anzeigen
    [autoit]


    $var1 = StringMid("einsdreizweivier", 1, 4)
    $var2 = StringMid("einsdreizweivier", 9, 4)
    $var3 = StringMid("einsdreizweivier", 5, 4)
    $var4 = StringMid("einsdreizweivier", 13, 4)
    MsgBox(0, "Folgende 2 Zeichen werden ab Position 5 extrahiert:", $var1&$var2&$var3&$var4)

    [/autoit]

    Lieben Gruß,
    Alina

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

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

    Einmal editiert, zuletzt von Alina (30. Juni 2009 um 15:38)

  • Ja das Problem ist habe 2000 Zeilen

    Wollte eigentlich von links abschneiden nach dem ersten "cn= %wert% bis zum nächsten ,
    und von hinten abschneiden ,DC=xx,DC=Test,DC=com den %wert%=HL
    und dann eben von ganz rechts lesen bis zum dc=com alles was rechts davon steht ist beschreibung
    und dann sollte das rauskommen
    "Server001,ML,Beschreibung 1"
    Weiss aber nicht wie??

    Es ist mir unangenehm aber Wie löscht man die erste zeile?

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."

  • SO lade ich es in die listview

    Spoiler anzeigen
    [autoit]

    Func _Load() ; Datenbank-Datei laden
    _GUICtrlListView_DeleteAllItems($ListView1) ; Das Handle eben noch bestimmen (s. Anfang des Threads)
    Local $sItem
    $FileOpenDialog = FileOpenDialog("Pc Liste Wählen", @ScriptDir & "\", "Pc Liste (*.txt;*.csv)", 1 + 4)
    Local $hFile = FileOpen($FileOpenDialog, 0) ; Datei zum lesen öffnen
    If $hFile <> -1 Then ; wenn das öffnen erfolgreich war, dann...
    _GUICtrlListView_BeginUpdate($ListView1) ; Listview sperren
    While True ; Endlosschleife
    $sItem = FileReadLine($hFile) ; Zeile aus der Datei lesen
    If @error Then ExitLoop ; wenn das Ende der Datei erreicht ist, dann Endlosschleife verlassen
    GUICtrlCreateListViewItem($sItem, $ListView1) ; mit den eingelesenen Daten einen neuen Listview-Eintrag erstellen
    WEnd
    _GUICtrlListView_EndUpdate($ListView1) ; Listview wieder freigeben
    FileClose($hFile) ; Datei schließen
    EndIf
    EndFunc ;==>_Load

    [/autoit]

    und wie formatiere ich mein TXT??

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."

  • Spoiler anzeigen
    [autoit]


    Func _Load() ; Datenbank-Datei laden
    _GUICtrlListView_DeleteAllItems($ListView1) ; Das Handle eben noch bestimmen (s. Anfang des Threads)
    Local $sItem
    $FileOpenDialog = FileOpenDialog("Pc Liste Wählen", @ScriptDir & "\", "Pc Liste (*.txt;*.csv)", 1 + 4)
    Local $hFile = FileOpen($FileOpenDialog, 0) ; Datei zum lesen öffnen
    If $hFile <> -1 Then ; wenn das öffnen erfolgreich war, dann...
    _GUICtrlListView_BeginUpdate($ListView1) ; Listview sperren
    FileReadLine($hFile) ;liest Zeile 1 ein - die solle ja weg bleiben
    While True ; Endlosschleife
    $sItem = FileReadLine($hFile) ; jetzt gehts ab Zeile 2 weiter
    local $string = StringRegExpReplace($sitem, 'CN=(.+?),OU=.+?,OU=.+?,OU=(.+?),.+DC=com (.+)', '$1, $2, $3') ;Der reguläre Ausdruck von Oscar
    If @error Then ExitLoop ; wenn das Ende der Datei erreicht ist, dann Endlosschleife verlassen
    GUICtrlCreateListViewItem($string, $ListView1) ; mit den eingelesenen Daten einen neuen Listview-Eintrag erstellen
    WEnd
    _GUICtrlListView_EndUpdate($ListView1) ; Listview wieder freigeben
    FileClose($hFile) ; Datei schließen
    EndIf
    EndFunc ;==>_Load

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

    Versuchs mal so - ist aber im Forum gebastelt und ich hab mich auf Oscars Zeile mit StringRegExpReplace verlassen.

  • Was mache ich falsch ??

    Spoiler anzeigen
    [autoit]

    Func _Loadserver()
    Local $serverItem
    Local $hfileserver = 'server.txt'
    If $hfileserver <> -1 Then
    _GUICtrlListView_BeginUpdate($ListViewserver)
    FileReadLine($hfileserver)
    While True

    $serverItem = FileReadLine($hfileserver)
    local $string = StringRegExpReplace($serverItem, 'CN=(.+?),OU=.+?,OU=.+?,OU=(.+?),.+DC=com (.+)', '$1, $2, $3')
    If @error Then ExitLoop
    GUICtrlCreateListViewItem($serverItem, $ListViewserver)
    WEnd
    _GUICtrlListView_EndUpdate($ListViewserver)
    FileClose($hfileserver)
    EndIf

    EndFunc ;

    [/autoit]

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."

  • mmhhh....
    kannst du mir den Goldenen Tipp geben ;)

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."

  • Das ziel ist in einer listview folgendes Darzustellen:
    So sieht die TXT aus
    dn desc
    CN=Server001,OU=Servers,OU=Test3,OU=ML,DC=xx,DC=Test,DC=com Beschreibung 1
    CN=serverTS1,OU=Servers,OU=TEST4,OU=FL,OU=xx,DC=Test,DC=com Beschreibung 2
    CN=serverfi1,OU=Servers,OU=TEST2,OU=HL,DC=xx,DC=Test,DC=com Beschreibung 3
    CN=serverfi2,OU=Servers,OU=Test1,OU=JT,DC=xx,DC=Test,DC=com Beschreibung 4

    Und so soll es Später aussehen in inder Listview so dargestellt werden
    Also muss die erste Zeile auch gelöscht werden und dann sollte es so aussehen

    Server001,ML,Beschreibung 1
    serverTS1,FL,Beschreibung 2
    serverfi1,HL,Beschreibung 3
    serverfi2,JT,Beschreibung 4

    Ich kriege keine einträge in die Listview auch jetzt mit filopen in der func _loadserver geht es nicht
    habe deine funktionen eingebaut kriege es leider nicht hin???? ?(

    hier mein Code:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ListViewConstants.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <File.au3>
    #include <String.au3>
    #include <GuiListView.au3>
    #include <Array.au3>

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

    #Region ### START Koda GUI section ### Form=

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

    $Form1 = GUICreate("AD-Computer", 886, 617, 477, 169)
    Opt("GuiOnEventMode",1)
    ;Opt("MustDeclareVars", 1)
    $ListViewserver = GUICtrlCreateListView("Server", 32, 48, 250, 478)
    $ListViewclient = GUICtrlCreateListView("Client", 296, 48, 250, 478)
    $ListViewmaschiene = GUICtrlCreateListView("Maschiene", 567, 46, 250, 478)
    $Auslesen = GUICtrlCreateButton("Auslesen", 32, 544, 75, 25, 0)
    GuiCtrlSetonevent(-1, "_auslesen")
    $Serverexport = GUICtrlCreateButton("Serverexport", 208, 528, 75, 25, 0)
    $Clientexport = GUICtrlCreateButton("Clientexport", 472, 528, 75, 25, 0)
    $Maschineexport = GUICtrlCreateButton("Maschineexport", 744, 528, 75, 25, 0)
    $Countserver = GUICtrlCreateLabel("Countserver", 216, 24, 61, 17)
    $CountClient = GUICtrlCreateLabel("countclient", 484, 23, 56, 17)
    $Countmaschien = GUICtrlCreateLabel("Countmaschien", 736, 24, 77, 17)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

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

    Func _auslesen()

    _GUICtrlListView_DeleteAllItems($ListViewserver) ; Das Handle eben noch bestimmen (s. Anfang des Threads)
    _GUICtrlListView_DeleteAllItems($ListViewclient) ; Das Handle eben noch bestimmen (s. Anfang des Threads)
    _GUICtrlListView_DeleteAllItems($ListViewmaschiene) ; Das Handle eben noch bestimmen (s. Anfang des Threads)

    ;RunWait(@ComSpec & " /c " & 'dsquery computer domainroot -name server* -limit 0 | dsget computer > s068.txt', "", @SW_HIDE)

    _loadserver()
    ;RunWait(@ComSpec & " /c " & 'dsquery computer domainroot -name client* -limit 0 | dsget computer > c068.txt', "", @SW_HIDE)
    _Loadclient()
    ;RunWait(@ComSpec & " /c " & 'dsquery computer domainroot -name masch* -limit 0 | dsget computer > m068.txt', "", @SW_HIDE)
    _Loadmaschiene()
    EndFunc

    Func _Loadserver() ; Datenbank-Datei laden
    Local $serverItem
    Local $hfileserver = 'server.txt'
    Local $hfileserver = FileOpen($hfileserver, 0)
    If $hfileserver <> -1 Then
    _GUICtrlListView_BeginUpdate($ListViewserver)
    FileReadLine($hfileserver)
    While True

    $serverItem = FileReadLine($hfileserver) ; Zeile aus der Datei lesen
    local $string = StringRegExpReplace($serverItem, 'CN=(.+?),OU=.+?,OU=.+?,OU=(.+?),.+DC=com (.+)', '$1, $2, $3') ;Der reguläre Ausdruck von Oscar
    If @error Then ExitLoop
    GUICtrlCreateListViewItem($serverItem, $ListViewserver) ; mit den eingelesenen Daten einen neuen Listview-Eintrag erstellen
    WEnd
    _GUICtrlListView_EndUpdate($ListViewserver) ; Listview wieder freigeben
    FileClose($hfileserver) ; Datei schließen
    EndIf

    EndFunc ;==>_Load

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

    Func _Loadclient() ; Datenbank-Datei laden
    Local $CLIENTItem
    Local $hfileClient = 'Client.txt'
    If $hfileClient <> -1 Then
    _GUICtrlListView_BeginUpdate($ListViewclient)
    FileReadLine($hfileClient)
    While True

    $CLIENTItem = FileReadLine($hfileClient) ; Zeile aus der Datei lesen
    local $string = StringRegExpReplace($CLIENTItem, 'CN=(.+?),OU=.+?,OU=.+?,OU=(.+?),.+DC=com (.+)', '$1, $2, $3') ;Der reguläre Ausdruck von Oscar
    If @error Then ExitLoop
    GUICtrlCreateListViewItem($ClientItem, $ListViewclient); mit den eingelesenen Daten einen neuen Listview-Eintrag erstellen
    WEnd
    _GUICtrlListView_EndUpdate($ListViewclient) ; Listview wieder freigeben
    FileClose($hfileClient) ; Datei schließen
    EndIf

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

    EndFunc

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

    Func _Loadmaschiene() ; Datenbank-Datei laden

    Local $maItem
    Local $hfilema = 'masch.txt'
    If $hfilema <> -1 Then
    _GUICtrlListView_BeginUpdate($ListViewmaschiene)

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

    FileReadLine($hfilema)
    While True
    $maItem = FileReadLine($hfilema) ; Zeile aus der Datei lesen
    local $string = StringRegExpReplace($maItem, 'CN=(.+?),OU=.+?,OU=.+?,OU=(.+?),.+DC=com (.+)', '$1, $2, $3') ;Der reguläre Ausdruck von Oscar
    If @error Then ExitLoop
    GUICtrlCreateListViewItem($maItem, $ListViewmaschiene) ; mit den eingelesenen Daten einen neuen Listview-Eintrag erstellen
    WEnd
    _GUICtrlListView_EndUpdate($ListViewmaschiene) ; Listview wieder freigeben
    FileClose($hfilema) ; Datei schließen
    EndIf
    EndFunc

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

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."

  • Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ListViewConstants.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <File.au3>
    #include <String.au3>
    #include <GuiListView.au3>
    #include <Array.au3>

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

    #Region ### START Koda GUI section ### Form=

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

    $Form1 = GUICreate("AD-Computer", 886, 617, 477, 169)

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

    $ListViewserver = GUICtrlCreateListView("Server", 32, 48, 250, 478)
    $ListView1 = GUICtrlGetHandle($ListViewserver)
    $ListViewclient = GUICtrlCreateListView("Client", 296, 48, 250, 478)
    $ListViewmaschiene = GUICtrlCreateListView("Maschiene", 567, 46, 250, 478)
    $Auslesen = GUICtrlCreateButton("Auslesen", 32, 544, 75, 25, 0)
    $Serverexport = GUICtrlCreateButton("Serverexport", 208, 528, 75, 25, 0)
    $Clientexport = GUICtrlCreateButton("Clientexport", 472, 528, 75, 25, 0)
    $Maschineexport = GUICtrlCreateButton("Maschineexport", 744, 528, 75, 25, 0)
    $Countserver = GUICtrlCreateLabel("Countserver", 216, 24, 61, 17)
    $CountClient = GUICtrlCreateLabel("countclient", 484, 23, 56, 17)
    $Countmaschien = GUICtrlCreateLabel("Countmaschien", 736, 24, 77, 17)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    case $Auslesen
    _Load()
    EndSwitch
    WEnd

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

    Func _Load() ; Datenbank-Datei laden
    _GUICtrlListView_DeleteAllItems($ListView1) ; Das Handle eben noch bestimmen (s. Anfang des Threads)
    Local $sItem
    $FileOpenDialog = FileOpenDialog("Pc Liste Wählen", @ScriptDir & "\", "Pc Liste (*.txt;*.csv)", 1 + 4)
    Local $hFile = FileOpen($FileOpenDialog, 0) ; Datei zum lesen öffnen
    If $hFile <> -1 Then ; wenn das öffnen erfolgreich war, dann...
    _GUICtrlListView_BeginUpdate($ListView1) ; Listview sperren
    FileReadLine($hFile) ;liest Zeile 1 ein - die solle ja weg bleiben
    While True ; Endlosschleife
    $sItem = FileReadLine($hFile) ; jetzt gehts ab Zeile 2 weiter
    If @error Then ExitLoop ; wenn das Ende der Datei erreicht ist, dann Endlosschleife verlassen
    local $string = StringRegExpReplace($sitem, 'CN=(.+?),OU=.+?,OU=.+?,OU=(.+?),.+DC=com (.+)', '$1, $2, $3') ;Der reguläre Ausdruck von Oscar
    GUICtrlCreateListViewItem($string, $ListViewserver) ; mit den eingelesenen Daten einen neuen Listview-Eintrag erstellen
    WEnd
    _GUICtrlListView_EndUpdate($ListView1) ; Listview wieder freigeben
    FileClose($hFile) ; Datei schließen
    EndIf
    EndFunc ;==>_Load

    [/autoit]

    Habs zum testen umgebaut und vereinfacht.
    Sollte jetzt laufen - bei der angepassten _Load() Funktion war diese Zeile

    [autoit]

    If @error Then ExitLoop ; wenn das Ende der Datei erreicht ist, dann Endlosschleife verlassen

    [/autoit]

    nicht mehr unter

    [autoit]

    $sItem = FileReadLine($hFile) ; jetzt gehts ab Zeile 2 weiter

    [/autoit]

    und dann hängt das Skript in der While ... Wend Schleife fest.

  • Super funktioniert nur noch 2 kleines Problem habe ich ;)
    regExp
    'CN=(.+?),OU=.+?,OU=.+?,OU=(.+?),.+DC=com (.+)', '$1, $2, $3')
    ich kriege in die Listview
    server,%ou%, %leerzeichen% beschreibung
    wie kriege ich die leerzeichen weg? hinter %ou%,
    so das ich server,ou,Beschreibung habe??

    Und als letztes muss die aller letzte zeile gelöscht werden war mir vorhin nicht aufgefallen
    wie mache ich das?
    entweder in der txt oder in der listview die letzte zeile löschen eine idee?

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."

  • Vorsicht:
    ... Und als letztes muss die aller letzte Zeile gelöscht werden ...
    Beachte, wenn Du das Programm dann 10x durchlaufen läßt, dann sind 10x die letzte Zeile weg. Ist das okay oder nicht? Steht grundsätz beim Scriptstart in der letzten Zeile das was gelöscht werden soll? Nicht da auf einmal wichtige Daten weg sind.

    Möchte ich nur zu Bedenken geben ;)

    Lieben Gruß,
    Alina

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

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

  • Der Hinweis von Alina ist berechtigt.

    So wird das letzte Item im Listview gelöscht (Leerzeichen wurde auch entfernt).

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ListViewConstants.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <File.au3>
    #include <String.au3>
    #include <GuiListView.au3>
    #include <Array.au3>

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

    #Region ### START Koda GUI section ### Form=

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

    $Form1 = GUICreate("AD-Computer", 886, 617, 477, 169)

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

    $ListViewserver = GUICtrlCreateListView("Server", 32, 48, 250, 478)
    $ListView1 = GUICtrlGetHandle($ListViewserver)
    $ListViewclient = GUICtrlCreateListView("Client", 296, 48, 250, 478)
    $ListViewmaschiene = GUICtrlCreateListView("Maschiene", 567, 46, 250, 478)
    $Auslesen = GUICtrlCreateButton("Auslesen", 32, 544, 75, 25, 0)
    $Serverexport = GUICtrlCreateButton("Serverexport", 208, 528, 75, 25, 0)
    $Clientexport = GUICtrlCreateButton("Clientexport", 472, 528, 75, 25, 0)
    $Maschineexport = GUICtrlCreateButton("Maschineexport", 744, 528, 75, 25, 0)
    $Countserver = GUICtrlCreateLabel("Countserver", 216, 24, 61, 17)
    $CountClient = GUICtrlCreateLabel("countclient", 484, 23, 56, 17)
    $Countmaschien = GUICtrlCreateLabel("Countmaschien", 736, 24, 77, 17)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    case $Auslesen
    _Load()
    EndSwitch
    WEnd

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

    Func _Load() ; Datenbank-Datei laden
    _GUICtrlListView_DeleteAllItems($ListView1) ; Das Handle eben noch bestimmen (s. Anfang des Threads)
    Local $sItem
    $FileOpenDialog = FileOpenDialog("Pc Liste Wählen", @ScriptDir & "\", "Pc Liste (*.txt;*.csv)", 1 + 4)
    Local $hFile = FileOpen($FileOpenDialog, 0) ; Datei zum lesen öffnen
    If $hFile <> -1 Then ; wenn das öffnen erfolgreich war, dann...
    _GUICtrlListView_BeginUpdate($ListView1) ; Listview sperren
    FileReadLine($hFile) ;liest Zeile 1 ein - die solle ja weg bleiben
    While True ; Endlosschleife
    $sItem = FileReadLine($hFile) ; jetzt gehts ab Zeile 2 weiter
    If @error Then ExitLoop ; wenn das Ende der Datei erreicht ist, dann Endlosschleife verlassen
    local $string = StringRegExpReplace($sitem, 'CN=(.+?),OU=.+?,OU=.+?,OU=(.+?),.+DC=com (.+)', '$1,$2,$3') ;Der reguläre Ausdruck von Oscar
    GUICtrlCreateListViewItem($string, $ListViewserver) ; mit den eingelesenen Daten einen neuen Listview-Eintrag erstellen
    WEnd
    _GUICtrlListView_EndUpdate($ListView1) ; Listview wieder freigeben
    FileClose($hFile) ; Datei schließen
    EndIf
    _GUICtrlListView_DeleteItem($ListView1, _GUICtrlListView_GetItemCount($ListView1)-1)
    EndFunc ;==>_Load

    [/autoit]
  • Danke für eure unterstützung hat super geklappt.
    Ich fühle mich richtig wohl das Forum ist echt klasse ;) :rock:

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."