Alguém pode testar este fragmento de código e me explicar?
dado o seguinte codigo
estou querendo saber pq no sql server no campo ITEM
aparece por exemplo D450306688 quadrinho no final
e no interbase não!!!
queria saber se tem como evitar isso no interbase..
o txt é o seguinte..
minha estrutura de tabela é
Placa varchar(7)
ITEM varchar(11)
Mun_autuador int
Status varchar(1)
obs. já tentei como char e deu a mesma coisa..
quem puder me explicar o pq ficarei mto grato..
Eric
procedure TForm1.btnlerClick(Sender: TObject); VAR TEXT: TEXTFILE; VALOR,LOTE,AITTEMP:STRING; I: INTEGER; begin If Filebox.ItemIndex <> -1 then begin i:=0; btnler.Enabled:= false; ASSIGNFILE(TEXT,FILEBOX.FileName); Reset(TEXT); WHILE NOT EOF(TEXT) DO BEGIN READLN(TEXT,VALOR); DTMDB.CDS.Append; DTMDB.CDS.FieldByName(´MUN_AUTUADOR´).ASINTEGER := STRTOINT(COPY(VALOR,1,4)); DTMDB.CDS.FieldByName(´STATUS´).ASSTRING := COPY(VALOR,5,1); DTMDB.CDS.FieldByName(´ITEM´).ASSTRING := COPY(VALOR,6,11); DTMDB.CDS.FieldByName(´PLACA´).ASSTRING := COPY(VALOR,17,7); end; end; DTMDB.CDS.Post; DTMDB.CDS.ApplyUpdates(0); CLOSEFILE(TEXT); //fim do preenchimento SHOWMESSAGE(´PROCESSO CONCLUÍDO!´); end;
estou querendo saber pq no sql server no campo ITEM
aparece por exemplo D450306688 quadrinho no final
e no interbase não!!!
queria saber se tem como evitar isso no interbase..
o txt é o seguinte..
6713FD450306688 DLF1168 6713FD450306689 DLJ2536
minha estrutura de tabela é
Placa varchar(7)
ITEM varchar(11)
Mun_autuador int
Status varchar(1)
obs. já tentei como char e deu a mesma coisa..
quem puder me explicar o pq ficarei mto grato..
Eric
Eric.miranda
Curtidas 0
Respostas
By_gandalf
18/10/2004
pq vc nao da uma olhada melhor nesses copy ai... acho q ta aparecendo um quadrinho depois dos numeros porque ele ta fazendo a copia da string de 6 contando mais 11 pra frente, o que vai pegar tambem o espaço vazio depois desses numeros... acho q é isso q aparece...
GOSTEI 0
Aroldo Zanela
18/10/2004
Colega,
Acho que as substrings estão corretas:
Tem como enviar um fragmento do arquivo original para avaliar melhor: aroldo_zanela@hotmail.com (máximo de 1 MB).
Acho que as substrings estão corretas:
1 2 12345678901234567890123 6713FD450306688 DLF1168 6713FD450306689 DLJ2536 | || | | || 1234567 | |12345678901| | 1| 1 +------ 17,07 Placa 1234|+---------->>>>>>> 6,11 Item | +>>>>>>>>>>>>>>>>>> 5,01 Status ++++>>>>>>>>>>>>>>>>>>> 1,04 Município atuador
Tem como enviar um fragmento do arquivo original para avaliar melhor: aroldo_zanela@hotmail.com (máximo de 1 MB).
GOSTEI 0
Eric.miranda
18/10/2004
Valeu Aroldo.. estarei mandando o arquivo para seu email...
obrigado pela força..
By_Gandalf,
é justamente isso que estou querendo corrigir..
ele tem que ler 11 pq o tamanho desse campo pode variar..
ele pode ter no máximo 11 e no mínimo 3.. então ele lê os 11 e grava.. os espaços em branco já tentei eliminar com trim mas não deu certo..
obrigado pela força..
By_Gandalf,
é justamente isso que estou querendo corrigir..
ele tem que ler 11 pq o tamanho desse campo pode variar..
ele pode ter no máximo 11 e no mínimo 3.. então ele lê os 11 e grava.. os espaços em branco já tentei eliminar com trim mas não deu certo..
GOSTEI 0
Eric.miranda
18/10/2004
galera, ainda não consegui resolver meu problema..
se alguem puder testar aí pra mim, só pra ver se dá esse quadrado no fim do campo eu ficaria mto grato..
valeu
Eric
se alguem puder testar aí pra mim, só pra ver se dá esse quadrado no fim do campo eu ficaria mto grato..
valeu
Eric
GOSTEI 0
Macario
18/10/2004
Tipo será que nao teria algo com o Post estar fora do while?????
GOSTEI 0
Paulo_amorim
18/10/2004
Olá
Esse ´quadrado´ se refere a qual caractere? Tente veriifcar para que se tenha uma idéia do que está acontecendo.
POde-se fazer uma verificação para tirar esse caractere também, por exemplo
Ate+
Esse ´quadrado´ se refere a qual caractere? Tente veriifcar para que se tenha uma idéia do que está acontecendo.
POde-se fazer uma verificação para tirar esse caractere também, por exemplo
sVariavel := ´´; for i := 0 to Length(Texto) do if (Texto[i] in [´A..Z´,´a..z´]) then sVariavel := sVariavel + Texto[i];
Ate+
GOSTEI 0
Eric.miranda
18/10/2004
Valeu amigos por estarem me ajudando..
Paulo_Amorim,
o caractere a qual me refiro(no caso o quadrado) é como se fosse um terminador..
tipo assim.. se vizualizo o campo normalmente não vejo nada nele..ou seja ele está sem o quadrado.. mas se seleciono o campo ele aparece o quadrado..
outra coisa que percebi. é o seguinte..
se o campo tem tamanho 10 e preencho com 10 ele não aparece esse quadrado.. mas se preencho com 9 ele aparece um quadrado após o ultimo caracter.. e se preencho por exemplo com 6digitos ele põe um quadrado no 7º e o resto fica em branco..
então isso deve ser uma marca .. um terminador sei lá..
o engraçado é que isso não acontece no interbase.. só no sql server..
Macario o Aspone,
qto ao post tb já tentei e não obtive diferença..
abraços
Eric
Paulo_Amorim,
o caractere a qual me refiro(no caso o quadrado) é como se fosse um terminador..
tipo assim.. se vizualizo o campo normalmente não vejo nada nele..ou seja ele está sem o quadrado.. mas se seleciono o campo ele aparece o quadrado..
outra coisa que percebi. é o seguinte..
se o campo tem tamanho 10 e preencho com 10 ele não aparece esse quadrado.. mas se preencho com 9 ele aparece um quadrado após o ultimo caracter.. e se preencho por exemplo com 6digitos ele põe um quadrado no 7º e o resto fica em branco..
então isso deve ser uma marca .. um terminador sei lá..
o engraçado é que isso não acontece no interbase.. só no sql server..
Macario o Aspone,
qto ao post tb já tentei e não obtive diferença..
abraços
Eric
GOSTEI 0
Adilsond
18/10/2004
Fica difícil ajudar se voce não nos informa qual é o caracter. Experimente a função abaixo para descobrir qual o caracter e depois nos infórme.
procedure TForm1.btnlerClick(Sender: TObject); VAR Text: TextFile; Valor: String; begin if Filebox.ItemIndex <> -1 then begin btnLer.Enabled := False; AssignFile(Text,FileBox.FileName); Reset(Text); try while not EOF(Text) do begin Readln(Text,Valor); ShowMessage(´O caracter é o ´ + IntToStr(Ord(Valor[16]))); Break; end; finally CloseFile(Text); end; end; //fim do preenchimento ShowMessage(´PROCESSO CONCLUÍDO!´); end;
GOSTEI 0