ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Importando 'ç' e acentos RESOLVIDO

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
Raphael007
Novato
Novato


Registrado: Quarta-Feira, 11 de Fevereiro de 2009
Mensagens: 91

MensagemEnviada: Qui Ago 13, 2009 4:10 pm    Assunto: Importando 'ç' e acentos RESOLVIDO Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
aeciovc
Colaborador
Colaborador


Registrado: Terça-Feira, 18 de Dezembro de 2007
Mensagens: 1042
Localização: Recife

MensagemEnviada: Qui Ago 13, 2009 5:20 pm    Assunto: Responder com Citação

vc ta trabalhando com XML?? ou txt comum?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Visitar a homepage do Usuário MSN Messenger
johnny-walker
Moderador
Moderador


Registrado: Sábado, 4 de Outubro de 2003
Mensagens: 10653
Localização: Contagem/MG - BRAZIL

MensagemEnviada: Sex Ago 14, 2009 10:14 am    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
edmargasjunior
Novato
Novato


Registrado: Quarta-Feira, 28 de Janeiro de 2009
Mensagens: 41

MensagemEnviada: Sex Ago 14, 2009 10:36 am    Assunto: Responder com Citação

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. Very Happy
_________________
Edmar Junior
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Yahoo Messenger MSN Messenger
Raphael007
Novato
Novato


Registrado: Quarta-Feira, 11 de Fevereiro de 2009
Mensagens: 91

MensagemEnviada: Sex Ago 14, 2009 12:03 pm    Assunto: Responder com Citação

e um arquivo txt e estou usando firebird 2.0
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
FLAVIOZSOUZA
Novato
Novato


Registrado: Quarta-Feira, 23 de Julho de 2008
Mensagens: 22
Localização: Novo Hamburgo/RS

MensagemEnviada: Sex Ago 14, 2009 1:55 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
edmargasjunior
Novato
Novato


Registrado: Quarta-Feira, 28 de Janeiro de 2009
Mensagens: 41

MensagemEnviada: Sex Ago 14, 2009 2:57 pm    Assunto: Responder com Citação

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. Mad

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! Very Happy [/code]
_________________
Edmar Junior
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Yahoo Messenger MSN Messenger
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB