GARANTIR DESCONTO

Fórum Como não consigo carregar um arquivo no RichEdit, existe... #172929

04/08/2003

0

A possibilidade de carregar linha a linha, já que qundo pesso pra abrir pelo Opendialog ele só carrega parte do meu arquivo?

Sem mais...


Wgm8

Wgm8

Responder

Posts

04/08/2003

Leanribas

Qual o tipo do seu arquivo e qual o tamnho dele?


Responder

Gostei + 0

04/08/2003

Wgm8

Eles tem no máximo 100 linha e as colunas não passam de 240

Sem mais...


Responder

Gostei + 0

04/08/2003

Basilio.sp

Caro wgm8,

Seria possível você postar aqui no Fórum (ou me enviar por e-mail) este código que está dando erro e o arquivo que você quer carregar?

Pelo que vi, faz tempo que você está com este problema e gostaria de tentar ajudá-lo.


Responder

Gostei + 0

04/08/2003

Wgm8

A procedure que estou usando pra carregar é esta:


[color=red:95bb332ab7]procedure TForm1.BtCarregarClick(Sender: TObject);
begin
if OpenDialog1.execute then
RichEdit1.Lines.loadfromfile(OpenDialog1.filename);
end;[/color:95bb332ab7]


Responder

Gostei + 0

04/08/2003

Basilio.sp

Caro wgm8,

Desculpe-me.

Coloquei dados a mais...

Considere a resposta somente deste trecho pra baixo:

begin
if (OpenDialog1.Execute) And (Length (OpenDialog1.FileName) >0) then
Begin
RichEdit.ScrollBars := ssBoth;
RichEdit.Lines.Clear;
RichEdit.Lines.LoadFromFile(MyOpenDialog.FileName)
end
else
Application.MessageBox(PChar (´ Erro ao tentar ler o arquivo ´ +
MyOpenDialog.FileName), ´ Erro na abertura do arquivo ´, mb_Ok);
end;


Responder

Gostei + 0

05/08/2003

Wgm8

Pois é não leu o arquivo txt inteiro ele comeu o cabeçalho, tá muito estranho por isso tô lhe enviando o arquivo txt pra dar uma olhada.

Sem mais...


Responder

Gostei + 0

05/08/2003

Basilio.sp

Caro wgm8,

Só tive tempo de dar uma olhada em seu arquivo texto agora...

Vamos lá...

Aparentemente este arquivo é uma saída para relatório em arquivo texto, talvez gerado por um aplicativo Clipper ou algo parecido, certo?

Então é o seguinte... Existem uma série de caracteres de controle neste arquivo (como salto de página, compressão ou expansão de caracteres, etc) que acabam gerando erros no método LoadFromFile do RichEdit.

A solução então seria filtrar o arquivo e, sabendo que o mesmo somente tem caracteres ascii no intervalo de 32 (espaço em branco) a 125 (}) escrevi a seguinte função:

Function LimpaString (strIN: String): String;
var
Counter : Integer;
strOUT : String;
begin

For Counter := 1 to Length (strIN) do
If (Ord (strIN[Counter]) >= 032) and (Ord (strIN[Counter]) <= 125) then
strOUT := strOUT + strIN[Counter];

Result := strOUT;

end;

Para carregar seu arquivo no RichEdit, você poderia fazer o seguinte:

- Abrir um arquivo texto;
- Ler linha a linha;
- Reformatar e carregar no Rich Edit.

Ficaria algo como:

procedure TfrmTeste.btnCarregaClick(Sender: TObject);
var
MyOpenDialog : TOpenDialog;
MyTextFile : TextFile;
Linha : String;
begin

MyOpenDialog := TOpenDialog.Create(self);
MyOpenDialog.Filter := ´Arquivos Texto|*.txt´;
MyOpenDialog.InitialDir := ´C:\´;
MyOpenDialog.Title := ´ Selecione um arquivo para leitura ´;

If (MyOpenDialog.Execute) And (Length (MyOpenDialog.FileName) > 0) then
Begin
AssignFile (MyTextFile, MyOpenDialog.FileName);
Reset (MyTextFile);
RichEdit.ScrollBars := ssBoth; // Permito exibição das Scroolbars
RichEdit.Lines.Clear; // Limpo o RichEdit
RichEdit.Font.Name := ´Courier´; // Troco o fonte para Courier
RichEdit.WordWrap := False; // Evito quebra na linha
While Not (Eof (MyTextFile)) do
Begin
ReadLn (MyTextFile, Linha);
RichEdit.Lines.Add (LimpaString (Linha));
end;
CloseFile (MyTextFile);
end
else
Application.MessageBox(PChar (´ Erro ao tentar ler o arquivo ´ +
MyOpenDialog.FileName), ´ Erro na abertura do arquivo ´, mb_Ok);

end;

Enviarei a aplicação completa para seu e-mail e, caso alguém mais esteja interessado no exemplo, baixe o aplicativo em: http://www.nucleo-net.com/exemplo.zip


Responder

Gostei + 0

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

Aceitar