
Siempre escribo datos 【AAA, BBB, CCC】 en un archivo CSV.
También me gustaría escribir otros datos (por ejemplo: DDD) si los hay en un archivo de texto.
Una matriz:
arr = Matriz("AAA", "BBB", "CCC")
Archivo de texto (leer):
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
Archivo CSV (escribir):
AAA, BBB, CCC, DDD
¿Cuál es la mejor manera de hacer esto?
Respuesta1
Función de filtro (Visual Basic)
Devuelve una matriz de base cero que contiene un subconjunto de una matriz de cadenas según los criterios de filtro especificados.
- Utilice la
filter
función y verifique el tamaño de la matriz resultante con Ubound(). - Úselo
Redim preserve
para expandir su matriz en 1 y agregar el valor de texto verificado recientemente
He aquí un pequeño ejemplo general.
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