Ir para conteúdo
Fórum Script Brasil
  • 0

ler arquivos de um diretório, e ler conteudo do arquivo


jow

Pergunta

Galera estou precisando de uma ajuda ... tenho o seguinte cenário ::

Preciso lê todos os arquivos de um diretório .... ok já consigo fazer isso ...

Preciso lê o conteudo de cada arquivo ou seja, leu um passou para o próximo .... Está lendo só o primeiro várias vezes .....

A seguir o meu código

<% Dim array(4)

Dim strPath
Dim objFSO
Dim objFolder
Dim objItem
Dim ObjFile
Dim ObjStream
Const forReading = 1
Const forWriting = 2
Const forAppending = 8
' O diretório que vai ser listado:

strPath = "arquivo/"

' Vamos criar aqui o FileSystemObject:

Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
' ler o conteúdo do diretório
Set objFolder = objFSO.GetFolder(Server.MapPath(strPath))
%>

Conteúdo do diretório: <strong><%= strPath %></strong><br>

<%

For Each objItem In objFolder.Files
variavel = objItem.Name

response.write variavel



    for i = LBound(array) to UBound(array)
    arquivo = server.mappath(".") & "\" & variavel

    'response.write teste
    'next
     
    'Instância o objeto FSO. 
    Set Fso = CreateObject("Scripting.FileSystemObject") 
     
    'O método GetFile retorna o arquivo existente. 
    Set ObjFile = Fso.GetFile(arquivo) 
    'response.write arquivo & "<br>"

    'O método OpenAsTextStream abre o arquivo como sendo um fluxo de texto. 
    Set objStream = ObjFile.OpenAsTextStream(forReading,false) 
     
    'Looping para varrer todas as linha do arquivo. 
    While Not ObjStream.AtEndOfStream 
     
    'O método Readline lê uma linha de um arquivo 
    Linha = Linha & ObjStream.Readline & "<br>" 
    Wend 
     
    'Mostra o conteúdo. 
    Response.write Linha & "<br>"

    Next
Next
' Feito !!! Agora é fechar as variáveis
Set objItem = Nothing
Set objFolder = Nothing
Set objFSO = Nothing
%>
</TABLE>

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Ok galera eu já consegui resolver ... Agora estou com outro problema ... Preciso ler a data desses aquivos como posso fazer isso ... Exemplo

No arquivo eu tenho :::

ID DATA HORA

001 08022009 081000

002 09022009 080000

003 10022009 081100

Link para o comentário
Compartilhar em outros sites

  • 0

com base nisso...

001 08022009 081000
002 09022009 080000
003 10022009 081100
function data_(var)
dia=left(var,2)
mes=right(left(var,4),2)
ano=right(var,4)
data_=dia&"/"&mes&"/"&ano
end function

function hora_(var)
hora=left(var,2)
min=right(left(var,4),2)
seg=right(var,2)
hora_=hora&":"&min&":"&seg
end function

function vars(var)
vars=split(var," ")
end function

ai ...

poderia...

response.write "data="&data_(vars("001 08022009 081000")(1))

mais ou menos isso..

Link para o comentário
Compartilhar em outros sites

  • 0

Cara adaptei o q você fez e consegui apenas lendo as posições ...

dia=right(left(Linha,7),2)
mes=right(left(Linha,9),2)
ano=right(left(Linha,13),4)
Valeu muito bom ... Aproveitando o tópico ... Seguinte eu tenho uma busca onde recebe a data de inicio e a data final, como eu faço para comparar as datas e obter o intervalo delas ... O q eu fiz até agora ... converti a data de inicio e a final para date, o mesmo processo eu fiz com a data do arquivo ... e depos fiz um replace da data de inicio e a final. Assim a todas as datas ficaram no mesmo formato ::
29012009
e comparei assim ..
if data_inicio >= Data and data_fim <= Data then
            Response.write "<br>" & Linha & "<br>" 
end if

ele até traz as datas mas não compara em formato de data ...

Enfim como eu faço a comparação para obter o intervalo ???

Editado por jow
Link para o comentário
Compartilhar em outros sites

  • 0
Cara adaptei o q você fez e consegui apenas lendo as posições ...

dia=right(left(Linha,7),2)
mes=right(left(Linha,9),2)
ano=right(left(Linha,13),4)
Valeu muito bom ... Aproveitando o tópico ... Seguinte eu tenho uma busca onde recebe a data de inicio e a data final, como eu faço para comparar as datas e obter o intervalo delas ... O q eu fiz até agora ... converti a data de inicio e a final para date, o mesmo processo eu fiz com a data do arquivo ... e depos fiz um replace da data de inicio e a final. Assim a todas as datas ficaram no mesmo formato ::
29012009
e comparei assim ..
if data_inicio >= Data and data_fim <= Data then
            Response.write "<br>" & Linha & "<br>" 
end if

ele até traz as datas mas não compara em formato de data ...

Enfim como eu faço a comparação para obter o intervalo ???

por acaso vcc tentou usar a função que criei de outra forma???? porque sua adaptação foi so tira as coisas da function...

para comparar as data tu vai ter q usar mais duas funções..

cdate(data_("29012009"))' converte pra data

e depois use datediff pra comparar.....

Link para o comentário
Compartilhar em outros sites

  • 0

<%
Dim strPath
Dim objFSO
Dim objFolder
Dim objItem
Dim ObjFile
Dim ObjStream
Const forReading = 1
Const forWriting = 2
Const forAppending = 8

' O diretório que vai ser listado:
strPath = "arquivo/"

' Vamos criar aqui o FileSystemObject:
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")

' ler o conteúdo do diretório
Set objFolder = objFSO.GetFolder(Server.MapPath(strPath))


For Each objItem In objFolder.Files
    variavel = objItem.Name
    
    arquivo = server.mappath(".") & "\arquivo\" & variavel
    
    'Instância o objeto FSO. 
    Set Fso = CreateObject("Scripting.FileSystemObject") 
     
    'O método GetFile retorna o arquivo existente. 
    Set ObjFile = Fso.GetFile(arquivo) 
     
    'O método OpenAsTextStream abre o arquivo como sendo um fluxo de texto. 
    Set objStream = ObjFile.OpenAsTextStream(forReading,false) 
    
    'Looping para varrer todas as linha do arquivo. 
    While Not ObjStream.AtEndOfStream 
     
        'O método Readline lê uma linha de um arquivo 
        Linha = ObjStream.Readline  

        ' Tira o espaço da Linha dos arquivos 
        Linha = replace(Linha,"    ","")

        ' Captura o id no arquivo
        id_user = (mid(Linha,1,5))

        ' Captura a data no arquivo
        nome_user = trim(mid(Linha,6,8))
        
        
    Wend

Next

'Fecha o arquivo. 
objStream.Close 

'Destruíndo objetos 
Set Fso = nothing 
Set objStream = nothing

' Feito !!! Agora é fechar as variáveis
Set objItem = Nothing
Set objFolder = Nothing
Set objFSO = Nothing

%>

Cara esse script ele lê todos os arquivos do diretório, no meu caso eu tive que separar o conteudo em variáveis e tirar os espaços q existem no arquivo txt, para ter um padrão e assim podere pegar apenas o q eu quero, e trabalhar em variáveis, ou seja em variaveis eu tenho o conteúdo q eu quero ... No meu caso eu tenho exatamente o q eu preciso, assim eu armazeno em um banco de dados as variáveis q eu quero usar ...

No script eu só coloquei o principal objetivo lê todos os arquivos do diretório ... Só postei o simples, com o código todo comentado ...

Do jeito q está será útil para muita gente ...

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...