İçeriğe geç
ShiftDelete.Net
Haber ara/ SDN'ye SorGiriş
Haber Akışı SDNTV İnceleme Forum Yapay Zeka Akıllı Telefon Elektrikli Otomobil Oyun ShiftDelete.Net Global Teknoloji Haberleri Mobil Otomobil Donanım Savunma Bilim Sosyal Medya İnternet Giyilebilir Teknoloji Rehber Ürünler Son dakika Yazarlar
  1. Ana sayfa
  2. Topluluk
  3. Programlama
  4. Programlama Dilleri
Programlama Dilleri

C++ Dosyada Arama

ErtuCH15.01.201813 cevap4.778 görüntüleme
ErtuCH
2018'den beri26 mesaj
#1
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 .
Cevaplar
2012'den beri3.287 mesaj
#2
ErtuCH dedi: ↑
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.

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 Konuyu açan
2018'den beri26 mesaj
#3
Bu c++ mi ? Biraz farklı gozuktu.
2012'den beri3.287 mesaj
#4
ErtuCH dedi: ↑
Bu c++ mi ? Biraz farklı gozuktu.
C++/CLI
ErtuCH Konuyu açan
2018'den beri26 mesaj
#5
Tamam teşekkürler.
2012'den beri3.287 mesaj
#6
Standart olan değil tabiki vc++ diyelim.

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

Hatta elinizde visual studio varsa direk vc++ gidin derim.
düzenlendi
ErtuCH Konuyu açan
2018'den beri26 mesaj
#7
Anladım ama vc++ sanırım c# a benziyor . Ben c++ da gelişmeyi planlıyorum daha sonra farklı dillere geçecegim.
2012'den beri3.287 mesaj
#8
ErtuCH dedi: ↑
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 :)
2016'den beri40 mesaj
#9
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 Konuyu açan
2018'den beri26 mesaj
#10
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ü ?
2016'den beri40 mesaj
#11
yeni üye kayıt fonksiyonuna;

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;


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 Konuyu açan
2018'den beri26 mesaj
#12
Tek bir uye için mi çalışıyor bu programda ?
2016'den beri40 mesaj
#13
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 Konuyu açan
2018'den beri26 mesaj
#14
Çok teşekkürler

Cevabını yaz

Cevap yazmak için giriş yap ya da üye ol. Eski forum kullanıcı adın ve parolanla girebilirsin.