Ajax
ASP
C,C++
C#,.NET
CSS,HTML
Delphi,Kylix
Experience
Flash
Java
JavaScript
PHP
Python
QT
SQL
ShellScript
VB
U :
P :
Register
Lost Password
Other Links
Code Archive
Save Giovanni
C,C++ Category Code
Real Name
:
Nesrin Uluca
Subject
:
Dosyayı Parçalara Bölmek
Description
:
Bu program komut satırından çalışmaktadır. Komut satırından arguman olarak parçalara ayrılacak kaynak dosyanın ismi ve her bir parçanın byte olarak uzunluğu alınmaktadır. Orneğin program bol sample.exe 2000 şeklinde çalıştırıldığında sample.exe isimli dosyayı 2000 byte'lık parçalara ayırmaktadır. Her bir parça dosyanın ismi part0001.nnn biçimindedir. Böyle parçalar bir isimli başka bir programla yeniden birleştirilebilir. bir isimli programın kodları başka bir örnek olarak verilmiştir.
#include <iostream> #include <fstream> #include <sstream> #include <iomanip> using namespace std; int main(int argc, char **argv) { string sourcefile; int chunk; if (argc != 3) { cout << "dosya ismi " << endl; cin >> sourcefile; cout << "kac bytelik parcalar : "; cin >> chunk; } else { sourcefile = argv[1]; chunk = atoi(argv[2]); } ifstream infile(sourcefile.c_str(), ios_base::binary); if (!infile) { cerr << "cannot open " << sourcefile << endl; return 1; } char ch; int byte_counter = 0; int file_counter = 0; ofstream outfile; ostringstream destname; while (infile.get(ch)) { if (byte_counter % chunk == 0) { destname << "part" << setfill('0') << setw(4) << ++file_counter << ".nnn"; outfile.open(destname.str().c_str(), ios_base::binary); if (!outfile) { cerr << "cannot create " << destname.str().c_str() << endl; return 1; } } outfile.put(ch); if (++byte_counter % chunk == 0) { outfile.close(); destname.str(""); } } cout << "total " << byte_counter << " bytes" << endl; cout << "total " << file_counter << " files" << endl; return 0; } Yazan: Necati Ergin
Rating
:
3.25
(out of 5)
Visitor Voting Booth
:
Excellent
Very Good
Good
Fair
Poor
Copyright © 2006 SharingCode.NET . All rights reserved. Hosted By: SisNetworks