Por que eu desejaria saber o conteúdo de um arquivo texto fora da minha aplicação, seja MS Excel, MS Access, MS Outlook, etc...?
Talvez precisemos medir, controlar, ou acompanhar um processo que será administrado por nossa aplicação, mas que ocorra fora dela.
Mas imagine o seguinte: Um processo em andamento, sendo executado através de Shell - Um código externo, fora da nossa aplicação, o qual não pode ser controlado através do nosso código VBA.Como medir em que passo está?Como saber se está dando certo?Como saber se já terminou?
Isso é bem comum, quando por exemplo executamos um Script SQL. E ao invés de usarmos um arquivo BATCH para processarmos diversos Scripts, desejamos controlar o andamento através de nossa aplicação MS Access.Neste caso, e na maioria dos demais, podemos solicitar ao Script que retorne alguma informação como a saída do resultado do processamento para um arquivo texto. Após a análise do conteúdo deste arquivo, continuamos com a seqüência seguinte.
Ok, já entendi, mas como verificarei o conteúdo do arquivo texto?
Segue: Para usar essa função é necessário fazer referência ao Microsoft Scripting Runtime (scrrun.dll)
Function rTxtFile (sSearchText As String, sFileName As String) As Boolean
' Date: 10/04/2011 - 16:14.
' Application:
' Functionality: Detecta uma palavra dentro do arquivo texto.
Dim oFSO As New FileSystemObject
Dim oFS As Variant
Dim sText As Variant
Dim nParticula As Variant
Dim Encontrou As Integer
Set oFS = oFSO.OpenTextFile(sFileName)
Let Encontrou = 0
Do Until oFS.AtEndOfStream
Let sText = UCase(oFS.ReadLine)
Let nParticula = InStr(1, sText, sSearchText, vbTextCompare)
If nParticula <> 0 Then
Let Encontrou = Encontrou + 1
End If
Loop
If Encontrou = 0 Then
Let rTxtFile = False
Else
Let rTxtFile = True
End If
End Function
Como usar:
Sub iii()Let encontrou = rTxtFile("Error", "C:\Bernardes\Scripts\log_100413134457.txt")End Sub
Tags: VBA, tips, Microsoft Scripting Runtime, FileSystemObject, script, scrrun.dll, SQL, text, file, arquivo, batch,
Nenhum comentário:
Postar um comentário