C++ Dosyada Arama

Bu konuyu okuyanlar

ErtuCH

Öğrenci
Cezalı
Katılım
8 Ocak 2018
Mesajlar
26
Reaksiyon puanı
0
Puanları
1
Yaş
21
Merhaba bir üyelik ve giriş özelliği olan program yazdım . Üye olan kişinin kullanıcı adı ve şifresini bir txt dosyasına kaydediyorum . Buraya kadar herşey çok güzel ama mesela 10 üyelik yapıldı diyelim . Giriş yapılacaği zaman hangi kullanıcı adi ile şifrenin eşleştiğini programa nasıl aciklayacagim? Yani bu konu dosyada random aramaya gidiyor sanırım .
 

Samet UCA

Müdavim
Katılım
3 Ağustos 2012
Mesajlar
3,277
Reaksiyon puanı
2,912
Puanları
113
Merhaba bir üyelik ve giriş özelliği olan program yazdım . Üye olan kişinin kullanıcı adı ve şifresini bir txt dosyasına kaydediyorum . Buraya kadar herşey çok güzel ama mesela 10 üyelik yapıldı diyelim . Giriş yapılacaği zaman hangi kullanıcı adi ile şifrenin eşleştiğini programa nasıl aciklayacagim? Yani bu konu dosyada random aramaya gidiyor sanırım .
Bunu access ile halledebilirsin. Diğer türlü randomda olsa hangi şifrenin hangi id ile eşleştiğini txt uzantılı bir dosya içeriğinde göstermek zor.
Kod:
String^ sqlstr = "SELECT * FROM [Üyeler]";

  OleDbConnection^ conn = nullptr;
  OleDbCommand^ cmd = nullptr;

  try
  {
    conn = gcnew OleDbConnection ("PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\örnekyol\\samüyeler.mdb");
    conn->Open ();
    cmd = gcnew OleDbCommand (sqlstr, conn);

    OleDbDataReader^ reader = cmd->ExecuteReader (System::Data::CommandBehavior::CloseConnection);
    String^ Sep = gcnew String ('*', 60);
    String^ üyeadi;
    String^ sifre;
    while (reader->Read ())
    {
        üyeler = reader["ÜyeAdi"]);
        sifre = reader["Sifre"]);

    }
 

ErtuCH

Öğrenci
Cezalı
Katılım
8 Ocak 2018
Mesajlar
26
Reaksiyon puanı
0
Puanları
1
Yaş
21
Bu c++ mi ? Biraz farklı gozuktu.
 

ErtuCH

Öğrenci
Cezalı
Katılım
8 Ocak 2018
Mesajlar
26
Reaksiyon puanı
0
Puanları
1
Yaş
21
Tamam teşekkürler.
 

Samet UCA

Müdavim
Katılım
3 Ağustos 2012
Mesajlar
3,277
Reaksiyon puanı
2,912
Puanları
113
Standart olan değil tabiki vc++ diyelim.

---- Mesajlar birleştirildi ----

Hatta elinizde visual studio varsa direk vc++ gidin derim.
 
Son düzenleme:

ErtuCH

Öğrenci
Cezalı
Katılım
8 Ocak 2018
Mesajlar
26
Reaksiyon puanı
0
Puanları
1
Yaş
21
Anladım ama vc++ sanırım c# a benziyor . Ben c++ da gelişmeyi planlıyorum daha sonra farklı dillere geçecegim.
 

Samet UCA

Müdavim
Katılım
3 Ağustos 2012
Mesajlar
3,277
Reaksiyon puanı
2,912
Puanları
113
Anladım ama vc++ sanırım c# a benziyor . Ben c++ da gelişmeyi planlıyorum daha sonra farklı dillere geçecegim.
Yazma, derleme ve kaynak kodunun hata ayıklama işlemlerini kolaylaştırmak için oluşturulmuş bir araç aslında vc++. Teknikde farklılar .net içeriyor. En önemlisi IDE. Ama bu tip veritabanı bağlantılarında apilerde daha kolayıma geliyor benim.
Kolay gelsin :)
 

guvejokua

Öğrenci
Katılım
24 Aralık 2016
Mesajlar
40
Reaksiyon puanı
6
Puanları
8
Dosyayı kaydederken kullanıcı adını dosya ismi yapıp şifreyi içine gömerek yapabilirsin.
Dosyayı açmak içinde dosya adına kullanıcıdan aldığın kullanıcı adınının sonuna eğer txt olarak kaydettiysen kullaniciadi.txt olarak aratabilirsin benim gibi veri tabanı bilmiyorsan
 

