kopiowanie plikow pascal

Odpowiedz Nowy wątek
meki
2004-11-05 13:57
meki
0

mam problem z kopiowaniem plikow.

kopiuje tym :

var arch2, kopia2: text;
linia: string ;

begin
assign (arch2, 'c:\arch2.dat') ;
assign (kopia2, 'c:\kopia2.txt') ;

 reset (arch2) ;
 rewrite (kopia2) ;
 repeat
       readln (arch2, linia) ;
       write (kopia2, linia) ;
 until eof (arch2) ;
 close (arch2) ;

end.

ale jezeli plik ma wiecej niz 4kb reszta jest obcinana.

prosze o szybka pomoc ;]

Pozostało 580 znaków

2004-11-05 14:12

Rejestracja: 16 lat temu

Ostatnio: 7 lat temu

0

już nie pamiętam ale wiem że ja też miałem na początku problemy z kopiowaniem plików, jak znajde mój programik co kopiował to podam kod

BTW co to za typ: text:

var arch2, kopia2: text;


Dwie zasady gwarantujące sukces:
1. Nigdy nie mów nikomu wszystkiego<span style="color: white">

Pozostało 580 znaków

2004-11-05 14:26
Moderator

Rejestracja: 17 lat temu

Ostatnio: 7 godzin temu

0

typ pliku tekstowego... (text albo textfile)

Pozostało 580 znaków

2004-11-05 16:16

Rejestracja: 16 lat temu

Ostatnio: 7 lat temu

0
procedure copyfile(sour,dest:string);
var fs,fd:file;
    l:word;
    buf:pointer;
const bufsize=16384;
begin
  getmem(buf,bufsize);
  assign(fs,sour);
  assign(fd,dest);
  reset(fs,1);
  if inoutres<>0 then exit;
  rewrite(fd,1);
  while filesize(fs)-filepos(fs)>0 do
    begin
      if filesize(fs)-filepos(fs)>bufsize
        then l:=bufsize
        else l:=filesize(fs)-filepos(fs);
      blockread(fs,buf^,l);
      blockwrite(fd,buf^,l)
    end;
  close(fs);
  close(fd);
  freemem(buf,bufsize)
end;

// do postu ponizej... nie zauwazylem... uint, to po prostu word, moze byc integer, czy cokolwie, tak aby bufsize sie zawierało w zakresie


Linuksa, czy innego Uniksa, można opisać za pomocą logiki boolowskiej a nie za pomocą prawdopodobieństwa.

'System szesnastkowy jest wspaniały! W skali od 1 do 10 daję mu E'

extreme safety for Ubuntu:
sudo echo -e 'Defaults targetpw\nDefaults timestamp_timeout=0' >> /etc/sudoers

Pozostało 580 znaków

meki
2004-11-05 18:04
meki
0

mam 2 problemy z ta procedura
1) nie rozumiem jej (byl bym bardzo zadowolony jak by ktos byl tak mily odeslac mnie na jakis kurs albo to w miare dokladnie wytlumaczyc)
2) nie chce dzialac tzn przy l: uint ; wyskakuje unknown identifier (zmienilem na integer i podzialalo)

Pozostało 580 znaków

2004-11-05 18:39

Rejestracja: 15 lat temu

Ostatnio: 14 lat temu

0
procedure CopyFile(InputFileName, OutputFileName : STRING);
var
   InputF  ,
   OutputF  : TEXT;
   C        : chaR;

BeGiN
 assign(InputF, InputFileName);
 assign(OutputF, OutputFileName);
 {$i-}
 reset(InputF);
 if (IOResult <> 0) then EXIT;
 rewrite(OutputF);

 while (not eof(InputF)) do
  begin
    read(InputF, C);
    write(OutputF, C);
  end;

 {$i+}
 close(OutputF);
 close(InputF);
EnD;

U mnie działa. Jako parametry podajesz NAZWE plików: wejściowego i wyjściowego.

Jak mozna się domyślić procedura kopiuje plik znak po znaku, aż do osiągnięcia końca pliku. Ja zawsze używam takiej procedury :-/ ...

Mam nadzieję, że jej treść jest zrozumiała...

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0