Fórum quot;Escreverquot; formatado em uma string #271525

08/03/2005

0

Estou me iniciando em delphi7 ( desde 11/2004), pois o visual fortran, que uso para escrever programas de cálculo em telecomunicações, é meio ´duro´.
Preciso ´escrever´ muitos dados (variaveis inteiras e reais ) formatados, em uma string.
O tamanho de cada variável, na string, (incluído o sinal, se for negativo) é bem definido, bem como a posição do ponto decimal (se ñ for inteiro).
Em fortran é possível escrever diretamente em uma string, dando uma lista das variáveis e indicando a posição e o formato de cada uma:

write(string, label ) real,inteiro,outro_inteiro,(matriz_real(i,j), i=1..10,j=1..20)
label: format(T12,F4.2,1x,T30,i3,i2,T80,200(F4.1)).
{T dá a posição inicial na string, e os F e i dão o formato da variavel}

Não achei como fazer isso em delphi. Estou tendo que formatar cada valor, e usando uma procedure, introduzir na string o valor (no tamanho e na posição certa):
Por ex, para dado tipo real :
PoeStr(FormatFloat(´000.0´,StrToFloat(Edit_Lim3.text)),S,50,5); { escrevendo na string S, inicio na posição 50, 5 caracteres}
Esse método está funcionando mas em vez das duas ou tres linhas de código, como no fortran, preciso de dezenas de linhas no delphi.

Já pesquisei neste forum mas não encontrei o que busco.
Será que alguém pode me dizer se há algo em delphi, parecido com o que descrevi do fortran?

Muito obrigado por qqr ajuda
Geraldo


Geraldocg

Geraldocg

Responder

Posts

08/03/2005

Massuda

... write(string, label ) real,inteiro,outro_inteiro,(matriz_real(i,j), i=1..10,j=1..20) label: format(T12,F4.2,1x,T30,i3,i2,T80,200(F4.1)). ... Será que alguém pode me dizer se há algo em delphi, parecido com o que descrevi do fortran?
Existe a função [url=http://www.delphibasics.co.uk/RTL.asp?Name=Format]Format[/url] da unit SysUtils; com ela você pode fazer algo assim:
var
  S: string;
  I, J: Integer;
...
  S := Format(´¬12s¬4.2f¬1x¬30s¬3d¬2d¬80s´, 
    [UmaString, UmReal, UmInteiro, OutraString,
     OutroInteiro, UmOutroInteiro, UmaOutraString]);

  for I := 1 to 10 do
    for J := 1 to 20 do
      S := S + Format(´¬4.1f´, [matriz_real[I, J]]);
Para mais detalhes, use o link ou procure na Ajuda do Delphi. Note que ela é parecida com o printf do C.


Responder

Gostei + 0

10/03/2005

Geraldocg

Massuda

Valeu mesmo

Tinha mesmo que ter algo assim.

Eu já tinha procurado o Format no Help, mas não é tão claro como o exemplo que você deu. O help do delphi é meio brabo para quem está no começo. Espero que com o ´Delphi 7: a Bíblia´ eu tenha menos dificuldades.
Vou reescrever o meu código.
Muito obrigado

Geraldo


Responder

Gostei + 0

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

Aceitar