Encuentre múltiples valores de una hoja de cálculo entre múltiples archivos .txt

Encuentre múltiples valores de una hoja de cálculo entre múltiples archivos .txt

Necesito encontrar 60 valores únicos entre 17 archivos .txt. Esto suele ser una simple "búsqueda" y copia, cuando recibo los valores uno o dos a la vez, lo que obviamente no va a funcionar para mí con una lista tan grande.

La hoja de cálculo tiene alrededor de 60 números de cuenta. Necesito ubicar cada número de cuenta en uno de los 17 archivos .txt, para poder copiar esa fila de cuenta en otro archivo .txt para editarlo o completarlo. Los archivos .txt están en un archivo ftp, por lo que debo tener cuidado de no alterar los archivos .txt en absoluto, aunque podría copiarlos a Excel, si fuera necesario.

Sé que existen funciones de búsqueda, pero aún no estoy muy familiarizado con ellas y no estoy seguro de qué necesito exactamente. ¡Agradecería un poco de ayuda con este! gracias, l.

Respuesta1

He creado un guión que puede resultarle útil.

Crea una carpeta llamadacuentasy guarde el script allí con la extensión .vbs.

Cree una carpeta en la carpeta de cuentas llamadaaporte. copie todos los archivos de cuentas que desea buscar en la carpeta de entrada; todos deben ser archivos .txt o serán ignorados.

Crea un archivo llamadonúmeros_de_cuenta.txty enumere cada número de cuenta allí en una línea separada. El script debe abrir cada archivo, leer una línea y compararla con cada número de cuenta. Los resultados de la búsqueda se almacenan encuentas_encontradas.txt. Se suministra sin garantía, úselo bajo su propia responsabilidad. Espero eso ayude.

' find all occurrances of an account number in a number of files
' place all account txt files into input folder
' accounts_found.txt is created if it is missing
' by 'Robert' 2017 - hereby placed into the Public Domain

' set some Constants here
Const ForRead      = 1
Const ForWrite     = 2
Const ForAppend    = 8
Const OverWrite    = True
Const NoOverWrite  = False

Dim acct_num_list(100) ' max records for the array, num_accounts variable counts them anyway

inputFolderName    = "input\"               ' the folder where the txt files are
outputFileName     = "accounts_found.txt"   ' the output file for matched records
accountsFileName   = "account_numbers.txt"  ' the file which contains account numbers to search for

' = = = Start of Code = = =

Set WshShell = WScript.CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")

Set outFile = objFSO.OpenTextFile(outputFileName, ForWrite, OverWrite)

Set objInputFolder = objFSO.GetFolder(inputFolderName)
Set sFileCollection = objInputFolder.Files

Set accounts_file = objFSO.OpenTextFile(accountsFileName, ForRead)

num_accounts = 0
DO While Not accounts_file.AtEndOfStream
    acct_num_list(num_accounts) = accounts_file.ReadLine
    num_accounts = num_accounts + 1
Loop

accounts_file.Close

For Each objFile in sFileCollection
    If UCASE(objFSO.GetExtensionName(objFile)) = "TXT" then
        Set sourceFile = objFSO.OpenTextFile(inputFolderName & objFile.Name, ForRead)
        Do While Not sourceFile.AtEndOfStream
            curr_line = sourceFile.ReadLine
            For counter = 0 to num_accounts
                if instr(1, curr_line, acct_num_list(counter),1) >= 1 then
                    outFile.WriteLine curr_line
            End If
            Next    
       Loop 
    End If    
Next
' = = = End Of File = = =

información relacionada