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
|
|
|
|
|
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
|
|
|
|
|
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
|
|
|
|
|