[Pascal] Pytanko

0

Czy w Pascalu mozna odczytac zawartosc jednego pliku i zapisac ja do drugiego?

0

jasne ze mozna :)

0

Czadu : (yeeeeeeeah)

var

FromF, ToF: file;
NumRead, NumWritten: Integer;
Buf: array[1..2048] of Char;
begin
AssignFile(FromF, 'plikzktorego.cos');
Reset(FromF, 1); { Record size = 1 }
AssignFile(ToF, 'plikdoktorego.cos');
Rewrite(ToF, 1); { Record size = 1 }
repeat
BlockRead(FromF, Buf, SizeOf(Buf), NumRead);
BlockWrite(ToF, Buf, NumRead, NumWritten);
until (NumRead = 0) or (NumWritten NumRead);
CloseFile(FromF);
CloseFile(ToF);
end;

//wziete zywcam z helpa ;]

0

var
Buf: array[1..2048] of Char;

Przy okazji mam pytanie: Dlaczego bufor ma akurat 2 kB. Od czego zalezy wielkosc bufora do ktorego wczytujemy fragment pliku w tym przykladzie. Wydaje mi sie ze im wiekszy tym lepiej bo dla duzych plikow procedura wykona sie szybciej. Jesli program w pascalu dostaje do dyspozycji 64kB pamieci to rownie dobrze bufor mogl by miec np. 63kB a reszta na inne drobne zmienne.

0

var
Buf: array[1..2048] of Char;

Przy okazji mam pytanie: Dlaczego bufor ma akurat 2 kB. Od czego zalezy wielkosc bufora do ktorego wczytujemy fragment pliku w tym przykladzie. Wydaje mi sie ze im wiekszy tym lepiej bo dla duzych plikow procedura wykona sie szybciej. Jesli program w pascalu dostaje do dyspozycji 64kB pamieci to rownie dobrze bufor mogl by miec np. 63kB a reszta na inne drobne zmienne.

Im większy tym lepiej, ale bez przesady. Jeżeli kopiujesz wiele małych pliczków to nic nie da zwiększanie bufora. Wydaje mi się (ale pewien nie jestem), że chyba najbardziej optymalnym byłby rozmiar równy wielkości klastra.

0

Wydaje mi się (ale pewien nie jestem), że chyba najbardziej optymalnym byłby rozmiar równy wielkości klastra.

Mysle, ze chyba niekoniecznie, bo winda robi jakis read-ahead.

0

Wydaje mi się (ale pewien nie jestem), że chyba najbardziej optymalnym byłby rozmiar równy wielkości klastra.

Troche glupie pyt. przy okazji...
...jaka to jest wielkosc jednego klastra?

P. S. Sorx, ze nie zrobilem nowego tematu, ale nie widzialem potrzeby.

0

Wydaje mi się (ale pewien nie jestem), że chyba najbardziej optymalnym byłby rozmiar równy wielkości klastra.

Troche glupie pyt. przy okazji...
...jaka to jest wielkosc jednego klastra?

P. S. Sorx, ze nie zrobilem nowego tematu, ale nie widzialem potrzeby.

Na to pytanie nikt ci nie odpowie, wszystko zależy od rodzaju partycji i jej wielkości
Dla Fat32 i patrycji do 8MB jest to 4kB

Ale możesz sam to sprawdzić:
utwórz plik tekstowy wpisz do niego jeden znak i zapisz go
teraz sprawdz właściwości pliku i odczytaj rozmiar na dysku.

jeśli masz kilka partycji to przenieś plik na kolejne partycje i odczytuj rozmiar.

0

<font color="green">Dla Fat32 i patrycji do 8MB jest to 4kB </span>

Nieprawda - może dla Fat32 ale na pewno nie dla partycji tylko do 8 mb !! (nawet nie tylko dla 8 gb!)

0

<font color="green">Dla Fat32 i patrycji do 8MB jest to 4kB </span>

Nieprawda - może dla Fat32 ale na pewno nie dla partycji tylko do 8 mb !! (nawet nie tylko dla 8 gb!)

[wstyd] tak 8 GB oczywiście , a dokładniej 8,02 GB

poniżej dane z pqMagic`a

DOS and Windows default FAT cluster sizes

Partition Size (MB) FAT Type Sectors Per Cluster Cluster Size
0-15 12-bit 8 512 bytes
16-127 16-bit 4 2 K
128-255 16-bit 8 4 K
256-511 16-bit 16 8 K
512-1,023 16-bit 32 16 K
1,024-2,047 16-bit 64 32 K
2,048-4,096 16-bit 128 64 K*
*Only available with Windows NT.

Windows 95 OEM Service Release 2, Windows 98, Windows Me, and Windows 2000/XP default FAT32 cluster sizes

Partition Size (GB) Sectors Per Cluster Cluster Size
0.256-8.01 8 4 K
8.02-16.02 16 8 K
16.03-32.04 32 16 K

32.04 64 32 K

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