MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    Alterando uma informação dentro de um arquivo texto

    avatar
    johnaccess
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 01/11/2010

    Alterando uma informação dentro de um arquivo texto Empty Alterando uma informação dentro de um arquivo texto

    Mensagem  johnaccess em 14/8/2014, 20:21

    Há dias estava procurando por uma função que permitisse fazer alteração de um determinado valor dentro de um arquivo texto, após pesquisas, conclui esta função que segue, caso tenha interesse fiquem à vontade...

    'call alteraArquivo("C:\EJI\Aguia\Águia0001.ini", "CodConta=1", "CodConta=3")
    Sub alteraArquivo(sArquivo1 As String, sTextoOld As String, sTextoNew As String)

    10 On Error GoTo alteraArquivo_Error

    Dim msg As String
    Dim sArquivo2 As String, strLinha1 As String, strLinha2 As String
    Dim nArquivo1 As String, nArquivo2 As String, tDigitos As Integer, tDigitosCopia As Integer

    'Constrói o nome do novo arquivo
    20 tDigitos = Len(sArquivo1)
    30 tDigitosCopia = tDigitos - 4
    40 sArquivo2 = Mid(sArquivo1, 1, tDigitosCopia)
    50 sArquivo2 = sArquivo2 & ".new"
    'Copia os dados do arquivo de origem para o novo arquivo
    60 Open sArquivo1 For Input As #1
    70 Open sArquivo2 For Output As #2
    80 Do While Not EOF(1)
    90 Line Input #1, strLinha1
    100 If InStr(strLinha1, sTextoOld) > 0 Then
    110 strLinha2 = ReplaceStr(strLinha1, sTextoOld, sTextoNew, 0)
    120 Print #2, Trim(strLinha2)
    130 Else
    140 Print #2, Trim(strLinha1)
    150 End If
    160 Loop
    170 Close #1
    180 Close #2

    'Deleta o arquivo de origem
    190 If Len(Dir(sArquivo1)) <> 0 Then
    200 Kill sArquivo1
    210 End If

    'Faz uma cópia do arquivo modificado para o nome inicial
    'Deleta o arquivo .new
    220 If Len(Dir(sArquivo2)) <> 0 Then
    230 tDigitos = Len(sArquivo2)
    240 tDigitosCopia = tDigitos - 4
    250 nArquivo2 = Mid(sArquivo2, 1, tDigitosCopia)
    260 FileCopy sArquivo2, nArquivo2 & ".ini"
    270 If Len(Dir(sArquivo2)) <> 0 Then
    280 Kill sArquivo2
    290 End If
    300 End If

    310 On Error GoTo 0
    320 Exit Sub

    alteraArquivo_Error:

    330 msg = "Ocorreu um erro na aplicação." & vbCr
    340 msg = msg & " Relate os dados abaixo ao suporte." & vbCr
    350 msg = msg & " Erro nº: " & Err.Number & vbCr
    360 msg = msg & " Descrição do erro: " & Err.Description & vbCr
    370 msg = msg & " Módulo: " & "mdl_temp_2" & vbCr
    380 msg = msg & " Procedimento: " & "alteraArquivo" & vbCr
    390 msg = msg & " Linha: " & Erl & "."
    400 MsgBox msg, vbCritical, "ATENÇÃO !!"

    End Sub
    ahteixeira
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6957
    Registrado : 15/03/2013

    Alterando uma informação dentro de um arquivo texto Empty Re: Alterando uma informação dentro de um arquivo texto

    Mensagem  ahteixeira em 15/8/2014, 10:48

    Olá, obrigado pela partilha, todas são bem vindas, assim o fórum fica mais enriquecido.
    ByPhone
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7783
    Registrado : 05/11/2009

    Alterando uma informação dentro de um arquivo texto Empty Re: Alterando uma informação dentro de um arquivo texto

    Mensagem  Alexandre Neves em 17/8/2014, 22:04

    Movido para a sala de repositório


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

      Data/hora atual: 3/12/2020, 19:53