Jump to content

Recommended Posts

Posted

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

Posted

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

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

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

Abraço

Posted

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  😄

Abraço

Nat0ne

Posted

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

Posted

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • 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.