...:::TekNo GeNçLiK:::...
Would you like to react to this message? Create an account in a few clicks or log in to continue.


40 Üyemiz , 300 Konumuz ,1000 Mesajimiz ve 2 Online Kullanicimiz ile Her Dakika Dahada Büyüyoruz...
 
Anasayfahomepage*GaleriLatest imagesAramaKayıt OlGiriş yap

 

 C+ - C++ Kasap v0.3 ~Satırlarda Ağlar~ (Hata Düzeltme-Optimize)

Aşağa gitmek 
3 posters
YazarMesaj
XxAy_YıldızxX
Yönetici
Yönetici
XxAy_YıldızxX


Mesaj Sayısı : 195
Yaş : 32
Nerden : Nkal
İş/Hobiler : WebMaster
Lakap : WebMaster
Kayıt tarihi : 24/11/08

C+ - C++    Kasap v0.3 ~Satırlarda Ağlar~ (Hata Düzeltme-Optimize) Empty
MesajKonu: C+ - C++ Kasap v0.3 ~Satırlarda Ağlar~ (Hata Düzeltme-Optimize)   C+ - C++    Kasap v0.3 ~Satırlarda Ağlar~ (Hata Düzeltme-Optimize) EmptyÇarş. Kas. 26, 2008 10:08 pm

#include
#include
#include
#include

extern void parcala();
extern unsigned long int boyut(char *dosya);

