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

Etiketlenen Kullanıcılar

Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 11 Temmuz 2014, 10:40   #1
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Sözlük Klasik Dosyalama




Bu programın asıl amacı hash algoritması ile sözlük.txt içindeki bilgilerin yeniden sözlük1.txt içinde
organize edilmesidir.Hash algoritması kişinin kendi algoritmasıdır. Bir çeşit adres bilgisi ile direk
kelimeye erişimdir.Program öncelikle sözlük.txt den verileri okuyarak yeniden organize ederek sözlük1.txt
içine yerleştirir.Hash algoritmasında önemli olan iki kriter vardır. Birincisi dosya boyutunu azaltmak
ikincisi ise çakışma sayısının az olmasıdır.Ama ikisi birbirine karşıdır.Biraz daha açıklarsak çakışma
çok olursa daha sıkı yerleştirme yapacağından dolayı dosya boyutu küçülür ama oluşma zamanı (disket için) oldukça uzar.Eğer çakışma sayısı az olursa bu durumda oluşan dosya boyutu çok büyür ama bu sefer oluşma zamanı (disket için) oldukça azalır. Bu program disketlerde çalıştırılınca daha anlamlı olur. Olay şudurki en
iyi hash algoritmasını bulup hem oluşma zamanını hemde dosya boyutunu ortalama seviyeye çekmek gerekir.

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include <stdio.h> #include <string.h> #include "Unit1.h" #include <io.h> #include <stdlib.h> #include <conio.h> //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; int hesapla(char dizi[]); FILE *dosya,*dosya1; char ingilizce[36]; int k,search,dosyabasi,tut,kontrol2; char turkce[79]; int i; char temp[115]; char kelime[35]; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { Button2->Visible=False; Button3->Visible=False; Edit1->Visible=False; Edit2->Visible=False; Label1->Visible=False; Label2->Visible=False; Label3->Visible=False; } //--------------------------------------------------------------------------- void __fastcall TForm1::k1Click(TObject *Sender) { Application->Terminate(); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { TDateTime saat=Time(); Label2->Visible=True; Label2->Caption="Bağil Dosya Oluşturma Başladı: "+TimeToStr(saat); Label1->Visible=False; char kr; int adr; int yaz=0; int kontrol; if((dosya=fopen("sozluk.txt","r"))==NULL) exit(6); if((dosya1=fopen("sözlük1.txt","w+"))==NULL) exit(6); for(i=0;i<658000;i++) putc(32,dosya1); while(feof(dosya)==NULL) { fgets(temp,115,dosya); for(i=0;i<35;i++) {ingilizce[i]=temp[i];} ingilizce[35]='\0'; for(i=36;i<115;i++) {turkce[i-36]=temp[i]; } turkce[78]='\0'; adr=hesapla(ingilizce); fseek(dosya1,adr*115,SEEK_SET); kr=getc(dosya1); fseek(dosya1,-1,SEEK_CUR); if(kr==32){ fputs(ingilizce,dosya1); fputs(turkce,dosya1); } else{ yaz++; kontrol=0; while(kontrol==0){ fseek(dosya1,yaz*115,SEEK_SET); kr=getc(dosya1); fseek(dosya1,-1,SEEK_CUR); if(kr==32){ fputs(ingilizce,dosya1); fputs(turkce,dosya1);kontrol=1; } else yaz++;}} }/*while1 bitti*/ Label3->Visible=True; saat=Time(); Label3->Caption="Bağil Dosya Oluşturma Bitti: "+TimeToStr(saat); Button1->Visible=False; Button2->Visible=True; Button3->Visible=True; Edit1->Visible=True; } //--------------------------------------------------------------------------- int hesapla(char dizi[]){ long int adres=0;int i; for(i=0;i<35;i++) adres=dizi[i]+adres; adres=adres-1163; return adres; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) {Label1->Visible=False; Label2->Visible=False; Label3->Visible=False; search=0; tut=0; dosyabasi=1; kontrol2=0; for(i=0;i<35;i++) {kelime[i]=32;} strcpy(kelime,Edit1->Text.c_str()); k=strlen(kelime); for(i=0;i<k;i++) {search=kelime[i]+search;} for(i=0;i<35-k;i++) {search=search+32;} search=search-1163; fseek(dosya1,search*115,0); fgets(temp,115,dosya1); for(i=0;i<35;i++) {ingilizce[i]=temp[i];} for(i=0;i<k;i++) {if(kelime[i]==ingilizce[i]) tut++;} if(tut==k) { for(i=35;i<115;i++) {turkce[i-35]=temp[i];} Edit2->Visible=True; Edit2->Text=String(turkce); } else{ while(kontrol2==0&&dosyabasi!=5722){ int tut2=0; fseek(dosya1,dosyabasi*115,SEEK_SET); fgets(temp,115,dosya1); for(i=0;i<35;i++) {ingilizce[i]=temp[i];} for(i=0;i<k;i++) {if(kelime[i]==ingilizce[i]) tut2++;} if(tut2==k) {for(i=35;i<115;i++) {turkce[i-35]=temp[i];} Edit2->Visible=True; Edit2->Text=String(turkce);kontrol2=1;} else dosyabasi++;}} if(dosyabasi==5722||search==5722) {Edit2->Text=""; ShowMessage("Böyle Bir Kelime Yok"); } } //--------------------------------------------------------------------------- void __fastcall TForm1::Button3Click(TObject *Sender) { Label1->Visible=False; int c; Label2->Visible=False; Label3->Visible=False; Edit2->Visible=False; c=MessageDlg("Silmek istediğiniz eminmisiniz?",mtWarning,TMsgDlgButtons()<<mbYes<<mbNo,0); if(c==mrYes){ search=0; tut=0; dosyabasi=0; kontrol2=0; for(i=0;i<35;i++) {kelime[i]=32;} strcpy(kelime,Edit1->Text.c_str()); k=strlen(kelime); for(i=0;i<k;i++) {search=kelime[i]+search;} for(i=0;i<35-k;i++) {search=search+32;} search=search-1163; fseek(dosya1,search*115,0); fgets(temp,115,dosya1); for(i=0;i<35;i++) {ingilizce[i]=temp[i];} for(i=0;i<k;i++) {if(kelime[i]==ingilizce[i]) tut++;} if(tut==k) {fseek(dosya1,search*115,0); for(i=0;i<115;i++) {putc(32,dosya1);} } else{dosyabasi++; while(kontrol2==0&&dosyabasi!=5722){ int tut2=0; fseek(dosya1,dosyabasi*115,SEEK_SET); fgets(temp,115,dosya1); for(i=0;i<35;i++) {ingilizce[i]=temp[i];} for(i=0;i<k;i++) {if(kelime[i]==ingilizce[i]) tut2++;} if(tut2==k) {fseek(dosya1,dosyabasi*115,SEEK_SET); for(i=0;i<115;i++) {putc(32,dosya1);} kontrol2=1;} else dosyabasi++;}} if(dosyabasi==5722||search==5722) ShowMessage("Zaten Böyle Bir Kelime Yok");} } //--------------------------------------------------------------------------- void __fastcall TForm1::about1Click(TObject *Sender) { Label2->Visible=False; Label3->Visible=False; Label1->Visible=True; Label1->Caption="Designed by CELAL ATALAR 2003"; } //---------------------------------------------------------------------------


 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları eglen sohbet reklamver
Cevapla

Etiketler
dosyalama, klasik, sözlük


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
Sözlük Nedir? Sözlük Hakkında Zen Sözlük 0 05 Aralık 2012 20:16
İnci sözlük ve ekşi sözlük arasındaki 7 fark. Lilith IF Ekstra 0 13 Ocak 2011 09:22
PHP Dosyalama Dersi 1 - CanCeL CanCeL PHP 3 08 Eylül 2008 14:42