
Я всегда записываю данные 【AAA, BBB, CCC】в CSV-файл.
Я бы хотел также записать другие данные (например: DDD), если они есть в текстовом файле.
Массив:
arr = Массив("AAA", "BBB", "CCC")
Текстовый файл (чтение):
AAA
BBB
CCC
DDD
BBB
CCC
AAA
DDD
AAA
Код:
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 (запись):
AAA, BBB, CCC, DDD
Как лучше всего это сделать?
решение1
Функция фильтра (Visual Basic)
Возвращает массив с отсчетом от нуля, содержащий подмножество массива строк на основе указанных критериев фильтрации.
- Используйте
filter
функцию и проверьте размер полученного массива с помощью Ubound(). - Используйте
Redim preserve
для расширения массива на 1 и добавления недавно проверенного текстового значения.
Вот небольшой общий пример
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