1

Я всегда записываю данные 【AAA, BBB, CCC】 в файл CSV.
Я хотел бы также написать другие данные (например:DDD), если есть в текстовом файле.

Массив:
arr = Array("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 ответ1

0

Функция фильтра (Visual Basic)
Возвращает массив с нулями, содержащий подмножество массива String, основанное на указанных критериях фильтрации.

  1. Используйте функцию filter и проверьте размер полученного массива с помощью Ubound().
  2. Используйте 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .