Fórum Arquivos TXT #375175

23/09/2009

0

Olá meus amiguinhos,

Há qto tempo hein?! Mas estou de volta e querendo a ajuda de vcs.
Bom, vamos lá.

Eu tenho a seguinte situação, eu faço uma filtragem de dados, e a partir do resultado eu quero converter os dados filtrados para TXT para enviar por e-mail para que um outro programa, num outro Estado possa lê-los.
É algo tipo as centrais telefônicas que preparam os dados para que o sistema possa ler o consumo de cada quarto.

Já agradeço pq sei que vou conseguir a ajuda de vcs.
Bjinhos.

(Detalhe, gostaria de receber dicas das meninas tb. Mostrar que tb estamos no campo. rs rs rs)


Anjinho Loiro

Anjinho Loiro

Responder

Posts

23/09/2009

Fabiano Góes

bom vamos ver se entendi:

procedure TForm1.Button1Click(Sender: TObject);
var
  TXT: TStrings;
begin
  TXT := TStringList.Create;
  try

    // abre a query e se posiciona no primeiro registro
    ClientDataSet1.Open;
    ClientDataSet1.First;

    // faz um loop para percorrer todos os registros
    while not ClientDataSet1.Eof do
    begin
      // faz alguma coisa ...

      // escreve o arquivo texto, ex....
      TXT.Append(
        ClientDataSet1.FieldByName(´CODIGO´).AsString+´;´+
        ClientDataSet1.FieldByName(´NOME´  ).AsString
      );

      ClientDataSet1.Next;
    end;

    // Salva o arquivo texto
    TXT.SaveToFile(´c:\Exemplo.txt´);

  finally
    FreeAndNil(TXT);
  end;
end;




Responder

Gostei + 0

23/09/2009

Marcosrocha

Mônica, uma das formas mais simples de você gerar este arquivo é jogando para uma TStringList e formatando com espaços, ponto e vírgula ou zeros para delimitar os campos e salvar o arquivo com a função SaveToFile. Vai depender do Layout que o outro programa espera para ler.
var
  MyStList: TStringList;
begin
  MyStList := TStringList.Create;
  MyStList.Add(´MARCOS    25    PROGRAMADOR´);
  MyStList.Add(´DEVMAN          WEBMASTER´);
  MyStList.SaveToFile(´C:\temp\Espacos.txt´);
  MyStList.Clear;
  MyStList.Add(´MARCOS;25;PROGRAMADOR´);
  MyStList.Add(´DEVMAN;;WEBMASTER´);
  MyStList.SaveToFile(´C:\temp\Pontoevirgula.txt´);
  FreeAndNil(MyStList);
end;
Espero não ter sido infeliz em meu exemplo.


Responder

Gostei + 0

23/09/2009

Osocram

Eu acho que com as respostas do MarcosRocha e Fabiano Góes vão resolver o seu problema.

Mas tem um detalhe que eu estava pensando, vc tem que gerar isso em um layout especifico?

Ou é o seu programa que vai ler?

Pois assim.... Se tiver um layout especifico... tem que seguir ele, não tem o que fazer.
Agora se vc mesma que vai fazer o programa que vai ser esse arquivo, da para usar recursos interessante do TStrings, como commaText, entre outros.


Responder

Gostei + 0

23/09/2009

Marcosrocha

Como diz a frase: Existem Mil maneiras de preparar um bug... Invente uma! :oops:


Responder

Gostei + 0

24/09/2009

Anjinho Loiro

Meu anjo, mas como devo fazer se não estou usando ClientDataSet, mas sim a Query da paleta BDE?

O que eu devo colocar no lugar destas duas linhas por exemplo?

ClientDataSet1.FieldByName(´CODIGO´).AsString+´;´+
ClientDataSet1.FieldByName(´NOME´ ).AsString


Obrigado pela ajuda.


Responder

Gostei + 0

24/09/2009

Marcosrocha

O procedimento é o mesmo:
// Código de Fabiano Góes
procedure TForm1.Button1Click(Sender: TObject); 
var 
  TXT: TStrings; 
begin 
  TXT := TStringList.Create; 
  try 

    // abre a query e se posiciona no primeiro registro 
    Query1.Open; 
    Query1.First; 

    // faz um loop para percorrer todos os registros 
    while not Query1.Eof do 
    begin 
      // faz alguma coisa ... 

      // escreve o arquivo texto, ex.... 
      TXT.Append( 
        Query1.FieldByName(´CODIGO´).AsString+´;´+ 
        Query1.FieldByName(´NOME´  ).AsString 
      ); 

      Query1.Next; 
    end; 

    // Salva o arquivo texto 
    TXT.SaveToFile(´c:\Exemplo.txt´); 

  finally 
    FreeAndNil(TXT); 
  end; 
end;



Responder

Gostei + 0

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

Aceitar