MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

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


2 participantes

    [Resolvido]Não reconhece cedilha em nome de arquivo

    thiagomcosta
    thiagomcosta
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 377
    Registrado : 23/01/2017

    [Resolvido]Não reconhece cedilha em nome de arquivo Empty [Resolvido]Não reconhece cedilha em nome de arquivo

    Mensagem  thiagomcosta 15/10/2018, 17:12

    Estou com o seguinte caso:

    Pego o nome do arquivo através dos camandos abaixo (uma adaptação, na verdade ele varre a pasta, joga numa array, etc):
    Código:
    Set fObject = CreateObject("Scripting.FileSystemObject")
    Set vPastaFormandos = fObject.GetFolder(vPasta)
    For Each vAtual In vPastaFormandos.Files
        vNomeArquivo = vAtual.Name
    Next

    Tem um dos arquivos que se chama:
    Código:
    660_18095__thumbnail_mayra criança.jpg

    Mas o retorno é:
    Código:
    660_18095__thumbnail_mayra crianc¸a.jpg

    Tentei mudar, sem sucesso, o retorno com:
    Código:
    replace(vNomeArquivo, "c¸", "ç")

    Consegui identificar o caractere após o c como ASCII(184),  através da função
    Código:
    For i=1 to Len(vNomeArquivo)
     Debug.Print(Asc(Mid(vNomeArquivo, i, 1)))
    Next

    Mas se eu colocar uma condicional
    Código:
    Mid(vNomeArquivo, i, 1) = Chr(184)
    ou
    Código:
    Mid(vNomeArquivo, i, 1) = "¸"
    Ele não localiza o caractere

    Alguém já passou por algo semelhante?
    Alguma sugestão?


    Última edição por thiagomcosta em 29/10/2018, 17:32, editado 1 vez(es)
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    [Resolvido]Não reconhece cedilha em nome de arquivo Empty Re: [Resolvido]Não reconhece cedilha em nome de arquivo

    Mensagem  JPaulo 15/10/2018, 17:45

    Se você inserir o debug após o obter o nome do ficheiro, o que é que aparece na janela immediate ?

    Código:
    vNomeArquivo = vAtual.Name
    Debug.Print vNomeArquivo


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Não reconhece cedilha em nome de arquivo Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Não reconhece cedilha em nome de arquivo Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Não reconhece cedilha em nome de arquivo Folder_announce_new Instruções SQL como utilizar...
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    [Resolvido]Não reconhece cedilha em nome de arquivo Empty Re: [Resolvido]Não reconhece cedilha em nome de arquivo

    Mensagem  JPaulo 15/10/2018, 17:50

    Acredito que assim resolverá;

    Código:
    Set fObject = CreateObject("Scripting.FileSystemObject")
    Set vPastaFormandos = fObject.GetFolder(vPasta)
    For Each vAtual In vPastaFormandos.Files
        vNomeArquivo = RemoveAccents(vAtual.Name)
        Debug.Print vNomeArquivo
    Next

    Código:
    Public Function RemoveAccents(sInputString As String) As String
        On Error GoTo Error_Handler
        Dim aNotAllowed()        As String
        Dim aReplacements()      As String
        Dim i                    As Long
     
        aNotAllowed = Split("à,á,â,ã" & _
                            ",ä,å,ç,è,é,ê,ë,ì,í,î,ï,ð,ò,ó,ô,õ,ö,ù,ú,û,ü,ý,ÿ", ",")
        aReplacements = Split("a,a,a" & _
                              ",a,a,a,c,e,e,e,e,i,i,i,i,o,o,o,o,o,o,u,u,u,u,y,y", ",")
     
        If UBound(aNotAllowed) <> UBound(aReplacements) Then
            MsgBox "The number of 'Not allowed characters' does not match the number of" & _
                  " 'Replacements'.", vbCritical Or vbOKOnly, "Operation Terminated"
            GoTo Error_Handler_Exit
        End If
     
        RemoveAccents = sInputString
        For i = 0 To UBound(aNotAllowed)
            RemoveAccents = Replace(RemoveAccents, aNotAllowed(i), aReplacements(i))
        Next i
     
    Error_Handler_Exit:
        On Error Resume Next
        Exit Function
     
    Error_Handler:
        MsgBox "The following error has occured" & vbCrLf & vbCrLf & _
              "Error Number: " & Err.Number & vbCrLf & _
              "Error Source: RemoveAccents" & vbCrLf & _
              "Error Description: " & Err.Description & _
              Switch(Erl = 0, "", Erl <> 0, vbCrLf & "Line No: " & Erl) _
              , vbOKOnly + vbCritical, "An Error has Occured!"
        Resume Error_Handler_Exit
    End Function


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Não reconhece cedilha em nome de arquivo Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Não reconhece cedilha em nome de arquivo Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Não reconhece cedilha em nome de arquivo Folder_announce_new Instruções SQL como utilizar...
    thiagomcosta
    thiagomcosta
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 377
    Registrado : 23/01/2017

    [Resolvido]Não reconhece cedilha em nome de arquivo Empty Re: [Resolvido]Não reconhece cedilha em nome de arquivo

    Mensagem  thiagomcosta 15/10/2018, 17:59

    Pior que continua na mesma.

    Fiz um teste, inclui antes um outro cedilha.
    O retorno foi o seguinte:
    Código:
    FormatFactory660_18095_INFANTIL_thumbnail_mayra criançc¸a.jpg

    E usando a função RemoveAccents()
    Código:
    FormatFactory660_18095_INFANTIL_thumbnail_mayra criancc¸a.jpg

    Ou seja, a função está funcionando.


    Este arquivo vem de um outro sistema. Vou entrar em contato com o desenvolvedor de lá para ver como que o arquivo é subido pelo cliente e depois como é baixado por nós aqui. De repente dá uma luz para resolver este problema.
    thiagomcosta
    thiagomcosta
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 377
    Registrado : 23/01/2017

    [Resolvido]Não reconhece cedilha em nome de arquivo Empty Re: [Resolvido]Não reconhece cedilha em nome de arquivo

    Mensagem  thiagomcosta 29/10/2018, 17:31

    Só para dar um retorno ao fórum.
    Não consegui resolver o problema com o Access e VBA.

    Criei uma aplicação em c# que já faz toda a manipulação dos arquivos necessárias. Pelo C# eu consigo identificar os caracteres e renomear os arquivos. Deixei a aplicação semelhante aos formulários que uso do Access e criei um botão para abrir o aplicativo. Os usuários nem percebem que estão trabalhando fora do Access, acham que é uma janela nova que abriu.

    Problema resolvido, usuário feliz e o mistério dos caracteres contínua.

    Conteúdo patrocinado


    [Resolvido]Não reconhece cedilha em nome de arquivo Empty Re: [Resolvido]Não reconhece cedilha em nome de arquivo

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 26/4/2024, 17:39