quot;Escreverquot; formatado em uma string

Delphi

08/03/2005

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

Curtidas 0

Respostas

Massuda

Massuda

08/03/2005

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


GOSTEI 0
Geraldocg

Geraldocg

08/03/2005

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


GOSTEI 0
POSTAR