Or Probleme...

  • Was mache ich falsch Kriege immer nur Syntax fehler:
    Was will ich machen prüfe ob datei in pfad 1 oder in pfad 2 wenn nein GUICtrlCreateListViewItem

    und wenn datei enthalten mit else weitermachen ....


    [autoit]

    If Not FileExists("\\server\share\log1\" & $ListViewText & ".log")) Or If Not FileExists("\\server\share\log2\" & $ListViewText & ".log") then


    GUICtrlCreateListViewItem($temp[17] & "||" & $Text & "|" & $temp[7] & "|" & $IP & "|" & $STATus, $Liste)

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

    Else

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

    $file = FileOpen("\\server\share\log3\" & $ListViewText & ".log", 0)

    [/autoit]


    Danke Alle Probleme Gelöst ;)

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

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

    Einmal editiert, zuletzt von subzero007 (21. Oktober 2009 um 16:31)

  • Ohne '('
    kriege ich auch fehler ich weiss nicht was los ist habe schon viel versucht ???

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

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

  • [autoit]

    If (Not FileExists("\\server\share\log1\" & $ListViewText & ".log")) Or (Not FileExists("\\server\share\log2\" & $ListViewText & ".log")) then

    [/autoit]

    So dürfte es gehen

    MfG
    Conan (Nur Mitlesend)
    Schon lange dabei

  • in deiner ersten zeile is die klammer und das 2te if zuviel ohne müssts gehn

    so in etwa:

    [autoit]

    If Not FileExists("\\server\share\log1\" & $ListViewText & ".log") Or Not FileExists("\\server\share\log2\" & $ListViewText & ".log") then

    [/autoit]

    und endif fehlt, weiß nich ob du das nur vergessen hast zu posten oder im script

    Edit: oh 2 warn schneller, verdammt seit ihr gut :D

  • Hallo subzero007,

    wenn ich dich richtig verstanden habe willst du falls sich die Datei weder im Suchpfad1 noch im Suchpfad 2 enthalten ist ein ListViewItem anlegen, ansonsten möchtest du die Datei öffnen. Hier die Logik dazu:

    [autoit]

    If (FileExists("\\server\share\log1\" & $ListViewText & ".log")) Or (FileExists("\\server\share\log2\" & $ListViewText & ".log")) Then
    $file = FileOpen("\\server\share\log3\" & $ListViewText & ".log", 0)
    Else
    GUICtrlCreateListViewItem($temp[17] & "||" & $Text & "|" & $temp[7] & "|" & $IP & "|" & $STATus, $Liste)
    EndIf

    [/autoit]

    mfg (Auto)Bert

  • hey,
    jetzt kriege ich zumindestsens keinen syntaxfehler:.......

    das ganze ist ein tel meiner funktion:

    ich will nur zwei verschiedene verzeichnisse prüfen aber leider geht es nicht so wie ich es mir vorstelle?

    [autoit]

    Func _befuelle_lv_liste()
    ;### Befülle Listview Liste aus Inhalten einer 26 - spaltigen csv Datei
    ;### Suchkriterium Hostname aus dem Listview $ListViewText [1] (noch zu überprüfen!!!!), gffs. musst Du den Hostnamen anders bestimmen
    ;### CSV Daten:
    ;### 7. Spalte Besitzer
    ;### 17. Spalte Hostname
    ;### 26. Spalte Last Logon
    _GUICtrlListView_DeleteAllItems($Liste)

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

    Local $arfile
    Local $file = '\\server\share\log\CI.csv'
    _FileReadToArray($file, $arfile)
    ;_ArrayDisplay($arfile)
    Local $icount = _GUICtrlListView_GetItemCount($ListViewhost)
    For $j = 0 To $icount - 1
    ;$ListViewText = _GUICtrlListView_GetItemTextArray($ListViewhost, $i)

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

    $ListViewText = _GUICtrlListView_GetItemText($ListViewhost, $j)

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

    For $i = 1 To UBound($arfile) - 1 ; 1. Element ist Beschreibung der csv Daten
    $temp = StringSplit($arfile[$i], ";")
    If $temp[17] = $ListViewText Then ; Wenn der Hostname mit dem Hostnamen aus dem 1. Listview übereinstimmt (das musst Du noch kontrollieren)
    $IP = _QueryDNS($ListViewText)
    Ping($ListViewText, 100) ; Host anpingen
    If Not @error Then $STATus = 'ON'
    Ping($ListViewText, 100) ; Host anpingen
    If @error Then $STATus = 'Offline'

    If Not FileExists("\\server\share\log1\" & $ListViewText & ".log") Or Not FileExists("\\server\share\log2\" & $ListViewText & ".log") then


    GUICtrlCreateListViewItem($temp[17] & "||" & $Text & "|" & $temp[7] & "|" & $IP & "|" & $STATus, $Liste)

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

    Else

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

    $file = FileOpen("\\server\share\log3\" & $ListViewText & ".log", 0)
    While 1
    ;
    ;
    $Text = ""
    $line = FileReadLine($file)
    If @error = -1 Then ExitLoop
    $Text = StringReplace($line, "USERNAME=", "")
    If @extended > 0 Then ;GUICtrlCreateListViewItem($ListViewText[1]&'|'&$text, $Liste)
    ; _ADGetLastLoginDate($Text)

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

    If $Text = "" Then
    GUICtrlCreateListViewItem($temp[17] & "|" & "|" &$Text & "|" & $temp[7] & "|" & $IP & "|" & $STATus, $Liste)
    EndIf

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

    $result1 = _ADObjectExists($Text)
    If $result1 = 1 Then
    $result = _ADGetLastLoginDate($Text)
    If $result1 = 0 Then
    $result = ''
    EndIf
    $result = StringRegExpReplace($result, "(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})", "$4:$5:$6 $3.$2.$1")

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

    GUICtrlCreateListViewItem($temp[17] & "|" & $Text & "|" & $result & '|' & $temp[7] & "|" & $IP & "|" & $STATus, $Liste)
    EndIf
    EndIf
    WEnd

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

    FileClose($file)
    EndIf ;
    EndIf
    Next
    Next
    EndFunc

    [/autoit]

    Ich will in zeile 29 zwei verzeichnisse prüfen:
    Was mache ich falsch?

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

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

    Einmal editiert, zuletzt von subzero007 (21. Oktober 2009 um 13:42)

  • Hallo subzero007,

    versuch es doch einfach einmal so (siehe auch meinen vorhergehenden Post):

    Spoiler anzeigen
    [autoit]

    Func _befuelle_lv_liste()
    ;### Befülle Listview Liste aus Inhalten einer 26 - spaltigen csv Datei
    ;### Suchkriterium Hostname aus dem Listview $ListViewText [1] (noch zu überprüfen!!!!), gffs. musst Du den Hostnamen anders bestimmen
    ;### CSV Daten:
    ;### 7. Spalte Besitzer
    ;### 17. Spalte Hostname
    ;### 26. Spalte Last Logon
    _GUICtrlListView_DeleteAllItems($Liste)

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

    Local $arfile
    Local $file = '\\server\share\log\CI.csv'
    _FileReadToArray($file, $arfile)
    ;_ArrayDisplay($arfile)
    Local $icount = _GUICtrlListView_GetItemCount($ListViewhost)
    For $j = 0 To $icount - 1
    ;$ListViewText = _GUICtrlListView_GetItemTextArray($ListViewhost, $i)

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

    $ListViewText = _GUICtrlListView_GetItemText($ListViewhost, $j)

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

    For $i = 1 To UBound($arfile) - 1 ; 1. Element ist Beschreibung der csv Daten
    $temp = StringSplit($arfile[$i], ";")
    If $temp[17] = $ListViewText Then ; Wenn der Hostname mit dem Hostnamen aus dem 1. Listview übereinstimmt (das musst Du noch kontrollieren)
    $IP = _QueryDNS($ListViewText)
    Ping($ListViewText, 100) ; Host anpingen
    If Not @error Then $STATus = 'ON'
    Ping($ListViewText, 100) ; Host anpingen
    If @error Then $STATus = 'Offline'

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

    If (FileExists("\\server\share\log1\" & $ListViewText & ".log")) Or (FileExists("\\server\share\log2\" & $ListViewText & ".log")) Then
    $file = FileOpen("\\server\share\log3\" & $ListViewText & ".log", 0)
    While 1
    ;
    ;
    $Text = ""
    $line = FileReadLine($file)
    If @error = -1 Then ExitLoop
    $Text = StringReplace($line, "USERNAME=", "")
    If @extended > 0 Then ;GUICtrlCreateListViewItem($ListViewText[1]&'|'&$text, $Liste)
    ; _ADGetLastLoginDate($Text)

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

    If $Text = "" Then
    GUICtrlCreateListViewItem($temp[17] & "|" & "|" & $Text & "|" & $temp[7] & "|" & $IP & "|" & $STATus, $Liste)
    EndIf

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

    $result1 = _ADObjectExists($Text)
    If $result1 = 1 Then
    $result = _ADGetLastLoginDate($Text)
    If $result1 = 0 Then
    $result = ''
    EndIf
    $result = StringRegExpReplace($result, "(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})", "$4:$5:$6 $3.$2.$1")

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

    GUICtrlCreateListViewItem($temp[17] & "|" & $Text & "|" & $result & '|' & $temp[7] & "|" & $IP & "|" & $STATus, $Liste)
    EndIf
    EndIf
    WEnd

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

    FileClose($file)

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

    Else
    GUICtrlCreateListViewItem($temp[17] & "||" & $Text & "|" & $temp[7] & "|" & $IP & "|" & $STATus, $Liste)
    EndIf ;
    ;$file = FileOpen("\\emea.corpdir.net\e068\Admin\ClientService\Client_INI\SWScan2\" & $ListViewText & ".swscan", 0)
    ;Zeilen des Textes einlesen bis EOF
    ; dann befülle 2.ten listview mit Hostnamen, Last Logon Name und Besitzer
    EndIf
    Next
    Next
    EndFunc ;==>_befuelle_lv_liste

    [/autoit]

    Testen kann ich es leider nicht selber, da es ja nur ein aus dem Zusammenhang (fehlende Variblendeklaration etc) gerissen ist,

    mfg (Auto)Bert

  • Hallo subzero007,

    wenn ich dich richtig verstanden habe willst du falls sich die Datei weder im Suchpfad1 noch im Suchpfad 2 enthalten ist ein ListViewItem anlegen, ansonsten möchtest du die Datei öffnen. Hier die Logik dazu:

    [autoit]

    If (FileExists("\\server\share\log1\" & $ListViewText & ".log")) Or (FileExists("\\server\share\log2\" & $ListViewText & ".log")) Then
    $file = FileOpen("\\server\share\log3\" & $ListViewText & ".log", 0)
    Else
    GUICtrlCreateListViewItem($temp[17] & "||" & $Text & "|" & $temp[7] & "|" & $IP & "|" & $STATus, $Liste)
    EndIf

    [/autoit]


    mfg (Auto)Bert

    ich denke nicht dass es das gleiche ist wie mit den not, da wir ja ein oder haben

    man müsste dein Or durch ein And ersetzten dass es das gleiche ist oder nicht?

    bei subzero007:
    wenn ordner1 oder ordner2 nicht existiert dann create listview ansonsten fileopen

    bei dir:
    wenn ordner1 oder ordner2 existiert dann fileopen ansonsten create listview

    da is n großer unterschied.
    bei ihm macht er n listviewelement wenn einer der beiden nicht existiert
    bei dir macht er n listviewelement nur dann wenn nicht existieren

    aber wie gsagt man muss nur das Or durch And ersetzten und dann passts

  • Hallo Schnitzel,

    dass es nicht das gleiche ist, dem stimme ich voll und ganz zu.
    Ich muss aber nach diesem Eröffnungspost:

    Was mache ich falsch Kriege immer nur Syntax fehler:
    Was will ich machen prüfe ob datei in pfad 1 oder in pfad 2 wenn nein GUICtrlCreateListViewItem

    und wenn datei enthalten mit else weitermachen ....


    davon ausgehen, dass er genau die von mir gepostete Lösung sucht deshalb auch

    wenn ich dich richtig verstanden habe willst du falls sich die Datei weder im Suchpfad1 noch im Suchpfad 2 enthalten ist ein ListViewItem anlegen, ansonsten möchtest du die Datei öffnen. Hier die Logik dazu:

    subzero007, vielleicht kannst du ja das Problem noch einmal genauer erklären

    mfg (Auto)Bert

  • Hey,
    so danke euch erstaml mein 1 Problem ist gelöst

    jetzt hänge ich daran die datei entweder in pfad eins oder im Pfad zwei zu öffnen was mache ich falsch?

    [autoit]


    If not (FileExists("\\server\share\log1\" & $ListViewText & ".log")) And not (FileExists("\\server\share\log2\" & $ListViewText & ".log")) Then
    GUICtrlCreateListViewItem($temp[17] & "||" & $Text & "|" & $temp[7] & "|" & $IP & "|" & $STATus, $Liste)
    Else

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

    $file = FileOpen("\\server\share\log1\" & $ListViewText & ".log", 0)
    If $file = -1 Then
    FileClose($file)
    $file = FileOpen("\\server\share\log2\" & $ListViewText & ".log", 0)

    [/autoit]

    also wenn ich nur zeile 6 Stehen lasse funktioniert es wie kann ich das abfangen oder was mache ich falsch ?

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

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

  • So geht es leider auch nicht ??

    [autoit]

    $file = FileOpen("\\server\share\log1\" & $ListViewText & ".log", 0)
    If $file = -1 Then
    $file = FileOpen("\\server\share\log2\" & $ListViewText & ".log", 0)

    [/autoit]

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

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

  • Hallo subzero007,

    so sollte es funktionieren:

    [autoit]


    If (FileExists("\\server\share\log1\" & $ListViewText & ".log")) Or (FileExists("\\server\share\log2\" & $ListViewText & ".log")) Then
    $FileToOpen = ""
    if FileExists("\\server\share\log1\" & $ListViewText & ".log") then $FileToOpen = "\\server\share\log1\" & $ListViewText & ".log"
    if ($FileToOpen = "") and FileExists("\\server\share\log2\" & $ListViewText & ".log") then $FileToOpen = "\\server\share\log2\" & $ListViewText & ".log"
    if $FileToOpen <> "" then $file = FileOpen($FileToOpen)
    Else
    GUICtrlCreateListViewItem($temp[17] & "||" & $Text & "|" & $temp[7] & "|" & $IP & "|" & $STATus, $Liste)
    EndIf

    [/autoit]

    mfg (Auto)Bert

  • Hey,

    bitte nutze deine gesammelte Erfahrung doch zumindest für geeignete Fehlerbeschreibungen.
    Nicht vergessen: Wir sitzen nicht vor deinem Rechner, kennen nicht die genaue Aufgabenstellung & Fehlermeldung und können somit nur raten was nicht funktioniert.

    Nach jeder Funktion gibt es die Möglichkeit den Rückgabewert abzufangen (Consolwrite, msgbox, logwrite usw.). Dadurch erklären sich bei einfachen Sachen die Fehler meist von selbst.
    Für Programmfehler ist der ausgegeben Fehlercode wichtig für die Analyse.

  • Zitat

    davon ausgehen, dass er genau die von mir gepostete Lösung sucht deshalb auch

    ok hast wahrscheinlich recht, wäre gut wenn mal klar wäre was bei den eigentlich 4 fällen passieren soll
    1. datei1 nicht vorhanden, datei2 nicht vorhanden
    2. datei1 vorhanden, datei2 nicht vorhanden
    3. datei1 nicht vorhanden, datei2 vorhanden
    4. datei1 vorhanden, datei2 vorhanden

    oder ob nur die 2 fälle betrachtet werden
    1. datei in einem der beiden pfade vorhanden
    2. datei in keinem der beiden pfade vorhanden