Moin.
Ich versuche hier zwei Textdateien zu vergleichen. In der ersten stehen alle Rechnernamen, die ich erreichen will:
Rechner1
Rechner2
Rechner3
Rechner4
Rechner5
Rechner6
In der zweiten Datei habe ich alle Rechner, die ich bereits erreicht habe:
Rechner1
Rechner3
Rechner5
Rechner6
Jetzt würde ich gerne beide Datein in ein Array einlesen, die Inhalte zeilenweise vergleichen (Zeile 1 von alle Rechner mit allen Zeilen von erreichten Rechnern, dann Zeile 2 alle Rechner usw...) und dann nur die Zeilen in eine neue Textdatei schreiben, die nicht doppelt vorkommen, sprich die nur in der Datei aller Rechner vorhanden sind, nicht aber in der Datei mit den erreichten Rechnern.
Ich hoffe, ich konnte das Problem verdeutlichen.
Ich habe mal meinen Ansatz hier:
Spoiler anzeigen
Dim $arecord, $brecord, $x, $y
$z = 0
Func _FileReadToArray($sFilePath, ByRef $aArray)
;==============================================
; Local Constant/Variable Declaration Section
;==============================================
Local $hFile
$hFile = FileOpen($sFilePath, 0)
If $hFile = -1 Then
SetError(1)
Return 0
EndIf
$aArray = StringSplit( StringStripCR( FileRead($hFile, FileGetSize($sFilePath))), @LF)
FileClose($hFile)
Return 1
EndFunc
$f1 = FileOpenDialog ("File 1 auswählen", "t:\temp\test", "Text(*.txt)")
$f2 = FileOpenDialog ("File 2 auswählen", "t:\temp\test", "Text(*.txt)")
If Not _FileReadToArray ($f1, $arecord) Then
MsgBox (64, "Fehler", "Konnte die Datei nicht ins Array einlesen Fehler:" & @error)
EndIf
If Not _FileReadToArray ($f2, $brecord) Then
MsgBox (64, "Fehler", "Konnte die Datei nicht ins Array einlesen Fehler:" & @error)
Exit
EndIf
For $x = 1 to $arecord[0] ;Step 1
For $y = 1 to $brecord[0] ;Step 1
If StringInStr($arecord[$x], $brecord[$y]) Then
MsgBox (0, "Tipp:", "Doppel: " & $arecord[$x])
$z = $z + 1
Else
$z = 0
MsgBox (0, "Tipp:", "Einmalig: " & $arecord[$x])
$f3 = FileOpen ("t:\temp\test\test3.txt", 1)
FileWriteLine ($f3, $arecord[$x] & @CRLF)
FileClose ($f3)
EndIf
Next
Next
Dabei kommt aber eine Datei heraus, die die Zeile Rechner1-6 je 4-mal enthält und außerdem noch 4 Leerzeilen?!?
*ratlosist*
Danke schonmal.
Praep