unsigned long int parca_boyutu;
char dosya_ismi[50];
FILE *bat;
void main(int argc, char *argv[]) {
FILE *tmp;
baslik();
if (argc<3){
printf (" kasap dosya_ismi ParcaBoyutu\n Parca boyutu byte cinsinden olmalidir.\
\n Ornegin mesala.dat dosyasini disket boyutunda bolebilmek icin:\n
kasap mesala.dat 1457664\n Parcalar yazildiktan sonra birlestir.bat
isimli bir dosyada yaratilcak.\n Bu dosya calistirarak parcalari tekrar
birlestirin.(Hepsi ayni dizinde olmali.)\n Eger cok fazla sayida
parcaniz varsa bat dosyasi bir ise yaramaz.\n Dos komut satiri sinirini
astigi icin.\n Bu durumda ornekten faydalanarak ilk 5-7 taneyi
birlestirin\n daha sonraki 5-7 taneyi bununla birlestirerek devam
edin.\n Cikmak icin herhangi bir tusa basin...");
getch();
exit(1); // programı sonlandir. Yanlıs parametre.
}

parca_boyutu=atol (argv[2]);
if (parca_boyutu<1) {
printf("Parca boyutu 1 den kucuk olamaz!");
getch();
exit(1);

}
tmp=fopen(argv[1],"r");
strcpy(dosya_ismi,argv[1]);
if (tmp==NULL){
printf("Dosya okuma/yazma hatasi!");
getch();
exit(1); // programı sonlandir. Disk hatasi.
}
fclose(tmp);
bat=fopen("birlestir.bat","w");
fprintf(bat,"copy /B ");

if (parca_boyutu>=boyut(dosya_ismi)) {
printf("Dosya bolmek istediginiz boyuttan kucuk yada ayni.");
getch();
exit(1); // programı sonlandir. Gecersiz emir.
}

parcala();

}


/* file_io.c */

#include
#include
#include
extern FILE *bat;
extern char dosya_ismi[50];
extern unsigned long int parca_boyutu;

char *ram;

void yeni_dosya(char *isim,int parca) ;
void parcala();
unsigned long int boyut(char *dosya);

void yeni_dosya(char *isim,int parca) {
printf(".");
sprintf( isim, "%s.par%d.ksp",dosya_ismi,parca );//isimin isaret ettigi char dizisine parca sayısına göre dosya ismi ver...
fprintf(bat,"%s",isim);//birlestir.bat güncelleme
}

void parcala(){
unsigned long int i,toplam_parca,son_parca,parca=1;
char dosya_parcasi[50];
int kusur=0,devam=1;
FILE *f;//okudugumuz isaretci
FILE *o;//yazdıgımız isaretci

toplam_parca=boyut(dosya_ismi)/parca_boyutu;//tam boyutlu parca sayisi
son_parca=boyut(dosya_ismi)%parca_boyutu;// parcaya bölümden kalan son artık dosyanın boyutu
if (son_parca>0){toplam_parca++;kusur=1;}//tam olmasada bir tane fazla dosyamız daha olmalı...

if ((ram = (char *) malloc(parca_boyutu+1)) == NULL)//bellegimide parca kadar yer ayır
{
printf(" Bellek istegi basarısız.Istenen->%d\n Program kapatilacak...",parca_boyutu+1);
getch();
exit(1); //yetersiz bellek
}

yeni_dosya(dosya_parcasi,parca);//ilk dosya
f=fopen(dosya_ismi,"rb");
if (f==NULL) {printf("Dosya okuma/yazma hatasi. Kapatilacak...");getch();exit(1);}

do {
i=parca_boyutu*(parca-1);//baslangıc noktası
fseek(f,i,SEEK_SET);//okuma icin baslamak istedigimiz yere gelelim
if (parca fread(ram+1,sizeof(char),parca_boyutu,f);//bellekte ayırdıgımız noktaya
//parcamızın boyutu kadar veriyi dosyadan yazıyoruz
o=fopen(dosya_parcasi,"a+b");//yeni dosyamızı yaratalım
fprintf(bat,"+");//birlestir.bat güncelleme
if (o==NULL){printf("Dosya okuma/yazma hatasi.
Kapatilacak...");getch();exit(1);} //dosya yaratırken problem varsa
cıkalım
fwrite(ram+1,sizeof(char),parca_boyutu,o);// bellekteki dosya parcasını diske aktar
fclose(o);
parca++;
yeni_dosya(dosya_parcasi,parca);//yeni dosya ismi al
} else {
if (kusur) {//son parca ve artık dosya yada küsürlü...
fread(ram+1,sizeof(char),son_parca,f);//küsüratımız kadar parcayı bellege yaz
o=fopen(dosya_parcasi,"a+b");//yeni dosyamız...
if (o==NULL){printf("Dosya okuma/yazma hatasi.
Kapatilacak...");getch();exit(1);}//dosya yaratırken problem varsa
cıkalım
fwrite(ram+1,sizeof(char),son_parca,o);//küsüratlı dosyayı diske yaz....
fclose(o);
devam=0;//döngüden cıkalım...
}
fprintf(bat," /B %s",dosya_ismi);//birlestir.bat güncelleme
}



} while (devam);

fclose(f);



}

unsigned long int boyut(char *dosya) {
unsigned long int tmp ;
FILE *f;
f=fopen(dosya,"rb");
fseek(f,0,SEEK_END);//isaretciyi sondan 0. byte getir.
tmp=ftell(f);//dolayısıyla rakam dosyanın boyutu :P
fclose(f);
return tmp;
}
Sayfa başına dön Aşağa gitmek
http://teknogenclikk.yetkinforum.com
MaSSaCRe
sadık üye
sadık üye
MaSSaCRe


Mesaj Sayısı : 255
Yaş : 31
Nerden : Denizli
İş/Hobiler : PC-Fotball
Lakap : MaSSaCRe
Kayıt tarihi : 24/11/08

C+ - C++    Kasap v0.3 ~Satırlarda Ağlar~ (Hata Düzeltme-Optimize) Empty
MesajKonu: Geri: C+ - C++ Kasap v0.3 ~Satırlarda Ağlar~ (Hata Düzeltme-Optimize)   C+ - C++    Kasap v0.3 ~Satırlarda Ağlar~ (Hata Düzeltme-Optimize) EmptyÇarş. Kas. 26, 2008 10:15 pm

Ellerine sağlık güzel paylaşım
Sayfa başına dön Aşağa gitmek
http://teknogenclikk.yetkinforum.com
WaNTeD
meraklı
meraklı
WaNTeD


Mesaj Sayısı : 210
Yaş : 31
Nerden : Denizli
İş/Hobiler : bilgisayar-futbol-baba2
Kayıt tarihi : 25/11/08

C+ - C++    Kasap v0.3 ~Satırlarda Ağlar~ (Hata Düzeltme-Optimize) Empty
MesajKonu: Geri: C+ - C++ Kasap v0.3 ~Satırlarda Ağlar~ (Hata Düzeltme-Optimize)   C+ - C++    Kasap v0.3 ~Satırlarda Ağlar~ (Hata Düzeltme-Optimize) EmptyÇarş. Kas. 26, 2008 10:26 pm

valla süper bi şey bu :D
Sayfa başına dön Aşağa gitmek
http://teknogenclikk.yetkinforum.com
MaSSaCRe
sadık üye
sadık üye
MaSSaCRe


Mesaj Sayısı : 255
Yaş : 31
Nerden : Denizli
İş/Hobiler : PC-Fotball
Lakap : MaSSaCRe
Kayıt tarihi : 24/11/08

C+ - C++    Kasap v0.3 ~Satırlarda Ağlar~ (Hata Düzeltme-Optimize) Empty
MesajKonu: Geri: C+ - C++ Kasap v0.3 ~Satırlarda Ağlar~ (Hata Düzeltme-Optimize)   C+ - C++    Kasap v0.3 ~Satırlarda Ağlar~ (Hata Düzeltme-Optimize) EmptyÇarş. Kas. 26, 2008 10:26 pm

lol!
Sayfa başına dön Aşağa gitmek
http://teknogenclikk.yetkinforum.com
 
C+ - C++ Kasap v0.3 ~Satırlarda Ağlar~ (Hata Düzeltme-Optimize)
Sayfa başına dön 
1 sayfadaki 1 sayfası
 Similar topics
-
» Msn Hata Kodlarını Düzenler

Bu forumun müsaadesi var:Bu forumdaki mesajlara cevap veremezsiniz
...:::TekNo GeNçLiK:::... :: ...:::EğiTim:::... :: Programlama Dilleri-
Buraya geçin: