.G3 0 Denunciar post Postado Janeiro 12, 2005 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: 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... Compartilhar este post Link para o post Compartilhar em outros sites
InuTaishou 0 Denunciar post Postado Janeiro 13, 2005 Colega, você quer gerar a lista nesse formato: 1>nOu nesse:1234...nExplique melhor como quer que eu faço...[]'s, Compartilhar este post Link para o post Compartilhar em outros sites
.G3 0 Denunciar post Postado Janeiro 13, 2005 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? Compartilhar este post Link para o post Compartilhar em outros sites
Paulo_Amorim 0 Denunciar post Postado Janeiro 13, 2005 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é+ Compartilhar este post Link para o post Compartilhar em outros sites
Aroldo Zanela 0 Denunciar post Postado Janeiro 13, 2005 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; Compartilhar este post Link para o post Compartilhar em outros sites
Beppe 0 Denunciar post Postado Janeiro 14, 2005 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. Compartilhar este post Link para o post Compartilhar em outros sites
Aroldo Zanela 0 Denunciar post Postado Janeiro 15, 2005 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; Compartilhar este post Link para o post Compartilhar em outros sites