Hallo!
Du mußt statt des nullbasierten "Index" einer
zu vergleichenden Spalte ein Array in der
erforderlichen Länge erstellen und die Indices
der Prüfspalten eintragen.
Allerdings stellt sich die Frage, wie diese Bedingungen
"verknüpft" werden sollen. Soll eine Ausgabe in die
Zieldatei bereits erfolgen, wenn in einer der Spalten
ein Unterschied zwischen den Zeilen vorliegt, oder nur, wenn sich
alle übergebenen Spalten in den beiden Zeilen unterscheiden
(zu steuern über den Abfrage-Wert der Variable "cz", weil die Funktion
"CheckConditions" die Zahl der Spalten zurückgibt, in denen
eine Differenz der Zeilenwerte vorliegt. (Eventuell auch noch
auf -1 prüfen: Fehlerbedingung)
Private Function CheckLines4 _
(ByVal infile As String, ByVal outfile As String, _
ByRef PrüfSpalten() As Integer) As Boolean
On Error GoTo fehler
Dim lines() As String, ak%, i%, k%, fieldsv$(), fieldsp$()
If Not ReadLines(infile, lines) Then CheckLines4 = False: Exit Function
'Anzahl der übergebenen Prüfspalten (= Anzahl Array-Elemente)
Dim cz As Integer
cz = UBound(PrüfSpalten) - LBound(PrüfSpalten) + 1
Dim written() As Boolean
ReDim written(UBound(lines)) As Boolean
ak = FreeFile
Open outfile For Output As #ak
For i = 1 To UBound(lines)
fieldsv = Split(lines(i - 1), ",")
fieldsp = Split(lines(i), ",")
If CheckConditions(fieldsv(), fieldsp(), PrüfSpalten()) = cz Then
If Not written(i - 1) Then
Print #ak, lines(i - 1)
End If
If Not written(i) Then
Print #ak, lines(i)
written(i) = True
End If
If i < UBound(lines) Then
written(i + 1) = True
Print #ak, lines(i + 1)
End If
End If
Next i
Close #ak
CheckLines4 = True
Exit Function
fehler:
Close #ak
CheckLines4 = False
End Function
Private Function CheckConditions _
(ByRef fieldsv() As String, ByRef fieldsp() As String, _
ByRef pruefspalten() As Integer) As Integer
On Error GoTo fehler
Dim i As Integer, z As Integer
For i = LBound(pruefspalten) To UBound(pruefspalten)
If CInt(Trim(fieldsv(pruefspalten(i)))) <> _
CInt(Trim(fieldsp(pruefspalten(i)))) Then z = z + 1
Next i
CheckConditions = z
Exit Function
fehler:
CheckConditions = -1
End Function
Beitrag wurde zuletzt am 26.05.11 um 13:33:06 editiert. |