1. Prinsip Pemotongan/Kombinasi File
Pemotongan file adalah untuk memotong file menjadi beberapa file kecil. Metode ini adalah membaca objek file dalam bentuk "aliran file" dan kemudian menyimpannya ke file sesuai dengan ukuran blok tertentu. Kombinasi file berarti menggabungkan beberapa file menjadi satu file. Misalnya, prinsip ini digunakan untuk alat pengemasan (bijak). Jika Anda terbiasa dengan konsep "aliran", maka akan mudah diimplementasikan. 2. Sadarilah
Buat proyek baru di Delphi, lalu tambahkan dua tombol, satu edit, satu openDialog, dan satu saveDialog ke formulir, dan kemudian ubah judul Button1 menjadi "potong", dan keterangan tombol2 menjadi "kombinasi" (Catatan: Lainnya kontrol dihilangkan atribut). Klik dua kali tombol1 dan tombol2 dan tulis kode berikut:
// potong file
Prosedur TFORM1.BUTTON1CLICK (Pengirim: Tobject);
var
Saya, WantsFragsize, RealTowrite: Integer;
// Nyatakan dua objek aliran file
// Instream adalah objek aliran file sumber input, dan outstream adalah objek aliran file output
Instream, outstream: tfilestream;
S: string;
Mulai
Jika OpenDialog1.Eksecute maka
Mulai
SaveDialog1.title: = 'Masukkan nama file pemotongan yang ingin Anda simpan';
Jika Savedialog1.Eksecute maka
Mulai
WantedFragSize: = Strtoint (Edit1.Text);
I: = 0;
// Buat objek aliran file input dengan cara read-only
Instream: = tfilestream.create (
OpenDialog1.filename, fMopenread);
Mencoba
// Jika posisi pointer saat ini dari aliran instream tidak ada di akhir, baca data dan simpan ke dalam file sesuai dengan ukuran blok yang ditentukan //
while (instream.position <instream.size) do
Mulai
s: = inttoStr (i);
sementara panjang <3 do d: = '0'+s;
S: = '.'+S;
// menghasilkan ekstensi file cut, gunakan tiga digit sebagai ekstensi untuk memfasilitasi kombinasi file
// Jika ukuran blok yang tersisa dalam instream lebih kecil dari ukuran blok yang ditentukan, simpan nomor blok yang tersisa // data ke dalam file
If instream.size - instream.position <wantedfragsize maka
Realtowrite: = instream.size - instream.position
kalau tidak
Realtowrite: = WantedFragSize;
// Buat objek aliran file output
Outstream: = tfileStream.create (saveDialog1.fileName+S, fmcreate);
mencoba
Outstream.copyfrom (instream, realtowrite);
Inc (i);
Akhirnya
// Lepaskan objek aliran file output
Outstream.free;
akhir;
akhir;
Akhirnya
Instream.free;
akhir;
akhir;
akhir;
akhir; // file kombinasi
Prosedur TFORM1.BUTTON2CLICK (Pengirim: Tobject);
var
I: Integer;
Instream, outstream: tfilestream;
SourcePath, Fragname, S: String;
Mulai
OpenDialog1.Title: = 'Silakan pilih potong file';
Jika OpenDialog1.Eksecute maka
Mulai
// Dapatkan jalur ke file potong yang saat ini dibuka
SourcePath: = ExtractFilePath (OpenDialog1.FileName);
// Dapatkan nama file dari file potong yang saat ini dibuka
Fragname: = extractFileName (openDialog1.filename);
SaveDialog1.title: = 'Harap masukkan nama file yang ingin Anda gabungkan';
Jika Savedialog1.Eksecute maka
Mulai
I: = 0;
s: = inttoStr (i);
sementara panjang <3 do d: = '0'+s;
S: = '.'+S;
Fragname: = ChangeFileExt (Fragname, S);
// Jika ada file dengan ekstensi .000 di direktori, buat aliran file output // objek
Jika FileExists (SourcePath+Fragname) lalu
Mulai
Outstream: = tfileStream.create (saveDialog1.fileName, fmcreate);
Mencoba
// Menggabungkan file secara bertahap dengan ekstensi file
Sementara fileexists (SourcePath+Fragname) lakukan
Mulai
Instream: = tfileStream.create (SourcePath+Fragname, fMopenread);
Mencoba
// Tulis data aliran file input ke aliran file output
Outstream.copyfrom (instream, 0);
Inc (i);
s: = inttoStr (i);
sementara panjang <3 do d: = '0'+s;
S: = '.'+S;
Fragname: = ChangeFileExt (Fragname, S);
Akhirnya
Instream.free;
akhir;
akhir;
Akhirnya
Outstream.free;
akhir;
akhir;
akhir;
akhir;
akhir;
Di antara banyak alat harian yang kami gunakan, ada banyak objek "streaming" yang akan kami gunakan, dan fungsinya juga sangat penting. menggenggam itu sangat berguna dan lebih penting.