romario Postado Outubro 9, 2004 Denunciar Share Postado Outubro 9, 2004 Aew pessoal, meu programa esta todo explicadinho aew nele mesmo.Ele converte um arquivo.txt para outro arquivo.txt em formatação diferente.O problema é que a conversão trava com arquivos muito grandes. (32Mb)Eu consegui converter no max 26Mb... e eu ainda acho, que dependendo do computador, ele deve travar antes! Me dêem um help para fazer o programa gravar qualquer tamanho de arquivo!!valewz!!unit conversor;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Buttons, ExtCtrls, StdCtrls, ToolWin, ComCtrls, Gauges;type Tconversor_dados = class(TForm) Button_fechar: TSpeedButton; Abrir: TOpenDialog; SpeedButton_abrir: TSpeedButton; ButtonConverte: TButton; Salvar: TSaveDialog; barra: TGauge; Edit1: TEdit; Edit2: TEdit; Label1: TLabel; Label2: TLabel; ButtonSalva: TButton; Edit3: TEdit; procedure Button_fecharClick(Sender: TObject); procedure SpeedButton_abrirClick(Sender: TObject); procedure ButtonConverteClick(Sender: TObject); procedure ButtonSalvaClick(Sender: TObject); private { Private declarations } public { Public declarations } end;var conversor_dados: Tconversor_dados; ArqTxt,Entrada : TextFile;implementation{$R *.DFM}procedure Tconversor_dados.Button_fecharClick(Sender: TObject);beginApplication.terminate;end;//botão abrirprocedure Tconversor_dados.SpeedButton_abrirClick(Sender: TObject);begin barra.Progress:=0; Edit3.Text:=''; Edit2.Text:=''; Abrir.Execute; ButtonSalva.Enabled:=true; AssignFile(Entrada,Abrir.filename); Reset(Entrada); Edit1.Text:=Abrir.FileName;end;//botão converterprocedure Tconversor_dados.ButtonConverteClick(Sender: TObject);const Branco=' ';varlinha,ant,data,hora,c,d,e,f,g,h,sinald,sinale,linhaconv:string;x,y,z:Integer;auxd,auxh,auxe,auxg:real;dado: array[1..15] of string;beginReWrite(ArqTxt);while EoF(Entrada)=false dobegin//progress barz:=Round((100*FilePos(Entrada))/FileSize(Entrada));barra.Progress:=z;ReadLn(Entrada,linha);//exemplo da linha de entrada//0 08/12/2003 22:00 479011500 -24.0812 -53.3602 0 -22 5 2 136.4 .5 .3 8//nesse while, ele vai copiando cada coluna para um vetor dado[x]//quando acha espaço em branco, pula para o prox vetor dado[x+1]x:=1; while x <> 10 do Begin if copy(linha,1,1) <> Branco then begin dado[x]:=dado[x]+copy(linha,1,1); delete(linha,1,1); ant:='informacao'; end Else begin delete(linha,1,1); if ant='informacao' then begin x:=x+1; end; ant:='espaco'; end; end;//conversao de formatosdata:=copy(dado[2],1,5)+'/'+copy(dado[2],9,2);hora:=copy(dado[3],1,2)+copy(dado[3],4,2);c:=copy(dado[4],1,5);f:=copy(dado[8],1,1);auxh:=StrToFloat(dado[9]);h:=FormatFloat('000',auxh);sinald:=copy(dado[5],1,1);delete(dado[5],1,1);auxd:=StrToFloat(dado[5]);d:=FormatFloat('0.0000',auxd);sinale:=copy(dado[6],1,1);delete(dado[6],1,1);auxe:=StrToFloat(dado[6]);e:=FormatFloat('0.0000',auxe);auxg:=StrToFloat(dado[8]);auxg:=Abs(auxg)*1000;g:=FloatToStr(auxg);if auxg<99999 then beging:=' '+g;end;linhaconv:=data+' '+hora+'.'+c+f+h+' '+sinald+d+' '+sinale+e+' '+g+'';// fim da conversão e gravação do arquivoWriteln(ArqTxt,linhaconv);//limpando variaveisdado[1]:='';dado[2]:='';dado[3]:='';dado[4]:='';dado[5]:='';dado[6]:='';dado[7]:='';dado[8]:='';dado[9]:='';dado[10]:='';data:='';hora:='';linha:='';ant:='';c:='';d:='';e:='';f:='';g:='';sinald:='';sinale:='';end;linhaconv:='';//fecha e finaliza conversaoCloseFile(ArqTxt);CloseFile(Entrada);Edit3.text:='Conversão Feita!';ButtonSalva.Enabled:=false;ButtonConverte.Enabled:=false;barra.Progress:=100;end;//botão salvar seleciona o nome do arquivo q sera salvoprocedure Tconversor_dados.ButtonSalvaClick(Sender: TObject);beginSalvar.execute;AssignFile(ArqTxt,Salvar.filename);Edit2.Text:=Salvar.FileName;ButtonConverte.Enabled:=true;end;end.brigadão ! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 romario Postado Outubro 9, 2004 Autor Denunciar Share Postado Outubro 9, 2004 poxa! acho q o meu programa num tem limite de tamanho não! era um erro no arquivo de entrada !!!mas mesmo assis, se tiver como optimizar utilzando algum parametro, seria util =) Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
romario
Aew pessoal, meu programa esta todo explicadinho aew nele mesmo.
Ele converte um arquivo.txt para outro arquivo.txt em formatação diferente.
O problema é que a conversão trava com arquivos muito grandes. (32Mb)
Eu consegui converter no max 26Mb... e eu ainda acho, que dependendo do computador, ele deve travar antes!
Me dêem um help para fazer o programa gravar qualquer tamanho de arquivo!!
valewz!!
brigadão !
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
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.