Jump to content
Fórum Script Brasil
  • 0

Ler arquivo txt em um edit


lucke

Question

Oi pessoal!

Estou com um problema aki...

Quero carregar um arquivo txt em um edit, mas não sei como fazer...

Tipo assim:

A pessoa digita no Edit1.text o endereço do arquivo, clica no botão que vai carregar o endereço escrito, e colocasse o texto contido no arquivo no Edit2.text

alguém me da um help?

Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0
Quero carregar um arquivo txt em um edit, mas não sei como fazer...

... e colocasse o texto contido no arquivo no Edit2.text

Não! Voce não quer carregar em um Edit.Text! ;)

Voce não quer porque você não pode.

O componente TEdit é para ser aplicado no caso em que você tem apenas uma (01) linha de texto. O que você quer fazer é carregar múltiplas linhas e para isto você tem que usar um TMemo.

A menos que você realmente precise permitir ao usuário digitar o caminho em um edit, a opção mais simples é adicionar um botão (TSpeedButton) que acione a caixa de diálogo que permitirá a seleção do arquivo desejado.

O componente é o OpenDialog. Veja este exemplo:

procedure TForm1.SpeedButtonOnClick(sender :TObject);
begin
// *** estas propriedades você pode definir em design-time - no editor de propriedades do componente
  OpenDialog1.Title := 'Arquivo a importar';
  OpenDialog1.Filter := 'Text files (*.txt)|*.txt|All files (*.*)|*.*';
  OpenDialog1.FilterIndex := 2;
  OpenDialog1.InitialDir := 'c:\';
//**********
  if OpenDialog1.Execute then  // significa que foi selecionado um arquivo
  begin
    Memo1.Lines.Clear;
    Memo1.Lines.LoadFromFile(OpenDialog1.FileName);
  end;
End;

Link to comment
Share on other sites

  • 0
Quero carregar um arquivo txt em um edit, mas não sei como fazer...

... e colocasse o texto contido no arquivo no Edit2.text

Não! Voce não quer carregar em um Edit.Text! ;)

Voce não quer porque você não pode.

O componente TEdit é para ser aplicado no caso em que você tem apenas uma (01) linha de texto. O que você quer fazer é carregar múltiplas linhas e para isto você tem que usar um TMemo.

A menos que você realmente precise permitir ao usuário digitar o caminho em um edit, a opção mais simples é adicionar um botão (TSpeedButton) que acione a caixa de diálogo que permitirá a seleção do arquivo desejado.

O componente é o OpenDialog. Veja este exemplo:

procedure TForm1.SpeedButtonOnClick(sender :TObject);
begin
// *** estas propriedades você pode definir em design-time - no editor de propriedades do componente
  OpenDialog1.Title := 'Arquivo a importar';
  OpenDialog1.Filter := 'Text files (*.txt)|*.txt|All files (*.*)|*.*';
  OpenDialog1.FilterIndex := 2;
  OpenDialog1.InitialDir := 'c:\';
//**********
  if OpenDialog1.Execute then  // significa que foi selecionado um arquivo
  begin
    Memo1.Lines.Clear;
    Memo1.Lines.LoadFromFile(OpenDialog1.FileName);
  end;
End;
Boa noite Micheus, recentemente em meu trabalho, tive que migrar urgentemente do "Php" para o "Dephi 10('Embarcadero')". Na verdade o nosso programador foi demitido e na falta de um programador Delphi fui designado para o serviço... Bom, gostaria que você pudesse me ajudar apenas me respondendo esta pergunta, que talvez seja um tanto infundamentada, mas como falei acima, sai do "Php(web)" para "Delphi(desktop)", estou meio perdido neste começo de adaptação. Vou direto a pergunta e desde já agradeço a atenção. Teria a possibilidade de ler um arquivo '.txt' assim como é feito no php por exemplo? Ex.: No php eu faria=>
$abrir = fopen('c:\\arquivo.txt', 'r'); 
 while(!feof($abrir){ 
   $linha = fgets($abrir); //faço a leitura de linha por linha
  }
  fclose($abrir);

Link to comment
Share on other sites

  • 0
Teria a possibilidade de ler um arquivo '.txt' assim como é feito no php por exemplo?

Ex.: No php eu faria=>

$abrir = fopen('c:\\arquivo.txt', 'r'); 
 while(!feof($abrir){ 
   $linha = fgets($abrir); //faço a leitura de linha por linha
  }
  fclose($abrir);
Sem dúvidas. Se voce realmente precisa processar as linhas deste jeito mesmo, então este seria o exemplo.
var
   SomeTxtFile : TextFile;
   buffer : string;
begin
  AssignFile(SomeTxtFile, 'c:\arquivo.txt');  // aqui você vincula o nome à variável do tipo textfile
  Reset(SomeTxtFile);  // aqui estamos abrindo para leitura apenas
  while not Eof(SomeTxtFile) do
  begin
    ReadLn(SomeTxtFile, buffer);   // lendo uma linha inteira - até o &13&10 (aquele "Ln" diz isto)
  end;
  CloseFile(SomeTxtFile);  // fechando o arquivo
end;

Se não me engano estas funções estão na unit SysUtils. Caso tenha erro de compilação, verifique se ela está na cláusula "uses". Se estiver e ainda assim as procedures não forem reconhecidas, então estou errado e você deve acionar o help para descobrir onde encontrá-las - tarefa fácil, apenas posicione o cursor no meio do nome da função e acionde Ctrl+F1.

Há outras funções para manipular arquivos, mas acredito que este conjunto lhe sirva, já que é o mais parecido com o que você está acostumado a trabalhar.

Dica: Se voce não tem problemas em ler em Inglês, use muito o Help - O Delphi tem um help muito completo, bem documentado e com fraguimentos de código exemplo. (aprendi Delphi usando o Help, não livros)

Link to comment
Share on other sites

  • 0

Cara, lhe agradeço muito mesmo pela ajuda. Desculpa a demora em responder, tive alguns imprevistos, mas, vou fazer isto agora mesmo e logo volto para dizer o resultado....denovo, muito obrigado e qualquer coisa estamos aí. até :D

Cara, acabei de testar e é exatamente o que queria, valeu pela ajuda e até.

Edited by jlcSampaio
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...