IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası
  sohbet

 Kayıt ol  Topluluk
Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 19 Temmuz 2008, 15:31   #1
Çevrimiçi
Yardımcı Admin
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Kasap v.02 ~Satırlarda Ağlar~




PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!
 /*
 3/05/2007 - Code by Murat Selim Ateş
 25/08/2007 - Yayın icin gözden gecirildi. (Revision in order to publish)
                     *kücük düzeltme ve açıklamalar eklendi.(Minor improvments and new comments added).
          ////////////////////////////////////////////////////////////      
          *Öneri yada hata bildirimleri 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.

          *Kaynak kodu rahatlıkla kullanabilirsiniz. Eger kullanır ve yaziliminizda bana tesekkür yazarsanız mutluluk duyarım.
                    ////////////////////////////////////////////////////////////          
          Translated to English
          *Suggestions or bug alert to 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.

                * Feel free to use code. If you use my code and give credit to me in your software i feel happy
          Note: I'm sorry that comments are in Türkish but if you email me i can help you
precompiled/derlenmis program :
http://files-upload.com/files/458862/kasap.exe   
          //////////////////////////////////////////////////////////// 
 */
/*//////////////////////////////////////////////////////////
                                kasap.c
///////////////////////////////////////////////////////////*/
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

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

unsigned long int parca_boyutu;
char dosya_ismi[50];
FILE *bat;
void baslik() {
     
printf("\n\n\n Kasap v0.2 ~Satirlarda Aglar~ by Murat Selim Ates (2007)\n Ozgur Yazilimdir.(Freeware) 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
\n\n"
);
     
     }
void main(int argcchar *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);
     
 
 if (
parca_boyutu>=boyut(dosya_ismi)) {
     
printf("Dosya bolmek istediginiz boyuttan kucuk yada ayni.");
      
getch();
       exit(
1);  // programı sonlandir. Gecersiz emir.
     

       
bat=fopen("birlestir.bat","w");
        
fprintf(bat,"copy /B ");     
     
parcala();
     
     }

/*///////////////////////////////////////////////////////////////////
                                     file_io.c
///////////////////////////////////////////////////////////////////*/

#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
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(".");
     
sprintfisim"%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;
     
char veri;
     
unsigned int toplam_parca,parca=1;
     
char dosya_parcasi[50];
     
     
int son_parca,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<toplam_parca) {//eger son parcayı yazmıyorsak
     
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);
        } 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          
          
}
     
     if (
parca<toplam_parca){//son parca yapılmamıssa
     
parca++;
      
yeni_dosya(dosya_parcasi,parca);}//yeni dosya ismi al
      
        
} 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;
     } 

Alıntıdır

__________________
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları reklam ver Benimmekan Mobil Sohbet
Cevapla

Etiketler
adlar, kasap, satırlarda, v02


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
Ağlarsa Anam Ağlar Gerisi Yalan Ağlar Atasözünün Anlamı ve Açıklaması Amelia Atasözleri ve Deyimler 0 02 Temmuz 2014 18:06
Ağlarsa Anam Ağlar Gerisi Yalan Ağlar Liaaa Ruh Sağlığı 0 01 Haziran 2012 18:53
Kasap Önü Thief Fıkra 2 04 Ocak 2009 11:33
Kasap v0.3 ~Satırlarda Ağlar~ (Hata Düzeltme-Optimize) Cemalizim C ve C++ 0 19 Temmuz 2008 15:32