ErtuCH

Öğrenci
Cezalı
Katılım
8 Ocak 2018
Mesajlar
26
Reaksiyon puanı
0
Puanları
1
Yaş
21
Dosyayı kaydederken kullanıcı adını dosya ismi yapıp şifreyi içine gömerek yapabilirsin.
Dosyayı açmak içinde dosya adına kullanıcıdan aldığın kullanıcı adınının sonuna eğer txt olarak kaydettiysen kullaniciadi.txt olarak aratabilirsin benim gibi veri tabanı bilmiyorsan
Örnek le göstermen mümkün mü ?
 

guvejokua

Öğrenci
Katılım
24 Aralık 2016
Mesajlar
40
Reaksiyon puanı
6
Puanları
8
yeni üye kayıt fonksiyonuna;
C++:
ofstream uyekayit;
char kullaniciAdi[30];
int sifre; //Eğer şifrede karakter de olmasını istiyorsanız veri tipini değiştirebilirsiniz.
cin >> kullaniciAdi;  //Kullanıcıdan nickname isteniyor.
strcat(kullaniciAdi, ".txt");       //Nicnamenin sonuna .txt ekleniyor.
cin >> sifre;          //Şifre isteniyor.
uyekayit.open(kullaniciAdi);
uyekayit << sifre;
uyekayit.close();

Kullanıcı girişi yapan fonksiyon için de;

C++:
ifstream uyeGiris;
char kullaniciAdi[30];
int sifre;
int okunanSifre;
cout << "Kullanici adinizi giriniz:";
cin >> kullaniciAdi;
cout << "Sifre giriniz:";
cin >> sifre;
strcat(kullaniciAdi, ".txt");      //Dosya adı oluşturuluyor.
uyeGiris.open(kullaniciAdi);
if(uyeGiris == NULL ) {
cout << "Kullanıcı adı sistemde kayıtlı değil";
exit(1);    //Veya tercihe göre return 0; yapılarak fonksiyon bitirilebilir.
}
else {
uyeGiris >> okunanSifre;
if(okunanSifre == sifre) {
cout << "Sisteme giris saglandi";
return 1;    //Girişin başarılı olduğunu belirtmek için.
}
else return 0;   //Girişin başarısız olduğunu belirtmek için
}

Genel olarak böyle olması gerek. C++ ta uzun zamandır yazmıyorum syntax hatası yapmış olabilirim ama mantık olarak eğer anlamadıysan tekrar sorabilirsin.
 

ErtuCH

Öğrenci
Cezalı
Katılım
8 Ocak 2018
Mesajlar
26
Reaksiyon puanı
0
Puanları
1
Yaş
21
Tek bir uye için mi çalışıyor bu programda ?
 

guvejokua

Öğrenci
Katılım
24 Aralık 2016
Mesajlar
40
Reaksiyon puanı
6
Puanları
8
Yok ne kadar üye kaydederseniz. Ben C de bir ATM benzetimi yapmaya çalıştığımda bunu kullanmıştım. Mesela diyelim yeni üye nin kullanıcı adı sdn olsun.
Kullanıcının şifresi sdn.txt dosyasına kayıt ediliyor. Kullanıcı tekrar giriş yapmaya çalıştığında kullanıcı adını giriyor program kullanıcı adının sonuna .txt eklentisini ekliyor.(Gerçi buna da gerek yok dosyayı kaydederken sdn diye kayıt edebilirsiniz. Yani illa txt dosyasına yazmak zorunda değilsiniz. Ben atm uygulaması işin örneğin hesap numarası 123456 olan üye için 123456.atm diye bir uzantı yazmıştım.)
sdn.txt açılamazsa geriye null göndereceğinden eğer null gelirse üye kayıtlı demek değil demektir.
Eğer açarsa üye kayıtlı olur. sdn.txt 'de kullanıcının şifresi olduğu için açılan dosyadan direk şifreyi karşılaştırabilirsiniz.
Yani her üye için farklı bir dosya oluşturacaksınız.
 

ErtuCH

Öğrenci
Cezalı
Katılım
8 Ocak 2018
Mesajlar
26
Reaksiyon puanı
0
Puanları
1
Yaş
21
Çok teşekkürler
 
Üst