Duvida OS-DIR e Caracteres Especiais

Discussão em 'Progress 4GL' iniciado por jc01, Fevereiro 27, 2015.

  1. jc01

    jc01 Membro Participativo

    O que eu quero fazer é, através de um diretório raiz, percorrer este diretório (pastas e subpastas) em busca de todos os arquivos contidos nele (já consegui fazer). Pra isso usei o comando OS-DIR. O problema é que se eu tiver alguma pasta contendo algum caractere especial no nome (por exemplo, pasta Relatório), o OS-DIR está me retornando Relat¼rio, e isso está afetando o resultado final do meu programa. Há alguma forma de resolver esse problema?

    Pra simular o meu problema, crie o seguinte diretório: C:\pasta\relatório. Logo após, execute o seguinte código:

    Código:
    DEF TEMP-TABLE tt-files NO-UNDO
            FIELD relativename AS CHARACTER
            FIELD absolutename AS CHARACTER
            FIELD attribs AS CHARACTER
            INDEX byabsolutename IS PRIMARY absolutename.
     
    INPUT FROM OS-DIR("c:/pasta").
    REPEAT:
        CREATE tt-files.
        IMPORT tt-files.
    END.
     
    FOR EACH tt-files:
        DISP tt-files.absolutename FORMAT "x(70)".
    END.
  2. LFBuozi

    LFBuozi Membro Participativo

    A solução é o ' CONVERT SOURCE "iso8859-1" ', então seu código fica assim:
    Código:
    DEF TEMP-TABLE tt-files NO-UNDO
            FIELD relativename AS CHARACTER
            FIELD absolutename AS CHARACTER
            FIELD attribs AS CHARACTER
            INDEX byabsolutename IS PRIMARY absolutename.
    INPUT FROM OS-DIR("C:/pasta") CONVERT SOURCE "iso8859-1".
    REPEAT:
        CREATE tt-files.
        IMPORT tt-files.
    END.
    FOR EACH tt-files:
        DISP tt-files.absolutename FORMAT "x(70)".
    END.
    
    lwazevedo e jc01 curtiram isso.
  3. jc01

    jc01 Membro Participativo

    Cara, é isso mesmo. Muito obrigado.

Compartilhe esta Página