
Ich schreibe immer die Daten 【AAA, BBB, CCC】 in die CSV-Datei.
Ich möchte auch andere Daten (z. B. DDD) schreiben, wenn sie in der Textdatei vorhanden sind.
Eine Anordnung:
arr = Array("AAA", "BBB", "CCC")
Textdatei (Lesen):
AAA
BBB
CCC
DDD
BBB
CCC
AAA
DDD
AAA
Code:
Open InputFile For Input As #1
Open OutputFile For Output As #2
Do Until EOF(1)
Line Input #1, strData
'Read data from text file
'Check text file data exists or not in arr
'If not exist, add items(DDD) to arr
Print #2, strData
Loop
Close #1
Close #2
CSV-Datei (Schreiben):
AAA, BBB, CCC, DDD
Wie geht man hierfür am besten vor?
Antwort1
Filterfunktion (Visual Basic)
Gibt ein nullbasiertes Array zurück, das eine Teilmenge eines String-Arrays basierend auf angegebenen Filterkriterien enthält.
- Verwenden Sie die
filter
Funktion und überprüfen Sie die Größe des resultierenden Arrays mit Ubound(). - Erweitern Sie
Redim preserve
Ihr Array um 1 und fügen Sie Ihren zuletzt überprüften Textwert hinzu.
Hier ist ein kleines allgemeines Beispiel
Sub IsInArray()
Dim arrCheck()
arrInput = Array("AAA","BBB","CCC","DDD","BBB","CCC","AAA","DDD","AAA")
arrCheck = Array("AAA","BBB","CCC")
For Each Item In arrInput
If UBound(Filter(arrCheck, Item)) = -1 Then
ReDim Preserve arrCheck(UBound(arrCheck) + 1)
arrCheck(UBound(arrCheck)) = Item
End If
Next
End Sub