Jump to content
Sign in to follow this  
Nat0ne

Delphi Escrita Ficheiro

Recommended Posts

Nat0ne

Boas,

Estou a tentar copiar o conteúdo de um ficheiro para outro, mas estou a ter um problema com a escrita que não sei como resolver. Sei que o problema é de escrita porque passo o ficheiro todo para uma variável e consigo mostrá-la numa label. (neste caso é de texto e é pequeno, mas o meu objectivo é conseguir fazer isso para um ficheiro qualquer)

O código é este em baixo, e agradeço qualquer dica que saibam dar.

----------------------------------------------------------------------------------------

unit Unit1;

interface

uses

  Classes, SysUtils, Dialogs, NMUDP, Math, winsock, Windows, Messages,

  Graphics, Controls, Forms, ScktComp, Menus, StdCtrls, ExtCtrls;

type

  TForm1 = class(TForm)

    Button1: TButton;

    Label1: TLabel;

    procedure Button1Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  Form1: TForm1;

  fout: File;

  fin: File;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);

var

  dataArray: string;

  fileSizeValue,i:integer;

begin

  assignFile(fin,'in.txt');

  reset(fin, 1);

  fileSizeValue:=fileSize(fin);

  setLength(dataArray, fileSizeValue);

  i:=1;

  while not EOF(fin) do

    begin

      blockRead(fin,dataArray, 1);

      i:=i+1;

    end;

  CloseFile(fin);

  Label1.Caption:=dataArray;

  assignFile(fout,'out.txt');

  reWrite(fout);

  blockWrite(fout, dataArray, fileSizeValue);

  CloseFile(fout);

end;

end.

----------------------------------------------------------------------------------------

Cumps

Nat0ne

Share this post


Link to post
Share on other sites
bsntuga

Olá, nao te esqueças que ja nao tas no simple pascal, tas no delphi :D

Podes usar o memo1, opendialog!, savedialog!!!, muito simples de usar, e pouco risco de correr erros :P

Memo1.Lines.LoadFromFile('ficheiro.txt');
Memo1.Lines.SaveToFile('ficheiro_copia.txt');

Abraço

Share this post


Link to post
Share on other sites
Nat0ne

Olá,

Certo, mas eu precisava de conseguir escrever dessa maneira, porque, na verdade, o meu programa é mais complexo, pois eu recebo o ficheiro por sockets, em blocos. Só que não consigo copiar a informação correcta para um ficheiro através da função blockWrite.

Obrigado pela sugestão, e agradeço se conseguires dar uma nova para este problema  :D

Abraço

Nat0ne

Share this post


Link to post
Share on other sites
Nat0ne

Boas,

Como assim? O dataArray é uma string e eu consigo mostra-lo numa label, onde vejo que o conteúdo está correcto. Por isso, como ja disse, o problema deve ter a ver com escrita... :S

Share this post


Link to post
Share on other sites
Nat0ne

Certo bsntuga, funciona porque é um ficheiro de texto. E mesmo assim funcionando, não é boa programação usar o memo só para isso.

Mas o que eu pretendo é escrever em ficheiros binários por blocos.

Obrigado

Share this post


Link to post
Share on other sites
Nat0ne

Já resolvi, altera-se isto nos respectivos sitios:

  fout: File of byte;

  fin: File of byte;

  reset(fin);

  blockWrite(fout, dataArray[1], fileSizeValue);

Share this post


Link to post
Share on other sites
bsntuga

hum, nice, e que eu nao tou habituado a usar esses comandos, ainda bem que resolveste o teu problema, e dclp nao te ter ajudado de outra forma :P

Share this post


Link to post
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
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  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.

Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.