Fórum Divisao pelo campo do memo #207657

19/01/2004

0

Assim pessoal, quero sabe quantas linhas tem no memo e dividi as linhas por 6, vai um numero inteiro com certeza, mas, assim, veja o codigo que estou usando....

var
num, num2 : integer;
begin
num:= memo2.lines.count-1;{por que sempre fica um linha em branco no final do memo}
num2:= num / 6;
showmessage(IntToStr(num2));

mas o que rola, diz que sao tipos incompativeis extend e integer, ja tentei tambem fazer num div 6 e num deu.

Gente, quem puder ajudar, desde ja agradeco, um abraco, Henry.


Henry

Henry

Responder

Posts

20/01/2004

Beppe

Quando você usa /, o resultado é extended. Então o certo seria usar div.

num2:= num div 6; 


Vc disse que assim naum funciona...dá erro ou não da o resultado esperado?


Responder

Gostei + 0

20/01/2004

Henry

naum da o resultado que eu quero


Responder

Gostei + 0

20/01/2004

Marcelo Saviski

Troque o num, num2 : integer;
por Float, ou Single, Extended....

e o showmessage(IntToStr(num2));

por FloatToStr


Responder

Gostei + 0

21/01/2004

Henry

Cereteza MArcelao, deu certo, mas agora um baguio que ta me fundindo a cuca e o seguinte....

Eu consegui faze a divisao, mas quero faze um loop com o resultado que deu, ja tenti Trunc(real) e num deu, veja la....
Z: Integer;
num1:= memo1.lines.count;
num2:= num1/6;
//agora pra faze o loop que me quebra as pernas....

for Z:= 0 to num2 do
os comnados

MAs da erro, q pra faze o loop precisa de numeors inteiros, alguem me de uma luz por favor....


Responder

Gostei + 0

21/01/2004

Bacalhau

O div retorna o [b:7c4ab72da9]valor inteiro[/b:7c4ab72da9] da divisão. Se calhar está aí o problema.

Por exemplo 6 div 2 é igual a 3. Mas 7 div 2 também é. Será isto?


Responder

Gostei + 0

21/01/2004

Henry

Nao exatamente Catita, o problema da divisao ta sucegado o problema e que na saida da divisao eu to com um numero inteiro, mas ele e um variavel real, e eu preciso dele com inteiro pra da um loop, pra usa ele aqui....
NUmero, o resultado da divisao.
z: Integer;
for Z:= 0 to Numero do
begin
//os comandos

Mas na hora do loop eu vo precisa do numero como Inteiro, naum como real, manja?


Responder

Gostei + 0

21/01/2004

Marcelo Saviski

Modelo Basico:

[b:b849a41e27]var[/b:b849a41e27]
Num1; Integer;
Num2: Real;
I: Integer;
[b:b849a41e27]begin[/b:b849a41e27]
Num1 := Numero de linhas do Memo;
Num2 := Num1/6; //Divide e retorna um número fracionário
[b:b849a41e27]for [/b:b849a41e27]I := 0 [b:b849a41e27]to [/b:b849a41e27]Trunc(Num2) [b:b849a41e27]do[/b:b849a41e27]
fazAlgumaCoisa;
[b:b849a41e27]end[/b:b849a41e27];

[color=red:b849a41e27]mas atenção a um detalhe[/color:b849a41e27]
se tiver 24 linhas no memo, Num2 vai ser 4

o loop vai de 0 até 4

se tiver 28 linhas, Num2 é igual a 4,6...
o loop vai de 0 até 4 (vai ignorar o #,6)

pelo que pde ver durante o tópico, creio que não é bem isso que você quer, ou é?


Responder

Gostei + 0

21/01/2004

Henry

Nao, Marcelo, quanto a divisão não tem grilo, vai ser sempre multiplos de seis, por sua vez inteiros, vo tenta desse jeito ai, valeu.


Responder

Gostei + 0

21/01/2004

Marcelo Saviski

naquele seu primeiro código, você tentou sem o [b:a33a93d2df]-1[/b:a33a93d2df]?
(msg 800, chego nos 1000 uma hora)


Responder

Gostei + 0

22/01/2004

Henry

Naum marcelao, ja consegui, ta sucegado ja, brigado ai a todos que responderam o topico, valeu pela forca.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar