Ir para conteúdo
Fórum Script Brasil
  • 0

Gerando Arquivos Csv Em Delphi


Nosdaj

Pergunta

e ai galera, preciso enviar só o meu EXE(PARA VARIOS LUGARES) sem uma base de dados, onde os usuários ao inserir as informações atraves dos formularios disponibilizados pela aplicação, armazenasseM estas informações em arquivos txt, pois este arquivos txt por sua vez seriam exportados, e seriam armazenados em uma base de dados unica, grato pela atenção.

e-mail:jadsonleao@pop.com.br

messenger: nosdaj@hotmail.com

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

Olá Nosdaj,

ai vai um exemplo de gerar arquivo txt, nesse exemplo to usando uma tabela (CLIENTES) do banco de dados DBDEMOS que acompanha o delphi.

procedure TForm1.BitBtn1Click(Sender: TObject);
var
   ArqTxt : TextFile;
   Linha1, campo1, campo2, campo3 : string;
begin
   AssignFile(ArqTxt, 'C:\Meus documentos\ARQUIVO_TEXTO.TXT');
   Rewrite(ArqTxt);

   Query1.Close;
   Query1.Open;
   while not Query1.Eof do begin
      campo1 := Query1.FieldByName('LAST_NAME').AsString;
      campo2 := Query1.FieldByName('FIRST_NAME').AsString;
      campo3 := Query1.FieldByName('SS_NUMBER').AsString;
      Linha1 := campo1+campo2+campo3;
      Writeln(ArqTxt, Linha1);
      Query1.Next;
   end;
   CloseFile(ArqTxt);
end;
ou
procedure TForm1.Button2Click(Sender: TObject);
var
  ArqTxt : TextFile;
  Linha1, FormaLinha : string;
begin
   AssignFile(ArqTxt, 'C:\Meus documentos\ARQUIVO_TEXTO.TXT');
   Rewrite(ArqTxt);

   Query1.Close;
   Query1.Open;
   while not Query1.Eof do begin
      FormaLinha := Query1.FieldByName('LAST_NAME').AsString;
      Linha1 := Linha1+FormaLinha;

      FormaLinha := Query1.FieldByName('FIRST_NAME').AsString;
      Linha1 := Linha1+FormaLinha;

      FormaLinha := Query1.FieldByName('SS_NUMBER').AsString;
      Linha1 := Linha1+FormaLinha;
    
      Writeln(ArqTxt, Linha1);
      Linha1 := '';
      Query1.Next;
   end;
   CloseFile(ArqTxt);
end;

O resultado é o mesmo, a unica diferença é que na primeira é usada uma variável pra cada campo da tabela, e a segunda apenas uma.

Abs. Progr'amador. wink.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Programdor obrigado pela dica, me diz uma coisa neste exemplo de gerar os arquivos txt, no meu caso não se utiliza banco de dados, só se tem edit's, onde os dados dos edit's quero armazenar em um txt e posteriormente pegar estes arquivos txt e armazena-los em banco de dados interbase.

Link para o comentário
Compartilhar em outros sites

  • 0

Hum, foi mal, agora que eu li direito, tongue.gif você num ta usando tabela.

Deixa eu ver se entendi:

você quer gravar o que esta nos edits do form em arquivo de texto, mas sempre adicionando linhas no arquivo, tipo assim: cada vez que você clicar num botão(por exemplo), adiciona as informações dos edits numa nova linha do arquivo, sem apagar as linhas já existentes.

é isso???

Abs. Progr'amador.

Link para o comentário
Compartilhar em outros sites

  • 0

Amigo programador, tenho forms de cadastro de cooperativas, diretores, funcionários, associados e etc, para cada form deste quero gerar uma tabela em txt referente a cada form com os dados armazenados(nos EDIT'S), pois quando estes arquivos forem exportados quero que sejam inseridos nas tabelas em uma base de dados interbase. Onde cada tabela em txt seja referente a uma tabela no interbase..

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Nosdaj,

Eu sou meio cabeça dura pra entender as coisas mesmo tongue.gif .

Ai vai um codigo que grava valores de três Edits em um arquivo texto, lembrando que ele grava como se fosse uma tabela mesmo, vamos supor que você tenho inserido tres registros, quando você for inserir outros registro, será inserido abaixo das linhas já existentes.

procedure TForm1.Button1Click(Sender: TObject);
var
 ArquivoLinha : array[1..100] of String;
 ArqTxt : TextFile;
 Linha, FormaLinha : string;
 i, iX, nX : Integer;
begin
  AssignFile(ArqTxt,'C:\Meus documentos\arquivo_texto.txt');
  Reset(ArqTxt);
  i := 0;
  while not eof(ArqTxt) do begin
     i := i + 1;
     Readln(ArqTxt, Linha);
     ArquivoLinha[i] := Linha;
  end;
  Linha := '';
  Closefile(ArqTxt);
  iX := i;

  AssignFile(ArqTxt, 'C:\Meus documentos\arquivo_texto.txt');
  Rewrite(ArqTxt);

  nX := 0;
  for i := 0 to iX do begin
     nX := nX + 1;
     FormaLinha := ArquivoLinha[nX];
     if FormaLinha <> '' Then
        Writeln(ArqTxt, FormaLinha);
  end;

  FormaLinha := Edit1.text;
  Linha := Linha + FormaLinha;

  FormaLinha := Edit2.text;
  Linha := Linha + FormaLinha;

  FormaLinha := Edit3.text;
  Linha := Linha + FormaLinha;

  Writeln(ArqTxt, Linha);

  CloseFile(ArqTxt);
end;

Detalhe: Para esse caso o arquivo terá que ser criado antes de executar esse código.

Qualquer dúvida posta ae, falou!!! wink.gif

Abs. Progr'amador.

Link para o comentário
Compartilhar em outros sites

  • 0

Programador, grato pela suas dicas, mas me diz uma coisa você já mecheu com csv(CAMPO SEM VIRGULA), pois o antigo sistema que será mudado pelo que estou fazendo utiliza o csv, onde segue a mesma lógica do txt. Este sistema gera arquivos csv criptografados que são exportados para uma base(SISTEMA ESTADUAL) onde eles são importados para dentro do sistema, armazenando no banco. Desculpe por esta duvida em usar o txt ou o csv, é porque sou novo em desenvolvimento em delphi e dando uma olhada vi que no antigo sistema utilizaram o CSV, não sei qual dos dois seria mais viável de implementar, espero sua dica, obrigado.

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Nosdaj,

NA verdade eu nunca usei esse tipo da arquivo (CSV), no entanto, o pouco que já ouvi, posso te dizer que é mais fácil e viável trabalhar com arquivo texto (TXT), se houver possibidade, te aconselho a usar TXT.

Outra coisa:

Qual é a diferença entre elhes? o que esse CSV faz?

na verdade eu nunca vi um arquivo desse, só ouvi falar.

Abs. Progr'amador.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...