isim ekini bul
Tarih
16/08/2013 15:36
Konu Sahibi
karaayhan
Yorumlar
2
Okunma
708
Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 5
  • 4
  • 3
  • 2
  • 1

Derecelendirme: 0/5 - 0 oy



karaayhan
Aktif Üye
Kullanici Avatari
Aktif Üye
424
02/11/2008
12
Muğla
Ofis 2003
19/11/2016,13:46
yazacağımız ismin son harfine göre;

Asım TEMİZ'e
Ali YILMAZ'a
Cemil İZGİ'yi
vs..
devam eden ekleri bulma yöntemini içeren örnek vardı sitede ama
arama yaptığımda bulamıyorum..
hatırlayan arkadaş varsa lütfen link yada örnek uygulamayı ekleyebilir mi?
teşekkürler..
Dünya düşünenler için bir komedi, Hissedenler için bir trajedidir ***
Hugh WALPOLE
Cevapla


mehmetdemiral
.
Kullanici Avatari
Uzman
M.... D....
4.732
30/10/2008
Samsun
Ofis 2013 Tr. 32 Bit
Dün,02:10
Aradığın şeyi sitede hiç görmedim ve aradım bulamadım. Ama tamamen teorik olmak üzere baz önerilerim olabilir. Hatalı da olabilir çünkü tamamen kurgusal önerilerdir.

Bunun için öncelikle özel ismin yazımında ' (kesme) işaretinin konulması şart olmalı. En azından iş bunun üzerinden olabilir. Tabii boşluk da olabilir. Yani soyadının yazılıp bittiği bir şekilde belirlenmeli ki ardına gelen ekler tahmin edilebilsin. İşaretten sonrası için

Left([SOYAD];InStr(1;[SOYAD];"'")-1)

kullanılmalı. Biraz yanlış anlamaya müsait olan "'" bölümü 2 tane tırnak içinde kesme işaretidir. Açık yazarsak " ' " şeklinde olur. Ama açık yazılmamalı. O zaman Asım TEMİZ ' e biçiminde olacaktır. Bu kodda değerler değişebilir, çünkü denemek lazım. Soyadının sonunda yer alan sesli harfi bulmak için falan instr kullanmayı iyi bilmek gerekiyor. Bunun için aşağıdaki örnek işine yarayacaktır. Hem instr hem de len kullanımına iyi bir örnektir.

Alıntı:Yan yana virgülle sıralanmış değerleri ayırıp tabloya tek tek yazdırmak gerekiyordu.

Dim bolum1, bolum2 as integer
Dim Metin1,Metin2,Metin3 as string

bolum1=instr(Anametin,",")
'ilk virgülün yerini buluyoruz
metin1=left(Anametin,bolum1-1)
'Ana metinden virgüle kadar olan kısmı alıp Metin1 değeri elde ediyoruz.
bolum2=instr(bolum1+1,Anametin,",")
'2.virgülün yerini bulmak için "bolum1+1" instr fonksiyonunda kaçıncı
'karakterden sonra arama yapacağını belirtir.
metin2=mid(Anametin,bolum1+1,bolum2 -(bolum1+1))
'anametinin ilk virgülden sonraki kısmından ikinci virgülü bulduğumuz
'kısımdan ilk virgülden sonrakini çıkararak bulduğumuz uzunluk kadar
'karakteri al Metin2 adlı değişkene ata.
Metin3=right(Anametin,(len(anametin)-bolum2+1))
'Anametinin sağdaki kısmundan 2.virgüle kadar olan kısmı metin3 değişkenine
'atıyoruz.

Gelelim eklerin olayına. Burada bu isme gelmesi gereken eklerin de bir modülde falan tanımlanması lazım. Şöyle ki diyelim 'e eki duruma göre 'ye olacak. Bu durumda yukarda gösterdiğim yöntemle SOYAD değerinin son harfi bulunacak ve sesli mi sessiz mi olduğunda bakılacak. (Bunun için bir case select veya if then olayı yapılır artık) Yine modülün içine case select ile soyadının sonundaki harfe ve son sesli harfe bakılarak yorumlanır. Buradaki sesli-sessiz olayı için de aynı deminki modül kullanılır.

Biraz karışık gelebilir ama eğer hazır yapılmış bir çalışma yoksa daha mantıklı bir çözüm de yok sanırım.
İnadına, ille de Accesstr.net...
Cevapla


karaayhan
Aktif Üye
Kullanici Avatari
Aktif Üye
424
02/11/2008
12
Muğla
Ofis 2003
19/11/2016,13:46

Visual Basic Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Option Compare Database
Public Function İsimEkiniBul(geçici2 As String)
    Dim i As Integer
    For i = 1 To 3
        İsimEkiniBul = UCase(Left(Right(Trim(geçici2), i), 1))
        If InStr(1, "AIEİOUÖÜ", İsimEkiniBul) Then Exit For
    Next i
    If Asc(İsimEkiniBul) = 253 Or Asc(İsimEkiniBul) = 73 Then
      geçici2 = "ı"
    Else
      Select Case İsimEkiniBul
        Case "E", "İ": geçici2 = "i"
        Case "O", "U": geçici2 = "u"
        Case "Ö", "Ü": geçici2 = "ü"
        Case Else: geçici2 = "ı"
      End Select
    End If
    İsimEkiniBul = "'n" & geçici2 & "n"
    If i > 1 Then İsimEkiniBul = "'" & geçici2 & "n"
End Function


kullanımı ise;
İsimEkiniBul([Soyadı])

Dünya düşünenler için bir komedi, Hissedenler için bir trajedidir ***
Hugh WALPOLE
Cevapla







Konuyu Okuyanlar: 1 Ziyaretçi


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Tarih Son Yorum
  listede isim yerine id çıkıyor mhmtogz 2 1.002 20/03/2013, 22:55 mhmtogz


Türkçe Çeviri: MCTR, Forum Yazılımı: MyBB, © 2002-2016 MyBB Group.
DMCA.com Protection Status
© Desing by XSTYLED| Develops by ozanakkaya