Fórum Funcao quot; ; quot; ( Ponto e vírgula ) #273622
22/03/2005
0
Eu dou uma variavel pra ela por exemplo -> A ; B ; C ; D
Então eu informaria um número pra ela ou seja um índice e ela me retornaria uma string.
Aplicando nesse exemplo eu dou o número 1 e teria o ´ A como resposta, dou o 3 e teria o ´ C ´ como resoposta asssim por diante .....
Alguém poderia me ajudar ?
Patricksc
Curtir tópico
+ 0Posts
22/03/2005
Marcio.theis
variavel:=ABCDE;
e depois vc apenas faz um for, como por exemplo:
for x:=1 to numero do
ret:=variavel[x];
numero, variável que vc iria informar, passar pale ele logalizar.
desta forma a variável ret teria a sua letra, mas tb podendo utilizar um copy, ou outras formas para localizar.
Gostei + 0
22/03/2005
Patricksc
entende ???
poderia ter numeros ( 1245213; 15681231; 4456; 1561....) ou camops
(Clientes; Fornecedores; .bla...bla..bla.......);
Naum sei se vc me entendeu ?
Gostei + 0
22/03/2005
Marcio.theis
function TForm1.Busca(texto: string; posicao: integer): string; var ret: string; aux, x, y: integer; achou: boolean; begin y:=1; x:=1; ret:=´´; achou:=False; aux:=Length(texto); while not achou do begin while x <= aux do begin if texto[x] = ´;´ then begin if y = posicao then begin achou:=True; x:=aux + 1; end else begin Inc(x); Inc(y); ret:=´´; end; end else begin ret:=ret + texto[x]; Inc(x); end; if x = aux + 1 then achou:=True; end; end; Busca:=Trim(ret); end;
no qual eu passo como parâmetro o texto(1245213; 15681231; 4456; 1561) e na posicao a posição do texto que eu quero (2), no caso ela me retorna 15681231, mas deve ainda de ser melhorada, fiz rapidinho não fiz algumas validações, mas acho que é isto que vc quer....
Gostei + 0
22/03/2005
Massuda
Uma solução para isso é usar um argumento do tipo [b:8d7d2fa64d]array of const[/b:8d7d2fa64d], que é como um array dinamico de Variant´s (procure na Ajuda do Delphi pelo tópico ´variant open array parameters´). Este é o exemplo da Ajuda do Delphi:
uses Variants, // se for Delphi 6 ou mais recente ... function MakeStr(const Args: array of const): string; const BoolChars: array[Boolean] of Char = (´F´, ´T´); var I: Integer; begin Result := ´´; for I := 0 to High(Args) do with Args[I] do case VType of vtInteger: Result := Result + IntToStr(VInteger); vtBoolean: Result := Result + BoolChars[VBoolean]; vtChar: Result := Result + VChar; vtExtended: Result := Result + FloatToStr(VExtended^); vtString: Result := Result + VString^; vtPChar: Result := Result + VPChar; vtObject: Result := Result + VObject.ClassName; vtClass: Result := Result + VClass.ClassName; vtAnsiString: Result := Result + string(VAnsiString); vtCurrency: Result := Result + CurrToStr(VCurrency^); vtVariant: Result := Result + string(VVariant^); vtInt64: Result := Result + IntToStr(VInt64^); end; end; // exemplo de uso MakeStr([´test´, 100, ´ ´, True, 3.14159, TForm]); // resulta "test100 T3.14159TForm"
O exemplo veio da Ajuda do Delphi 5, talvez para Delphi 6 ou mais recente possam existir diferenças em relação ao apresentado acima.
Gostei + 0
22/03/2005
Patricksc
Gostei + 0
22/03/2005
Patricksc
Gostei + 0
22/03/2005
Massuda
var I: Integer; N: Integer; S: string; .... S := ´... algum texto ...´; N := 0; for I := 1 to Length(S) do begin if S[I] = ´;´ then Inc(N); end;
Gostei + 0
22/03/2005
Kapak
Nome_da_Funcao([´asdfg´, 123, 12.345]);
Gostei + 0
22/03/2005
Patricksc
Mas pq ???
Pq estarei ultilizando arquivo ´CSV´ Comma Separated values entaum sao arquivos separados por ´;´ entende??
Entaum preciso saber quantos ´;´ para saber quantos campos existem e presiso separar uma string por ´;´.
Entenderam ???
Gostei + 0
22/03/2005
Kapak
var p:PChar; iPos:Integer; SL:TStringList; begin SL := TStringList.Create; p := @s[1]; // s é a string c/ os ";" iPos := Pos(´;´, p); While iPos > 0 do begin SL.Add(Copy(p, 1, iPos-1)); Inc(p, iPos); iPos := Pos(´;´, p); end; SL.Free; end;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)