Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

.G3

Gerador simples....

Recommended Posts

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:

 

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...

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.