C++ da Veriyi Arayan Fonksiyon Nasıl Yazılır?

Bu konuyu okuyanlar

mean2493

Öğrenci
Katılım
23 Ekim 2016
Mesajlar
14
Reaksiyon puanı
0
Puanları
1
Yaş
27
Dosyalama kullanılarak bir notpade en az 1000 kelimelik bir bir veri tutturulacak. istediğimiz veriyi arayan fonksiyon yazılacak(Brute Force algoritması). arkadaşlar bu program için acil yardım edebilirmisiniz.
 

kmurat

Müdavim
Katılım
8 Şubat 2014
Mesajlar
8,486
Çözümler
3
Reaksiyon puanı
3,709
Puanları
113
İnternet'ten "Bruce force algoritması" olarak ara.
 

mean2493

Öğrenci
Katılım
23 Ekim 2016
Mesajlar
14
Reaksiyon puanı
0
Puanları
1
Yaş
27
denedim kardeş istediğim cevaplar yok
 

errno

Doçent
Katılım
17 Temmuz 2016
Mesajlar
694
Reaksiyon puanı
567
Puanları
93

mean2493

Öğrenci
Katılım
23 Ekim 2016
Mesajlar
14
Reaksiyon puanı
0
Puanları
1
Yaş
27
eyvallah kardeş. ama istediğim gayet açık. bir .txt uzantılı dosyaya 1000 kelime atıyacam. istediğim kelimeyide aratacağım. bunu algoritması yada odu hakkında bir yardım bekliyorum.
 

errno

Doçent
Katılım
17 Temmuz 2016
Mesajlar
694
Reaksiyon puanı
567
Puanları
93
Merhaba,

Brute Force algoritması zamandan kazanmak için kullanılıyor genelde, ama gelin görün ki teknik sadece ilk bulduğu yere geri dönmesi ile de ün salan bir yapısı var. Yani kod, aradığınız harfi ilk bulduğunda sırasıyla eşleştirmelere devam ediyor, ardından uyumsuzluk esnasında tekrar kaldığı yerden devam ediyor. Burada harf harf mi yoksa kelime kelime mi işlem yapılacak. Bir C# veya VB.NET olsaydı didik etmezdim, ancak C/C++ da bu detaylı bir işlemdir.

Mesela, siz çok sade anlattığınızı düşünürken yazdıklarınızdan;

1-) 1000 kelime var ama kaydedeceğiniz txt dosyası bir UTF-8 mı yoksa ASCII tipli mi ?
2-) Atanacak kelimelere lokalizasyon uygulanması gerekecek mi (veya tarama yapılırken..) ?
3-) Atama işlemi esnasında mı tarama yapılacak yoksa atamadan sonra mı tarama yapılacak ?
4-) Arama işlemini kelime bazında yazmışsınız ancak Brute Force harf harf çalışır..
5-) Ayrıca taramayı dosya içinden mi yoksa bir stream üzerinden mi yapmak istyorsunuz ?
6-) Local mi yoksa Web Brute ile mi ilgileniyorsunuz ?

Daha da sıralanabilir.. Demek istediğim; basite adığınız bir cümle içerisinden C/C++ için yüzlerce soru çıkarılabilir. Yine de sizin istediğiniz gibi olsun, yani kelime olarak sade bir text dosyasında arama. Win32 Console projesi açıp deneyebilirsiniz.

Kod:
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <string>

using namespace std;

/* base */
inline void error(const string& s)
{
   throw runtime_error(s);
}

/* base */
inline void error(const string& s, const string& s2)
{
   error(s + s2);
}


int _tmain(int argc, _TCHAR* argv[])
{
   cout << "Please enter input file name : ";
   string iname;
   cin >> iname;
   ifstream ist{ iname };

   if (!ist) error("can't open input file", iname);
   cout << "file found" << endl;

   unsigned int curr = 0;
   string line;
   string search = "Test10"; /*Aranacak değer*/

  while (getline(ist, line)) 
  {
       curr++;
       if (line.find(search, 0) != string::npos)
      {
           cout << "Bulunan : " << search << " Bulunan Satır : " << curr << endl;
       }
   }

   int st = 0;
   cin >> st;
}

Saygılarımla
 
Üst