Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Format Campo ao importar txt


Eder

Pergunta

Ola.

tenho um pequeno arquivo a ser importado neste formato(txt):

BRQ;526536-5

BLU;256553-8

JVL;1230-8

HRG;23-9

FLO;256536-1

notem que o camarada que me enviou o arquivo mandou sem preenchimento de zeros a esquerda então meu codigo esta importando sem o preenchimento dos zeros...mas eu preciso dos mesmo.

deveria ser assim:

BRQ;526536-5

BLU;256553-8

JVL;001230-8

HRG;000023-9

FLO;256536-1

parte do meu codigo que estou importando é este:

If Linhas > 1 then//aqui verifica e desconcidera A  primeira linhas do txt
    begin
      Table1.Insert;
      Table1.FieldByName('Filial').Value := Copy(Entrada,2, Pos(PathSep, Entrada) - 2);
      Delete(Entrada, 1, Pos(PathSep, Entrada));
      Table1.FieldByName('Ctrc').Value := Copy(Entrada,1,
      Length(Entrada)); 
      Table1.Post;
    end;

então eu pensei que ao importar poderia já verificar se falta os zeros e incluir na importação.

teria que ficar assim: 000523-5

é possivel?

Grato

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
então eu pensei que ao importar poderia já verificar se falta os zeros e incluir na importação.

teria que ficar assim: 000523-5

é possivel?

Oi Eder .. é possivel sim ...basta modificar para o seu uso

procedure TForm1.Button1Click(Sender: TObject);
var
   s, s1, s2, s3: string;
begin
   s := Edit1.Text;  // HRG;23-9
   s1 := copy(s,1,pos(';',s));
   delete(s,1,pos(';',s));
   s2 := copy(s,pos(';',s)+1,pos('-',s)-1);
   S3 := copy(s,pos('-',s),2);
   FmtStr(s, '%.6d', [StrToInt(s2)]);
   edit1.text := s1 + s + s3;   // HRG;000023-9
end;

abraço e feliz natal para voce e sua família

Link para o comentário
Compartilhar em outros sites

  • 0

Ola..Jonas...Deu certinho...mas é meio complicadinho de entender o esqueminha... :blush:

só me explica por favor com suas palavras esta linha, para mim entender o teu racioncinio:

s1 := copy(s,1,pos(';',s));

abraço e feliz natal para voce e sua família

Carinha ...UM ÓTIMO NATAL E FELIZ ANO NOVO PARA VOCÊ E SUA FAMÍLIA, MUITA SAÚDE, PAZ E FELICIDADES, O RESTO A GENTE VAI SE VIRANDO COMO PODE.

Abraços.

EDER

Link para o comentário
Compartilhar em outros sites

  • 0

só me explica por favor com suas palavras esta linha, para mim entender o teu racioncinio:

s1 := copy(s,1,pos(';',s));

o esquema é bem simples:

1 - voce pega a string completa ( HRG;23-9 )

2 - depois separa-se a parte alfanumerica na numerica

s1 := copy(s,1,pos(';',s)); desta maneira a variavel s1 receberá ( HRG; )

ou seja copiar a string S da posição 1 ate a posição onde encontrar um ; ( ponto e vírula )

3 - esta parte deve ser retirada da string ficando apenas a parte numerica

delete(s,1,pos(';',s)); a string S tem agora o conteúdo ( 23-9 )

4 - como 23-9 não e um inteiro válido então deve-se separar o numero antes do ( - ) traço

s2 := copy(s,pos(';',s)+1,pos('-',s)-1); a string S2 recebe o valor 23

S3 := copy(s,pos('-',s),2); a string S3 recebe o restante da string ( -9 )

5 - depois basta formatar o numero conform desejado

FmtStr(s, '%.6d', [strToInt(s2)]); Veja que a string S2 contem o valor 29 e será formatado colocando-se os zeros a esquerda do numero ( 000029 ) usando-se o formato ( '%.6d' ) e jogando o resultado na string S

6 - Como os valores estão separados, basta ajuntá-los para que fiquem da maneira que queremos

edit1.text := s1 + s + s3; // HRG;000023-9

ou seja :

S1 = HRG;

S = 000023

S3 = -9

Espero que tenha entendido a explicação

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...