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

Registrado: Quarta-Feira, 11 de Fevereiro de 2009 Mensagens: 91
|
Enviada: Qui Ago 13, 2009 4:10 pm Assunto: Importando 'ç' e acentos RESOLVIDO |
|
|
Ola pessoal,
to com um problema na minha importação quando importo um arquivo q dentro dele tem 'ç' ou acentos da erro
qual codigo coloco para o delphi reconher isso
meu codigo:
Var
Entrada: string;
Txt: Textfile;
begin
if OpenDialog.Execute then
begin
DM.CdsProduto.EmptyDataSet;
DM.CdsProduto.Open;
AssignFile(Txt,OpenDialog.FileName);
Reset(Txt);
While not Eoln(Txt) do
begin
Readln(Txt,Entrada);
DM.CdsProduto.Append;
DM.CdsProduto.FieldByName('ID_PRODUTO').Value:= Copy(Entrada,02,9);
DM.CdsProduto.FieldByName('CODIGO_BARRAS').Value:= Copy(Entrada,29,13);
DM.CdsProduto.FieldByName('DES_PRODUTO').Value:= Copy(Entrada,72,60);
DM.CdsProduto.FieldByName('PRE_VENDA').Value:= Copy(Entrada,202,4) + ',' + Copy(Entrada,206,2);
DM.CdsProduto.Post;
DM.CdsProduto.ApplyUpdates(0);
end;
end;
Editado pela última vez por Raphael007 em Ter Ago 18, 2009 10:14 am, num total de 1 vez |
|
| Voltar ao Topo |
|
 |
aeciovc Colaborador

Registrado: Terça-Feira, 18 de Dezembro de 2007 Mensagens: 1042 Localização: Recife
|
Enviada: Qui Ago 13, 2009 5:20 pm Assunto: |
|
|
| vc ta trabalhando com XML?? ou txt comum? |
|
| Voltar ao Topo |
|
 |
johnny-walker Moderador


Registrado: Sábado, 4 de Outubro de 2003 Mensagens: 10653 Localização: Contagem/MG - BRAZIL
|
Enviada: Sex Ago 14, 2009 10:14 am Assunto: |
|
|
Qual seu banco de dados e qual o server que vc está utilizando, interbase ou firebird???
O interbase se vc fizer a importacao com ele certamente dará problemas, pois nao acredito que nao tenha suporte, seu banco tera de ficar com o collate WIN1252 para aceitar caracteres ansi...
Com o driver do interbase vc nao consegue mesmo o banco sendo do firebird,pelo menos no 6, já testei e nao funcionou, mas com o Firebird 1.5 e superior nao tive problemas...
bye _________________ P.O.W.E.R B.Y D.E.L.P.H.I |
|
| Voltar ao Topo |
|
 |
edmargasjunior Novato

Registrado: Quarta-Feira, 28 de Janeiro de 2009 Mensagens: 41
|
Enviada: Sex Ago 14, 2009 10:36 am Assunto: |
|
|
E ai tranquilo!
Bom por uma questão de compatibilidade e outras coisinhas mais aconselho a remover os acentos tanto na exportação quanto na importação. Para isso use um for para varrer a string buscando um caracter especial, isto facilita também com relação ao primeiro caracter ser um "espaço" você pode tratar isso porque muitas vezes o usuário reclama de não achar algo que ele acabou de inserir, mas algumas vezes o problema é que o mesmo item foi colocado com um "espaço" antes do nome do item reclamado.
Qualquer coisa posta ai.  _________________ Edmar Junior |
|
| Voltar ao Topo |
|
 |
Raphael007 Novato

Registrado: Quarta-Feira, 11 de Fevereiro de 2009 Mensagens: 91
|
Enviada: Sex Ago 14, 2009 12:03 pm Assunto: |
|
|
| e um arquivo txt e estou usando firebird 2.0 |
|
| Voltar ao Topo |
|
 |
FLAVIOZSOUZA Novato

Registrado: Quarta-Feira, 23 de Julho de 2008 Mensagens: 22 Localização: Novo Hamburgo/RS
|
Enviada: Sex Ago 14, 2009 1:55 pm Assunto: |
|
|
| Raphael007 escreveu: | | e um arquivo txt e estou usando firebird 2.0 |
Boa tarde,
Não sei se te ajudará, mais qdo faço esse tipo importação aqui, faço da seguinte maneira, só q tranformo tudo para maiúsculo:
DM.IBQEnderecosLOGRADOURO.Value := AnsiUpperCase(QCLIENTESrua.Value);
Abraços
Flávio |
|
| Voltar ao Topo |
|
 |
edmargasjunior Novato

Registrado: Quarta-Feira, 28 de Janeiro de 2009 Mensagens: 41
|
Enviada: Sex Ago 14, 2009 2:57 pm Assunto: |
|
|
Raphael007, independente do tipo de arquivo que você trabalhe você pode tratar a informação antes dela ir para onde você quer que vá.
Como disse nosso colega johnny-walker, saber qual banco será utilizado para importar ou exportar é extremamente interessante, pois assim evita algumas incompatibilidades, como exemplo quando migrei os bancos dos meus clientes de Interbase para MySql, na época tive problemas com o campo tipo blob.
Então onde você colocou:
| Código: | | DM.CdsProduto.FieldByName('DES_PRODUTO').Value:= Copy(Entrada,72,60); |
Você pode usar uma função:
| Código: | | DM.CdsProduto.FieldByName('DES_PRODUTO').Value:= RemoveAcento(Copy(Entrada,72,60)); |
Código da função:
| Código: | function RemoveAcento(Str: string): string;
const
ComAcento = 'àâêôûãõáéíóúçüÀÂÊÔÛÃÕÁÉÍÓÚÇÜ';
SemAcento = 'aaeouaoaeioucuAAEOUAOAEIOUCU';
var
x: Integer;
begin
;
for x := 1 to Length(Str) do
if Pos(Str[x], ComAcento) <> 0 then
Str[x] := SemAcento[Pos(Str[x], ComAcento)];
Result := Str;
end; |
Faz o teste ai me fala se der tudo certo! [/code] _________________ Edmar Junior |
|
| Voltar ao Topo |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|