1 / 16

BM-104 Nesneye Yönelik Programlama Bahar 201 3 ( 11 . Sunu ) ( Yrd . Do ç . Dr. Deniz Dal)

BM-104 Nesneye Yönelik Programlama Bahar 201 3 ( 11 . Sunu ) ( Yrd . Do ç . Dr. Deniz Dal). Dosya Yönetimi. Bir bilgisayarda 2 tür depolama yapılabilir: 1 - Geçici Depolama ( Temporary S torage ) Bilgisayarın ana belleğini (RAM) kullanan depolamadır.

fergus
Download Presentation

BM-104 Nesneye Yönelik Programlama Bahar 201 3 ( 11 . Sunu ) ( Yrd . Do ç . Dr. Deniz Dal)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. BM-104 Nesneye Yönelik Programlama Bahar2013 (11. Sunu) (Yrd. Doç. Dr. Deniz Dal)

  2. Dosya Yönetimi • Bir bilgisayarda 2 tür depolama yapılabilir: • 1 - Geçici Depolama (Temporary Storage) • Bilgisayarın ana belleğini (RAM) kullanan depolamadır. • Bilgisayar kapanınca bilgiler de kaybolur. (Volatile) • 2- Kalıcı Depolama (PermanentStorage) • Bilgisayar kapatıldığında bile bilgilerin silinmediği yani bilginin diske kaydedildiği depolamadır. (Non-volatile) • Bilgi diskte dosyalar içerisinde saklanır.

  3. Files (Dosyalar)ve Streams (Akışlar) • C++ herbirdosyayı sıralanmış byte larolarak görür. Herbirdosyanın sonaerdiğinoktayıbelirleyenözelbirişaretçisivardır. (end-of-file ya da eof) • Birdosya açıldığızamanbunailişkin birnesneoluşturulurvebunesneyestream adınıverdiğimizbirbilgiakışmekanizmasıiliştirilir. • C++ iledosyaişleyebilmekiçin standart kütüphaneden<fstream> header dosyasını include etmekgerekir. • includeedilenbu<fstream>sayesindeifstream(birdosyadanbilgiokuma)veofstream(birdosyayabilgiyazma)sınıfları vebunların nesneleriçağrılabilir.

  4. DosyayaBilgi Yazdırma

  5. Dosya Açma Modları

  6. DosyadanBilgi Okuma

  7. Hatırlatma • Boşluklar(white spaces)ve satır sonukarakterleri(end-of-line)şimdiyekadarkidosyadanokumaörneklerindeihmaledildiler. Bunuistemiyorsak eğerifstream sınıfınınget()fonksiyonunu vestring sınıfınıngetline()fonksiyonunu kullanmalıyız. • getline() fonksiyonu herhangi bir akışı (iostream, fstream veya sstream) bir string değişkenine yönlendirir.

  8. ifstream Sınıfının get() Fonksiyonu ile Dosyadan Tek Karakter Okuma • Örnek: • ifstream test; • test.open("deneme.txt",ios::in); • char ch; • test.get(ch); //dosyadantekbirkarakter oku • cout<<ch; //okunankarakteriekranayazdır

  9. string Sınıfının getline() Fonksiyonu ile Dosyadan Satır Satır Bilgi Okuma Okunan satırın herhangi bir sütununda bir tamsayı veya ondalıklı sayı olabilir. Ama biz herşeyi bir string değişkeninin içerisinde saklıyoruz???

  10. Dosyanın Her Bir Satırındaki Sütunlar Birbirinden Boşluklar Yerine Özel bir Ayraçla (Delimiter) Ayrılmışlarsa

  11. atoi ve atof Fonksiyonları • atoive atof fonksiyonlarıkendilerine parametre olarak aldıkları karakter dizilerini rakama çevirirler. • atoi(char *str)fonksiyonu kendisine argüman olarak aldığı karakter dizisini integer a çevirir. • atof(char *str)fonksiyonu kendisine argüman olarak aldığı karakter dizisini ondalıklı sayıya çevirir. (floatingpoint) • atoiveatoffonksiyonlarını C++ programlarımızın içerisinde kullanabilmek için standart kütüphaneden <cstdlib>header dosyasını programımızın başına eklemeliyiz.

  12. Örnek #include <cstdlib> //atoiveatofiçin #include <string> //string veri tipi için using namespace std; string metin="123"; inti=atoi(metin.c_str()); string metin= "123.34"; float f=atof(metin.c_str());

  13. Uygulama PersonelBilgileri.txtadlı bir düzyazı dosyasının içerisine TiKKiRadındaki bir şirkette çalışan personele ait bilgiler (her bir personele ait bilgi kaydı dosyanın bir satırında yer almak üzere)yukarıdaki formatta kaydedilmiştir. Dosyanın her bir satırında ilk sütun personelin kurum sicil numarasını, ikinci sütun personelin adını, üçüncü sütun personelin soyadını, dördüncü sütun personelin doğum tarihini ve son sütun ise personelin doğum yerini temsil etmektedir. (Şirket personelinden hiçbirisinin ikinci bir isme sahip olmadığını kabul edebilirsiniz.) Bu dosyayı okuyan ve 2013 yılı itibariyle şirket çalışanlarının yaş ortalamasını hesaplayarak ekrana basan bir C++ fonksiyonu yazınız ve main içerisinden çağırınız.

  14. Bir Dosyanın Başına ve Sonuna Birkaç Kez Gidip Gelmek Gerekirse Bir dosyanın sonuna ulaşıldığında dosyayı kapatıp yeniden açarak dosyanın başına geri dönülebilir ama bu iyi bir yöntem değildir.

  15. !! Önemli Hatırlatma !! • Bir dosya sadece bir kere okunmak üzere açılmalıdır ve bu esnada okunan bilgiler uygun bir veri yapısı içerisinde saklanmalıdır. Daha sonra ihtiyaç duyulan herhangi bir veri bu veri yapısı içerisinden temin edilmelidir. • Her ihtiyaç duyulduğunda ilgili dosyayı okumaya açmak suretiyle bilgiye erişmek ve sonrasında dosyayı kapatmak iyi bir yöntem değildir.

  16. ? SORU ? • PersonelBilgileri.txtadlı dosyadaki bilgiler vector<vector<string>> içerisinde saklanabilir mi?

More Related