Contador de caracteres
COMO POSSO FAZER UM CONTADOR DE CARACTERES DE UM DBEDIT OU DBEMEMO?
Título editado pelo Moderador - AZ
Título editado pelo Moderador - AZ
Crcam
Curtidas 0
Respostas
Fabiosilva
02/12/2003
Coloque um label (LblDigitos), ira receber o numero de caracteres em tempo de execção
Insira o codigo no evento onchange
var
I: Integer;
Ch: Char;
Cnttotal: Integer;
begin
Cnttotal := 0;
for I := 1 to Length(Memo1.Text) do
begin
Ch := Memo1.Text[I];
if Ch in ChrMaiusculas then
Inc(Cnttotal);
else
if Ch in ChrMinusculas then
Inc(Cnttotal);
else
if Ch in ChrNumeros then
Inc(Cnttotal);
else
if Ch in ChrBrancos then
Inc(Cnttotal);
else
if Ch in ChrEspeciais then
Inc(Cnttotal);
else
Inc(Cnttotal);
LblDigitos.Caption := IntToStr(Cnttotal);
Insira o codigo no evento onchange
var
I: Integer;
Ch: Char;
Cnttotal: Integer;
begin
Cnttotal := 0;
for I := 1 to Length(Memo1.Text) do
begin
Ch := Memo1.Text[I];
if Ch in ChrMaiusculas then
Inc(Cnttotal);
else
if Ch in ChrMinusculas then
Inc(Cnttotal);
else
if Ch in ChrNumeros then
Inc(Cnttotal);
else
if Ch in ChrBrancos then
Inc(Cnttotal);
else
if Ch in ChrEspeciais then
Inc(Cnttotal);
else
Inc(Cnttotal);
LblDigitos.Caption := IntToStr(Cnttotal);
GOSTEI 0
Fabiosilva
02/12/2003
Coloque um label (LblDigitos), ira receber o numero de caracteres em tempo de execção
Insira o codigo no evento onchange
var
I: Integer;
Ch: Char;
Cnttotal: Integer;
begin
Cnttotal := 0;
for I := 1 to Length(Memo1.Text) do
begin
Ch := Memo1.Text[I];
if Ch in ChrMaiusculas then
Inc(Cnttotal);
else
if Ch in ChrMinusculas then
Inc(Cnttotal);
else
if Ch in ChrNumeros then
Inc(Cnttotal);
else
if Ch in ChrBrancos then
Inc(Cnttotal);
else
if Ch in ChrEspeciais then
Inc(Cnttotal);
else
Inc(Cnttotal);
LblDigitos.Caption := IntToStr(Cnttotal);
Insira o codigo no evento onchange
var
I: Integer;
Ch: Char;
Cnttotal: Integer;
begin
Cnttotal := 0;
for I := 1 to Length(Memo1.Text) do
begin
Ch := Memo1.Text[I];
if Ch in ChrMaiusculas then
Inc(Cnttotal);
else
if Ch in ChrMinusculas then
Inc(Cnttotal);
else
if Ch in ChrNumeros then
Inc(Cnttotal);
else
if Ch in ChrBrancos then
Inc(Cnttotal);
else
if Ch in ChrEspeciais then
Inc(Cnttotal);
else
Inc(Cnttotal);
LblDigitos.Caption := IntToStr(Cnttotal);
GOSTEI 0
Deus
02/12/2003
Que foi isso? Primeiro, você não definiu os conjuntos em lugar nenhum - que sets são esses?! [i:53dc7f32ec]ChrMaiusculas[/i:53dc7f32ec], [i:53dc7f32ec]ChrMinusculas[/i:53dc7f32ec], etc. E outra - essa é mais de estilo. Ao invés de tantos [i:53dc7f32ec]if / else[/i:53dc7f32ec], não seria melhor usar um [i:53dc7f32ec]if[/i:53dc7f32ec] só e vários [i:53dc7f32ec]or[/i:53dc7f32ec]? Ou seja:
Sem falar que eu não entendi o porquê de tantos sets. Não seria melhor um set só, assim:
Acho que seria melhor. Ele queria para um Memo, ou para um DBEdit? É só mudar o nome do controle, então. Desta forma, você não vai precisar declarar tantas variáveis - só [i:53dc7f32ec]i[/i:53dc7f32ec], que vai servir para a contagem.
Abraços, dEUS.
for i := 1 to Length(Memo1.Text) do begin Ch := Memo1.Text[i]; if (Ch in ChrMaiusculas) or (Ch in ChrMinusculas) or (Ch in ChrNumeros) or (Ch in ChrBrancos) or (Ch in ChrEspeciais) then Inc(Cnttotal); end; LblDigitos.Caption := IntToStr(Cnttotal);
Sem falar que eu não entendi o porquê de tantos sets. Não seria melhor um set só, assim:
for i := 1 to Length(Memo1.Text) do begin if (Memo1.Text[i] in [´a´..´Z´, ´0´..´9´, ´ ´]) then Inc(Cnttotal); end; LblDigitos.Caption := IntToStr(Cnttotal);
Acho que seria melhor. Ele queria para um Memo, ou para um DBEdit? É só mudar o nome do controle, então. Desta forma, você não vai precisar declarar tantas variáveis - só [i:53dc7f32ec]i[/i:53dc7f32ec], que vai servir para a contagem.
Abraços, dEUS.
GOSTEI 0
Demian Soares
02/12/2003
crie um label qualquer... entao no evento onchange do componente dbedit ou dbmemo coloque o seguinte codigo...
label1.caption := inttostr(length(DBEdit1.Text));
pronto enquanto vc estiver digitando ou apagndo ele ira incrementar ou decrementr...so...
label1.caption := inttostr(length(DBEdit1.Text));
pronto enquanto vc estiver digitando ou apagndo ele ira incrementar ou decrementr...so...
GOSTEI 0
Cebikyn
02/12/2003
Não é tão simples assim, se colocar apenas Length, será contados os caracteres #10 ( ou $0A ), que indicam mudança de linha. O melhor código para o caso é o código de [b:120ae9a55a]dEUS[/b:120ae9a55a].
GOSTEI 0
Cebikyn
02/12/2003
Válido para DBMemo:
No caso do DBEdit é válido o uso de Length.
Não é tão simples assim, se colocar apenas Length, será contados os caracteres #10 ( ou $0A ), que indicam mudança de linha. O
melhor código para o caso é o código de [b:8cb40a5dca]dEUS[/b:8cb40a5dca].
No caso do DBEdit é válido o uso de Length.
GOSTEI 0