Fórum Ler campo de uma tabela e separar o q esta preenchido ... #235760
02/06/2004
0
tenho uma campo de uma tabela onde ele sua caracteristica sao:
Paradox
Campo A 90
e tem varios registros preenchidos da seguinte forma:
064105401
065200201
Preciso percorrer a tabela e nesse campo percorrer a string separando de 3 em 3 ... seria +/- assim
1º resgistro
064
105
401
2º registro
065
200
201
como eu poderia fazer ?
Obr pela ajuda
Scandolara
Curtir tópico
+ 0Posts
02/06/2004
Biffi
var str1,str2,str3 : string;
str1 := copy(table1.fieldbyname(´NOMEDOCAMPO´).AsString,1,3);
str2 := copy(table1.fieldbyname(´NOMEDOCAMPO´).AsString,4,3);
str3 := copy(table1.fieldbyname(´NOMEDOCAMPO´).AsString,7,3);
caso você não soubesse o tamanho da string (valor do campo), poderia utilizar laços de repetição. Mas ai poste aqui detalhadamente o que voce quer fazer.
Espero ter ajudado
Gostei + 0
02/06/2004
Scandolara
eu nao sei o tamanho certo ... tem variacoes de tamanho ,.,.
como posso fazer isso ?
obr
Gostei + 0
02/06/2004
Biffi
Quando conseguir atribuir os três primeiros caracteres para uma variável, o que será feito. Exibir mensagens, incluir em outro campo?
Você pode explicar melhor (mais detalhes) o que desejás fazer, tipo, que separar de três em três para exibir uma mensagem, para somar com outro campo, etc...
Gostei + 0
02/06/2004
Scandolara
Apos isso , vou adicionar em uma tabela e vou pegar os proximos 3 da string , adciono na tabela, pego o proximo ..., e assim por diante .. ate chegar o fim da string
Ex.:
TABELA da String
Nome Codigo Descicao
MEDE 001 064200250405
MEDE 002 003205500
ADVO 003 011111250033050090010
Tabelas q vou descarregar
Nome Desc
MEDE 064
MEDE 200
MEDE 250
MEDE 405
ADVO 011
ADVO 111
ADVO 250
ADVO 033
ADVO 050
ADVO 090
ADVO 010
É isso q gostaria de fazer ...
e naum estou conseguindo
obr + 1 vvez parceiro
ate
Gostei + 0
02/06/2004
Biffi
ficaria assim:
for i:= 1 to length(table1.fieldbyname(´NOMEDOCAMPO´).AsString) do begin
j := 1;
aux := ´´; // variavel tipo string
while j < 4 do begin
aux := aux + table1.fieldbyname(´NOMEDOCAMPO´).AsString[j];
inc(j);
end;
table2.Insert;
table2.fieldbyname(´NOMEDOCAMPO´).AsString := aux;
table2.post;
end;
Caso eu tenha interpretado errado, poste novamente....
valew
Gostei + 0
02/06/2004
Paulo_amorim
Independente do que vc quer fazer, vc pode utilizar o Copy e variar num laço de repetição (aqui utilizarei uma função que retorna TStrings):
function SeparaTexto(Texto:String; Quant: Integer): TStrings; var i : Integer; begin Result := TStringList.Create; for i := 0 to Length(Texto) do begin Result.Add ( Copy(Texto, i * Quant + 1, Quant) ); end; end;
No caso, ele eh bem simples mas acho que atende...
Espero que ajude
Até+
Gostei + 0
02/06/2004
Rômulo Barros
procedure TForm1.Button1Click(Sender: TObject); Var MyString : String; Resp, C: Word; begin MyString := ´12345678´; C := 1; Repeat If(9 Mod C = 0)Then ShowMessage(Copy(MyString,C,3)); inc(C); Until(C > Length(MyString)); end; end.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)