Kopiowanie WSZYSTKICH plików

0

Mam problem poszukuje procedury w Pascalu która kopiuje każdy plik. Procedura podana w dziale faq nie działa np. na plikach graficznych. Wiem że dla wielu pytanie to wydaje sie banalne ale prosze o wyrozumiałość. Kod procedury z faq to

assign(g,'plik1.txt'); {kojarzymy pliki}
assign(f,'plik2.txt');
reset(g); {otwieramy jeden}
rewrite(f); {tworzymy drugi}
while not eof(g) do
begin {dopóki plik1.txt się nie skończy}
readln(g,k); {czytaj z niego}
writeln(f,k); {i zapisuj do 'plik2.txt'}
end;
close(f);
close(g);

0

takie kopiowanie to jak łapanie pchły za pomoca dźwigu (lub odwrotnie)... w module dos masz przeciez gotowe funkcje do kopiowania... a jak nie to przeczytaj w helpie o "File of byte" i kopiowaniu po bajcie (zamiast readln jest read)

0

assign(g,'plik1.txt'); {kojarzymy pliki}
assign(f,'plik2.txt');
reset(g); {otwieramy jeden}
rewrite(f); {tworzymy drugi}
while not eof(g) do
begin {dopóki plik1.txt się nie skończy}
readln(g,k); {czytaj z niego}
writeln(f,k); {i zapisuj do 'plik2.txt'}
end;
close(f);
close(g);

Bo ta procedurka operuje na plikach w trybie tekstowym wiec nie dziala z plikami binarnymi

Musialo by chyba byc cos w stylu

Var g,f :File Of Byte;
size :Integer;
buf :Array[0..16000] of byte; //bufor na dane - rozmiar moznaby zmieniac

potem otwarcie tak samo jak bylo

a potem w tej petli repeat until zamiast ReadLn i WriteLn to

BlockRead(G,buf,16000,Size);
BlockWrite(F,buf,Size);

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