USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Ultimo Arquivo
Moreti
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 16/06/2009 07:25 hs            
Pessoal, estou gerando arquivo texto em um diretório c:Projeto, esse arquivo se chama Lista.
O pessoal aqui está querendo que seje gerado vários arquivos no mesmo diretório, então ficaria assim: Lista0, Lista1, Lista2, Lista3 .... etc.
O Lista0 estou gerando, não consigo gerar os outros alguém pode me ajudar ?
Sei que tenho que entrar no diretório para verificar o ultimo arquivo e somar + 1, mas como ?
 
Obrigado
 
   
DeFreitas
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 16/06/2009 08:48 hs            
Bom dia.

Veja se essa função pode lhe ajudar:

Public Function ArquivoSequencial(sDiretorio As String, sNomeArquivo As String) As String
    Dim iCount As Integer
    Dim sArquivo As String
    
    sDiretorio = sDiretorio & IIf((Right(sDiretorio, 1) = "\"), Empty, "\")

    iCount = 0

    Do While (True)
       iCount = iCount + 1
       sArquivo = Mid(sNomeArquivo, 1, Len(sNomeArquivo) - 4) & Format(iCount, "000") & "." & Right(sNomeArquivo, 3)

       If (Dir(sDiretorio & sArquivo) = "") Then
           ArquivoSequencial = sArquivo
           Exit Do
       End If
    Loop
End Function

'Como testar a rotina:

sArquivoNovo = ArquivoSequencial("C:\Projeto", "Lista")

MsgBox sArquivoNovo

OBS.: se o arquivo que estiver trabalhando não tiver extensão, retire essa parte da rotina:

& "." & Right(sNomeArquivo, 3)

Até mais.










TÓPICO EDITADO
 
ghost_jlp
Pontos: 2843 Pontos: 2843 Pontos: 2843 Pontos: 2843
SÃO PAULO
SP - BRASIL
Postada em 16/06/2009 22:23 hs            
Olá, tudo bom?

Adicionando a biblioteca "Microsoft Scripting Runtime" (Menu 'Project...References') vc pode colocar como o código abaixo. Segue exemplo

'Declarações
Private Const c_nome_arq = "Lista" 'Nome do arquivo
Dim objeto As Scripting.FileSystemObject
Dim pasta As Scripting.Folder
Dim arquivo As Scripting.File
Dim numero_arq As Long
Dim numero As Long
Dim nome_arq As String
Dim texto As String

Private Sub Form_Click()
On Error Resume Next 'Recomendado somente neste exemplo
Set objeto = New FileSystemObject
Set pasta = objeto.GetFolder("c:\Teste")

For Each arquivo In pasta.Files
    numero = CLng(Replace(Replace(arquivo.Name, "." & objeto.GetExtensionName(arquivo.Path), ""), _
    c_nome_arq, "", , , vbTextCompare))
    If numero > numero_arq Then numero_arq = numero
Next arquivo

numero_arq = numero_arq + 1
nome_arq = c_nome_arq & numero_arq

Open "c:\Teste" & nome_arq For Output As #1
    Print #1, "Texto do arquivo"
Close #1
End Sub

É um outro jeito.

abs
TÓPICO EDITADO
   
Página(s): 1/1    

CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página