Divisao pelo campo do memo
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.
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
Curtidas 0
Respostas
Beppe
19/01/2004
Quando você usa /, o resultado é extended. Então o certo seria usar div.
Vc disse que assim naum funciona...dá erro ou não da o resultado esperado?
num2:= num div 6;
Vc disse que assim naum funciona...dá erro ou não da o resultado esperado?
GOSTEI 0
Henry
19/01/2004
naum da o resultado que eu quero
GOSTEI 0
Marcelo Saviski
19/01/2004
Troque o num, num2 : integer;
por Float, ou Single, Extended....
e o showmessage(IntToStr(num2));
por FloatToStr
por Float, ou Single, Extended....
e o showmessage(IntToStr(num2));
por FloatToStr
GOSTEI 0
Henry
19/01/2004
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....
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....
GOSTEI 0
Bacalhau
19/01/2004
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?
Por exemplo 6 div 2 é igual a 3. Mas 7 div 2 também é. Será isto?
GOSTEI 0
Henry
19/01/2004
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?
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?
GOSTEI 0
Marcelo Saviski
19/01/2004
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 é?
[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 é?
GOSTEI 0
Henry
19/01/2004
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.
GOSTEI 0
Marcelo Saviski
19/01/2004
naquele seu primeiro código, você tentou sem o [b:a33a93d2df]-1[/b:a33a93d2df]?
(msg 800, chego nos 1000 uma hora)
(msg 800, chego nos 1000 uma hora)
GOSTEI 0
Henry
19/01/2004
Naum marcelao, ja consegui, ta sucegado ja, brigado ai a todos que responderam o topico, valeu pela forca.
GOSTEI 0