etspaz 0 Denunciar post Postado Maio 20, 2009 Boa tarde, pessoal! To fazendo importação de arquivos txt para uma base, beleza quando o delimitador é ;. Mas, alguns tem espaços como delimitadores, então usei um stringlist com delimiter... O problema é que alguns campos deste arquivo também tem espaço e a rotina separa como outro campo. Segue trcho do codigo: AssignFile(x,nm_arq); Reset(x); k:= TStringList.Create(); k.Delimiter:= ' '; while not Eof(x) do begin Readln(x,texto); if texto <> '' then begin deli.DelimitedText:= texto; ShowMessage(k[0]); ShowMessage(k[1]); ShowMessage(k[2]); ShowMessage(k[3]); ShowMessage(k[4]); ShowMessage(k[5]); ShowMessage(k[6]); ShowMessage(k[7]); ShowMessage(k[8]); ShowMessage(k[9]); ShowMessage(k[10]); ShowMessage(k[11]); ShowMessage(k[12]); ShowMessage(k[13]); end; Alguém sabe me dizer como fazer para a rotina identificar quando o espaço faz parte do conteudo do campo, exemplo: Joao da Silva. desde já agradeço! Compartilhar este post Link para o post Compartilhar em outros sites
Chrnos 30 Denunciar post Postado Maio 21, 2009 A sugestão que lhe dou nesse tipo de caso é que trabalhe com tamanhos fixos ou defina um delimitador único e force seu cliente a usá-lo sempre (de preferência, que não seja um tipo de dado usado dentro dos campos que está lendo - caso do espaço em branco, que é um péssimo delimitador para arquivos que tem campos de nome e endereço). Se você for se orientar baseando sua regra no tamanho fixo do campo, você pode definir que sua coluna nome terá 50 caracteres começando do 0 por exemplo, seguida depois da coluna endereço com 50 caracteres começando logo após o nome, etc... isso te facilitaria a vida, pois seria só pegar no seu programa e usar o copy no range de cada coluna para ter os dados. []'s Compartilhar este post Link para o post Compartilhar em outros sites
etspaz 0 Denunciar post Postado Maio 22, 2009 Opa valeu Chrnos! É exatamente uma da duas opções ,definir tamanho fixo nos campos ou ; como delimitador que estou tentando conseguir. O problema é que a comunicação com gera os arquivos é dificil, mas terá que ser alterado o layout: ou tamanho fixo ou delimitador diferente de espaço. Atualmente eles usam muito o excel, e formatam depois de vincular o arquivo, por isso nunca se preocuparam em definir um layout correto. Compartilhar este post Link para o post Compartilhar em outros sites
Chrnos 30 Denunciar post Postado Maio 28, 2009 Você está lendo os dados de um arquivo texto ou uma planilha excel? Se for uma planilha excel, você pode trabalhar lendo coluna a coluna, linha a linha, e manipular os dados como quiser. Se for txt, o melhor é formatar o padrão de entrada e recusar tudo o que vier fora dele, senão só vai ter dor de cabeça. []'s Compartilhar este post Link para o post Compartilhar em outros sites