 |
ActiveDelphi .: O site do programador Delphi! :.
|
| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
wiihbelo Novato

Registrado: Sábado, 28 de Janeiro de 2012 Mensagens: 50
|
Enviada: Seg Dez 28, 2015 3:39 pm Assunto: Função COPY POS |
|
|
Pessoal estou tentando compilar um fonte de NFe de teste do ACBR e nao esta dando um erro na função de copy a algo que tenho que declarar na uses, todos topicos que olhei a logica esta correta segue a função abaixo;
function ReplaceStr( Fonte, De, Para:AnsiString ):AnsiString;
begin
Result:=fonte;
while pos(de,result) <> 0 do
Result := Copy(Result,1, pos(de,result)-1 )+Para+copy(result,pos(de,result)+length(de),length(result) );
end;
[Error] Unit1.pas(573): Missing operator or semicolon
[Error] Unit1.pas(573): Incompatible types: 'String' and 'inflate_codes_mode' |
|
| Voltar ao Topo |
|
 |
strak2012 Colaborador


Registrado: Segunda-Feira, 13 de Janeiro de 2014 Mensagens: 1518 Localização: Maceió - AL
|
Enviada: Seg Dez 28, 2015 3:58 pm Assunto: Re: Função COPY POS |
|
|
| wiihbelo escreveu: | Pessoal estou tentando compilar um fonte de NFe de teste do ACBR e nao esta dando um erro na função de copy a algo que tenho que declarar na uses, todos topicos que olhei a logica esta correta segue a função abaixo;
function ReplaceStr( Fonte, De, Para:AnsiString ):AnsiString;
begin
Result:=fonte;
while pos(de,result) <> 0 do
Result := Copy(Result,1, pos(de,result)-1 )+Para+copy(result,pos(de,result)+length(de),length(result) );
end;
[Error] Unit1.pas(573): Missing operator or semicolon
[Error] Unit1.pas(573): Incompatible types: 'String' and 'inflate_codes_mode' |
tente não usar o proprio result nos copy
Tente algo do tipo:
| Código: | function ReplaceStr( Fonte, De, Para:AnsiString ):AnsiString;
begin
while pos(de,fonte) <> 0 do
Result := Copy(fonte,1, pos(de,fonte)-1 )+Para+copy(fonte,pos(de,fonte)+length(de),length(fonte));
end; |
_________________ Tudo podemos quando tudo sabemos! |
|
| Voltar ao Topo |
|
 |
wiihbelo Novato

Registrado: Sábado, 28 de Janeiro de 2012 Mensagens: 50
|
Enviada: Seg Dez 28, 2015 5:09 pm Assunto: |
|
|
Cara mesmo usando outra sintaxe não esta aceitando ele retorna o mesmo erro parando o cursor em
Result := Copy(fonte,1, pos(de,fonte)-1 )+Para+copy(fonte,pos(de,fonte)+length(de),length(fonte)); |
|
| Voltar ao Topo |
|
 |
strak2012 Colaborador


Registrado: Segunda-Feira, 13 de Janeiro de 2014 Mensagens: 1518 Localização: Maceió - AL
|
Enviada: Seg Dez 28, 2015 6:23 pm Assunto: |
|
|
| wiihbelo escreveu: | Cara mesmo usando outra sintaxe não esta aceitando ele retorna o mesmo erro parando o cursor em
Result := Copy(fonte,1, pos(de,fonte)-1 )+Para+copy(fonte,pos(de,fonte)+length(de),length(fonte)); |
remova o
while pos(de,fonte) <> 0 do
Uma vez que fonte não vai ser alterado e que de pode estar em fonte logo isso causaria um loop infinito _________________ Tudo podemos quando tudo sabemos! |
|
| Voltar ao Topo |
|
 |
strak2012 Colaborador


Registrado: Segunda-Feira, 13 de Janeiro de 2014 Mensagens: 1518 Localização: Maceió - AL
|
Enviada: Seg Dez 28, 2015 6:29 pm Assunto: |
|
|
tente usar desta forma
| Código: | function ReplaceStr( Fonte, De, Para:AnsiString ):AnsiString;
begin
Result := ansistring(StringReplace(Fonte, de, para,[ rfReplaceAll {, rfIgnoreCase} ]));
end; |
_________________ Tudo podemos quando tudo sabemos! |
|
| Voltar ao Topo |
|
 |
wiihbelo Novato

Registrado: Sábado, 28 de Janeiro de 2012 Mensagens: 50
|
Enviada: Seg Dez 28, 2015 7:36 pm Assunto: |
|
|
| strak2012 escreveu: | tente usar desta forma
| Código: | function ReplaceStr( Fonte, De, Para:AnsiString ):AnsiString;
begin
Result := ansistring(StringReplace(Fonte, de, para,[ rfReplaceAll {, rfIgnoreCase} ]));
end; |
|
Essa função funcionou porem as linhas onde tem o COPY nao funciona exemplo
CNPJ := copy(Chave,7,14);
para copiar da 7 a 14 .. |
|
| Voltar ao Topo |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|