Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá amigos programadores!!!
É o seguinte eu programo em php e presciso de alguem q programe em Delphi pra fazer um programa simples...
é o seguinte...
Presciso de um programa q gere um .txt com uma number list...
Explicando melhor:
/applications/core/interface/imageproxy/imageproxy.php?img=http://campersniper.sites.uol.com.br/gerador.gif&key=fa02f2d78d80ed7a551bb6d40a40c0eac9bfcef84e136d97ddedd0aa83d22bb9" alt="Imagem Postada" />
Se a img num aparecer click aki.
Sacou como é???
Simples num é?? só quero q ele gere um .txt com os numeros entre o inicial e o final la no campo...e assim eu queria q ele pudesse gerar de 1 á 18 digitos saca tipo 1>999999999999999999...
Alguem poderia fazer isso ai pra mim??? Depois eu posso ajuda-lo em algo com php...
Eu quero q gere cada numero em uma linha..simples...
em php eu poderia simplesmente fazer assim:
PHP [/tr][tr]
<?
$numero=00000000011;
while ($numero<=99999999999)
{
echo "$numero <br>";
$numero++;
}
?>
[/tr]
Mais assim fica mto pesada saca...
Eu quero tipo assim:
Mandei lá imprimir De : 1 á 10 ai o .txt fica assim
1
2
3
4
...
sacou?
Olá
Normalmente, você deveria fazer um loop mesmo...
Isso irá tomar muito tempo, provavelmente
var s: TStrings; i : INteger;begin s := TStringList.Create; i := 1; while i < 100000 do begin s.Add( IntToStr( i ) ); Inc(i); end; s.SaveToFile( <seu caminho de arquivo>);end;
Ou então usando arquivo texto mesmo
var txt: TextFile; i : Integer;begin i := 1; AssignFile(txt, <seu caminho de arquivo>); try Rewrite(txt); while i < 100000 do begin Writeln(txt, i); Inc(i); end; finally CloseFile(txt); end;end;
Espero que ajude
Até+
Colega,
É simples para um comprimento/valor até 4294967295, pois bastaria um loop a exemplo do que foi feito em PHP, adicionando-se apenas um objeto TStringList para manter e salvar a lista. Entretanto, se o comprimento for de 1 a 999999999999999999 então será necessário criar uma rotina para incrementar cada posição numa estrutura de loops aninhados.
Então, qual é o comprimento máximo necessário?
procedure TForm1.Button1Click(Sender: TObject);var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r: Byte; Numero: String[18]; Lista: TextFile;begin AssignFile(Lista, 'C:\LISTA.TXT'); ReWrite(Lista); Numero := StringOfChar('0',18); for a := 0 to 9 do begin Numero[1] := Char(a); for b := 0 to 9 do begin Numero[2] := Char(b); for c := 0 to 9 do begin Numero[3] := Char(c); for d := 0 to 9 do begin Numero[4] := Char(d); for e := 0 to 9 do Begin Numero[5] := Char(e); for f := 0 to 9 do begin Numero[6] := Char(f); for g := 0 to 9 do begin Numero[7] := Char(g); for h := 0 to 9 do begin Numero[8] := Char(h); for i := 0 to 9 do begin Numero[9] := Char(i); for j := 0 to 9 do begin Numero[10] := Char(j); for k := 0 to 9 do begin Numero[11] := Char(k); for l := 0 to 9 do begin Numero[12] := Char(l); for m := 0 to 9 do begin Numero[13] := Char(m); for n := 0 to 9 do begin Numero[14] := Char(n); for o := 0 to 9 do begin Numero[15] := Char(o); for p := 0 to 9 do begin Numero[16] := Char(p); for q := 0 to 9 do begin Numero[17] := Char(q); for r := 0 to 9 do begin Numero[18] := Char(r); WriteLn(Lista, Numero); application.ProcessMessages; end; end; end; end; end; end; end; end; end; end; end; end; end; end; end; end; end; end; CloseFile(Lista); ShowMessage('Ok');end;
Para números de 10 dígitos(o número exato é aquele que o Aroldo falou), pode-se usar o tipo Cardinal, que por ser sem sinal tem o limite dobrado em relação ao Integer.Para números de até 20 dígitos(2 elevado à 64, menos 1, depois divida por 2) use o tipo Int64, que é um tipo com sinal, isto é, também pode ser negativo.Para números maiores acho que pode ser usado os tipos Extended e Double, considerando apenas a parte inteira, porém pode haver números duplicados, então é melhor arrendondá-los. Mas a operação com pontos flutuantes é mais demorada por natureza.
Colega,
Na prática, consegui com até 18 dígitos usando Int64 ou Extended, acima disso, somente com aninhamento de For:
var Numero: Int64; Arquivo: TextFile;begin AssignFile(Arquivo, 'c:\'); ReWrite(Arquivo); Numero := 1; while Numero < 999999999999999999 do begin WriteLn(Arquivo, FormatFloat('000000000000000000', Numero)); Numero := Numero + 1; end; CloseFile(Arquivo);end;
Colega, você quer gerar a lista nesse formato:
Ou nesse:
Explique melhor como quer que eu faço...[]'s,