Importar Arquivo Texto
Rodrigo,
Estou precisando importar arquivo texto dos boletos pagos do arquivo de retorno da CEF, ou seja:
. disponibilizar um TextBox com um botão ao lado pro usuário procurar e abrir o arquivo texto com o retorno da Caixa, após a seleção do arquivo preciso jogar o caminho e o nome do arquivo selecionado no TextBox, em seguida preciso ler o arquivo texto e jogar os títulos num datagrid pra baixá-los automaticamente.
Você pode me ajudar?
Obrigado,
Melk.
Melkcimar Costa
Curtidas 0
Respostas
Rodrigo Mourão
16/01/2010
Olá amigo.
Em primeiro lugar precisamos deixar claro que um procedimento deste tipo na web e muito diferente do procedimento em Win32. Para fazer isso será necessário enviar o arquivo para o servidor, ou seja, fazer upload do arquivo para uma pasta com permissão de escrita no seu servidor web.
Feito isso voce passa a trabalhar com o arquivo que foi enviado para o servidor. Então esse Exibir o caminho do arquivo em um textbox, você quer dizer o caminho de onde o arquivo estava na maquina do cliente, correto ? De cabeça realmente não me lembro se isso é possível pois o caminho e fisico, local e aplicacao esta rodando no servidor.
Vou verificar e em breve post aqui uma sugestão.
Att,
Em primeiro lugar precisamos deixar claro que um procedimento deste tipo na web e muito diferente do procedimento em Win32. Para fazer isso será necessário enviar o arquivo para o servidor, ou seja, fazer upload do arquivo para uma pasta com permissão de escrita no seu servidor web.
Feito isso voce passa a trabalhar com o arquivo que foi enviado para o servidor. Então esse Exibir o caminho do arquivo em um textbox, você quer dizer o caminho de onde o arquivo estava na maquina do cliente, correto ? De cabeça realmente não me lembro se isso é possível pois o caminho e fisico, local e aplicacao esta rodando no servidor.
Vou verificar e em breve post aqui uma sugestão.
Att,
GOSTEI 0
Melkcimar Costa
16/01/2010
Rodrigo, o que estou precisando é exatamente o artigo do link abaixo, mas está em VB.Net e não consegui converter pra delphi .net, penso que vc conseguirá facilmente.
Estou com urgência de resolver isto.
Obrigado,
Melk.
http://www.macoratti.net/vbn_txt.htm
GOSTEI 0
Rodrigo Mourão
16/01/2010
Olá Amigo,
Quando vi sua mensagem abaixa ja tinha feito a minha rotina. Ve se ela te atende. Esta um pouco diferente da o marcoratti.
Adicionei um FileUpload e Um Botão. No clique do botao coloquei o codigo abaixo.
Uses
System.IO, System.Text;
var
RealName, ExtFile,
TempPath, Linha: String;
FileReader: StreamReader;
begin
//Verifica se o usuario selecionou algum arquivo
if FileUpload1.PostedFile.ContentLength <> 0 and FileUpload1.HasFile then
begin
//pega nome real do arquivo
RealName := FileUpload1.FileName;
//pega extensão do arquivo
ExtFile := Path.GetExtension(RealName);
//verificando se o arquivo escolhido é do tipo TXT
if not (ExtFile.Equals('.txt',StringComparison.OrdinalIgnoreCase)) then
begin
Response.Output.Write('<br />Selecione um arquivo TXT<br />');
end
else
begin
//Diretorio Temporário no servidor para enviar o arquivo. Tem que ter permissão
//de escrita neste diretorio
TempPath := 'C:\temp\'+RealName;
//Salvando o arquivo no caminho gerado
FileUpload1.PostedFile.SaveAs(TempPath);
end;
//Cria um arquivo em Memoria para poder ler linha a linha
FileReader := StreamReader.Create(TempPath,Encoding.GetEncoding(1252));
//Lê Linha a Linha até o fim do arquivo
while FileReader.Peek <> -1 do
begin
//Pega o conteudo da linha
Linha := FileReader.ReadLine;
//Verifica se esta vazia
if Linha.Trim().Length > 0 then
begin
//Envia o conteudo para p broswer.
//Coloque aqui seu código para atender sua necessidade.
Response.Output.Write(Linha+'<br>');
end;
end;
FileReader.Close;
end
else
begin
Response.Output.Write('<br />Selecione um arquivo para enviar ao servidor<br />');
end;
end;
Att,
Quando vi sua mensagem abaixa ja tinha feito a minha rotina. Ve se ela te atende. Esta um pouco diferente da o marcoratti.
Adicionei um FileUpload e Um Botão. No clique do botao coloquei o codigo abaixo.
Uses
System.IO, System.Text;
var
RealName, ExtFile,
TempPath, Linha: String;
FileReader: StreamReader;
begin
//Verifica se o usuario selecionou algum arquivo
if FileUpload1.PostedFile.ContentLength <> 0 and FileUpload1.HasFile then
begin
//pega nome real do arquivo
RealName := FileUpload1.FileName;
//pega extensão do arquivo
ExtFile := Path.GetExtension(RealName);
//verificando se o arquivo escolhido é do tipo TXT
if not (ExtFile.Equals('.txt',StringComparison.OrdinalIgnoreCase)) then
begin
Response.Output.Write('<br />Selecione um arquivo TXT<br />');
end
else
begin
//Diretorio Temporário no servidor para enviar o arquivo. Tem que ter permissão
//de escrita neste diretorio
TempPath := 'C:\temp\'+RealName;
//Salvando o arquivo no caminho gerado
FileUpload1.PostedFile.SaveAs(TempPath);
end;
//Cria um arquivo em Memoria para poder ler linha a linha
FileReader := StreamReader.Create(TempPath,Encoding.GetEncoding(1252));
//Lê Linha a Linha até o fim do arquivo
while FileReader.Peek <> -1 do
begin
//Pega o conteudo da linha
Linha := FileReader.ReadLine;
//Verifica se esta vazia
if Linha.Trim().Length > 0 then
begin
//Envia o conteudo para p broswer.
//Coloque aqui seu código para atender sua necessidade.
Response.Output.Write(Linha+'<br>');
end;
end;
FileReader.Close;
end
else
begin
Response.Output.Write('<br />Selecione um arquivo para enviar ao servidor<br />');
end;
end;
Att,
GOSTEI 0
Melkcimar Costa
16/01/2010
Rodrigo, blz, é isto mesmo, mas o FileUpload que tenho disponivel na ToolBox do Delphi 2005 é o dos controles HTML, até coloquei na página, ele abre o diálogo, mas pelo que vi na internet tem que escrever código pra ele funcionar, aguardo vossa ajuda.
Outra coisa, tem como abrir o arquivo texto na máquina cliente gravado em um endereço físico no disco do cliente, sem ter de fazer o upload?
Obrigado,
Melk.
GOSTEI 0
Rodrigo Mourão
16/01/2010
Olá Amigo, desculpe a demora.
Como não tenho o 2005 não pude tentar mas coloque um Fileupload da HTMLControls mesmo. De um clique com o botão direito do Mouse e selecione Run At Server ou algo similar a isso.
A partir dai você poderá trabalhar com ele normalmente.
Caso não tenho esta opaco me avise.
Att,
GOSTEI 0
Melkcimar Costa
16/01/2010
Rodrigo, tive de fazer umas poucas modificações, pra pegar somente o
nome do arquivo sem o path, por exemplo, mas deu td certo, muito obrigado.
GOSTEI 0