Oğuz Esen Resmi Fan Clup İndir-Dinle 2011
Dsofile ile Office Belgelerinin Özelliklerini Düzenlemek 112

Join the forum, it's quick and easy

Oğuz Esen Resmi Fan Clup İndir-Dinle 2011
Dsofile ile Office Belgelerinin Özelliklerini Düzenlemek 112
Oğuz Esen Resmi Fan Clup İndir-Dinle 2011
Would you like to react to this message? Create an account in a few clicks or log in to continue.

Dsofile ile Office Belgelerinin Özelliklerini Düzenlemek

Aşağa gitmek

Sabit Dsofile ile Office Belgelerinin Özelliklerini Düzenlemek

Mesaj tarafından Mc Zindan Ankara Style Cuma Nis. 30, 2010 2:09 pm

Giriş

Metadata ifadesinin tanımına baktığımızda “veri hakkında veri” diye bir
kavram ile karşılaşırız. En basit örneği ile MP3 dosyalarımızda
dinlediğimiz müziğin ses bilgilerinin yanı sıra sanatçı, parça ismi,
yapım yılı gibi bilgilerininde ID3 formatında bulunmasıdır. Bu bilgiler
MP3 dosyalarının son 128 bitinde yer alır. Başka bir örnekte dijital
fotoğraf makinesi ile çekilen fotoğraf belgelerinde bulunan EXIF
bilgileridir. Buda çekilen fotoğrafın tarihi, makinenin markası ve
ışık, pozlama gibi fotoğrafçılık ile ilgili bilgilerin aynı dosyada
barındırılmasını sağlar. Bütün bu bilgilerini saklanma sebebi herhangi
bir arama işleminde ulaşılacak veri hakkında özet verilere ulaşmaktır.

Günümüzde arama motorlarının önem kazanması ve bu konuda yapılan arge
çalışmaları ve yatırımların artmasıda ulaşılmak istenen verinin daha
kısa zamanda bulunması içindir.

Google ve MSN arama motorlarının Desktop versiyonları temelde IFilter
arayüzü ile sistemimizdeki tüm dosyaları indeksler. [1] Bunun için
yazılım firmaları kendi ürünleri için bir IFilter arayüzünü programlar.
Microsoft Office’i kurduğunuzda bu sisteminizde otomatik kurulurken PDF
dökümanları için Adobe firmasının sitesininden IFilter arayüzünü
indirip kurmanız gerekmektedir. [2]

Bazı komponent firmaları ise JPEG [3] ve Audio Video [4] formları için ücretli IFilter arayüzleri oluşturlardır.

Tüm bu IFilter arayüzlerinin temeli ise Object Linking and Embed
teknolojisi altındaki IpropertyStorage arayüzünün kullanılması ile
bağlantılıdır. [5] Buda bir programcı için Win32 sistem kaynaklarının
kullanımının zorluğu demektirki her yazılım firmasının kendi IFilter
arayüzünü yazması için bir sebeptir.

Microsoft, Office belgelerindeki bu metadata’ların programcı tarafından
okunması ve değiştirilebilmesi için “Microsoft Developer Support OLE
File Property Reader 2.0” ismi altında C++ ile geliştirdiği bir COM
komponentini geliştirmiş. [6]

Herhangi bir Office belgesinin üzerine sağ tıklayıp özelliklerine girdiğimizde aşağıdaki gibi özet bilgilere ulaşabiliriz :


Buradaki bilgilerden bazılarını değiştirebilirken bazılarıda salt okunurdur.

1. Senaryo
Bir kitabevi yabancı dilden çevirdiği eserler için çeviri yapan kişiye
kelime başına bedel ödemektedir. Aysonu geldiğinde içinde bulundukları
ay boyunca yapılan tüm çeviler hesaplanıp ödeme planı çıkarılmaktadır.
Buna ek olarak yapılan çevirilerin karakter sayıları, boşluklarla
birlikte karakter sayıları, sayfa sayıları ve kelime sayıları
istatistiki bilgi olarak tutulmaktadır. Çeviri bedellerini hesaplayan
şahıs zaman zaman word belgelerinde bulunan Author özelliğinde
düzenleme yapabilmelidir.

2. Çözüm
Kullanıcının kendi dosyaları arasında rahatça dolaşabilmesi için
Form’umuza bir adet TreeView kontrolü ekledim. Ve Form’un Load ve
TreeView’ın AfterSelect event’larına gerekli kodları yazdım.


Makalenin örnek projesinde detaylarını inceleyebilirsiniz. Biz asıl konumuza odaklanalım.

2.1 Okuma
Herhangi bir word dosyası seçildiğinde

DSOFile.OleDocumentPropertiesClass namsespace’indeki class’ın bir instance’ını oluşturuyoruz :

DSOFile.OleDocumentPropertiesClass odp = new DSOFile.OleDocumentPropertiesClass();
Daha sonra Open metodu ile ilgili dosyayı açmamız gerekiyor. Open metodu üç parametre almaktadır :

void OleDocumentPropertiesClass.Open(
string fileName,
bool ReadOnly,
DSOFile.dsoFileOpenOptions Options
);


fileName : Bilgileri okunacak dosyanın yolu.

ReadOnly : True ise açılan dosya bilgileri değiştirilemez. False ise değiştirilebilir.

Options : DSOFile içinde bulunan enum tipinde değişkendir. Alabileceği değerler

• dsoOptionDefault
• dsoOptionDontAutoCreate
• dsoOptionOnlyOpenOLEFiles
• dsoOptionOpenReadOnlyIfNoWriteAccess
• dsoOptionUseMBCStringsForNewSets

Artık dosyamızı bilgi okumak için açıyoruz :

odp.Open(fileInfo.FullName, true, DSOFile.dsoFileOpenOptions.dsoOptionDefault);
Bundan sonra ihtiyacımız olan verileri odp objesinden okuyabiliriz.

string author = odp.SummaryProperties.Author;
int characterCount = odp.SummaryProperties.CharacterCount;
int characterCountWithSpaces = odp.SummaryProperties.CharacterCountWithSpaces;
int pageCount = odp.SummaryProperties.PageCount;
int wordCount = odp.SummaryProperties.WordCount;
İşimiz bittikten sonra objemizi Close metodu ile kapatabiliriz. Close metodu ise bir parametre almaktadır.

void OleDocumentPropertiesClass(bool SaveBeforeClose)

SaveBeforeClose : True ise yapılan değişiklikleri kaydeder ve kapatır, false ise kaydetmeden kapatır.

Herhangi bir değişiklik yapmadığımız için false değeri ile close metodunu çalıştırıyoruz:

odp.Close(false);
2.2 Yazma
Save butonu altında yaptığımız tek değişiklik Author kısmıdır bu yüzden
benzer sadece Author özelliğini değiştirip nesnemizi kapatırken true
değerini vereceğiz.

DSOFile.OleDocumentPropertiesClass odp = new DSOFile.OleDocumentPropertiesClass();
odp.Open(fileInfo.FullName, false, DSOFile.dsoFileOpenOptions.dsoOptionDefault);
odp.SummaryProperties.Author = txtAuthor.Text;

odp.Close(true);
Mc Zindan Ankara Style
Mc Zindan Ankara Style
Admin
Admin

Mesaj Sayısı : 3104
Aktiflik Puanı : 13215
Kayıt tarihi : 26/11/09
Yaş : 31
Nerden : ankara

http://www.amasyateknoloji.tk

Sayfa başına dön Aşağa gitmek

Sayfa başına dön

- Similar topics

 
Bu forumun müsaadesi var:
Bu forumdaki mesajlara cevap veremezsiniz