
Eu sempre escrevo dados 【AAA, BBB, CCC】 em um arquivo CSV.
Gostaria também de escrever outros dados (por exemplo: DDD) se houver em um arquivo de texto.
Uma matriz:
arr = Array("AAA", "BBB", "CCC")
Arquivo de texto (leitura):
AAA
BBB
CCC
DDD
BBB
CCC
AAA
DDD
AAA
Código:
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
Arquivo CSV (gravação):
AAA, BBB, CCC, DDD
Qual é a melhor maneira de fazer isso?
Responder1
Função de filtro (Visual Basic)
Retorna uma matriz baseada em zero contendo um subconjunto de uma matriz String com base em critérios de filtro especificados.
- Use a
filter
função e verifique o tamanho do array resultante com Ubound(). - Use
Redim preserve
para expandir sua matriz em 1 e adicionar o valor do texto verificado recentemente
Aqui está um pequeno exemplo geral
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