acil iyelik ekleri

Katılım
2 Şubat 2012
Mesajlar
57
Excel Vers. ve Dili
2013 TR
merhaba a1'e yazdığım bir isim otomatik olarak a2'de isme iyelik eki eklenmiş olarak çıkmasını istiyorum. örneğin a1'e ahmet yazınca a2 otomatik ahmet'in olucak ya da ufuk, ufuk'un olucak. çok araştırdım ama ancak php ile yapılanı bulabildim. öncelikle förmülle mümkün değilsede makroyla nasıl yapabilrim. çok teşekkürler şimdiden

--daha önce php ile yapılan kısmı sadece iyelik kısmı:

switch ($ektipi) {
case "in": //iyelik eki -> Ahmet'in
if ($sonharf=="a" or $sonharf=="ı") {$eki="'nın";}
elseif ($sonharf=="e" or $sonharf=="i") {$eki="'nin";}
elseif ($sonharf=="u" or $sonharf=="o") {$eki="'nun";}
elseif ($sonharf=="ü" or $sonharf=="ö") {$eki="'nün";}

elseif ($sonsesli=="a" or $sonsesli=="ı") {$eki="'ın";}
elseif ($sonsesli=="e" or $sonsesli=="i") {$eki="'in";}
elseif ($sonsesli=="u" or $sonsesli=="o") {$eki="'un";}
elseif ($sonsesli=="`" ) {$eki="'ün";}
else {$eki="'ın";}
break;
 
Katılım
2 Şubat 2012
Mesajlar
57
Excel Vers. ve Dili
2013 TR
tüm php kodu bu. bi türlü bu kodu makroya çeviremedim. yani sadece iyelik eki için olan kısımda olsa benim işimi görür. çok zor gibi geldi bana. umarım bu işi iyi bilen bi arkadaş çevirebilir.

Kod:
/*ismin nikneymin sonuna gereken eki ekler */
function isimeki($ad, $ektipi= "in")
{

$sertsessizler = array("ç", "f", "h", "k", "p","s", "ş", "t");

/// türkçe sesli ve sert sessiz karakterler
$buyuk = array("A", "I", "E", "İ", "U","O", "Ü", "Ö", "Ç", "F", "H", "K", "P","S", "Ş", "T");
$kucuk = array("a", "ı", "e", "i", "u","o", "ü", "ö", "ç", "f", "h", "k", "p","s", "ş", "t");
$kucultulmus = str_replace($buyuk, $kucuk, $ad);
$isim=trim($kucultulmus);
$sonharf = substr($isim, -1); // isimdeki son karakteri bulduk

/// aşağıdaki kısım regexp ile son sesli harfi buluyor. 
/// bugcheck şeysi regexp özürlü turkce harfleri adam etmek için. 
$bugcheckkaynak = array("ı", "ö", "ü");
$bugcheckhedef = array("a", "`", "`");
$bugfixed=str_replace($bugcheckkaynak, $bugcheckhedef, $isim);
preg_match_all('/[aeiou`]/', $bugfixed, $bulunanlar);
$sesliler=$bulunanlar[0];
$sonsesli=end($sesliler); //isimdeki son sesli harfi bulduk



switch ($ektipi) {
case "in": //iyelik eki -> Ahmet'in
if ($sonharf=="a" or $sonharf=="ı") {$eki="'nın";}
elseif ($sonharf=="e" or $sonharf=="i") {$eki="'nin";}
elseif ($sonharf=="u" or $sonharf=="o") {$eki="'nun";}
elseif ($sonharf=="ü" or $sonharf=="ö") {$eki="'nün";}

elseif ($sonsesli=="a" or $sonsesli=="ı") {$eki="'ın";}
elseif ($sonsesli=="e" or $sonsesli=="i") {$eki="'in";}
elseif ($sonsesli=="u" or $sonsesli=="o") {$eki="'un";}
elseif ($sonsesli=="`" ) {$eki="'ün";}
else {$eki="'ın";} 
break;

case "e": // ismin e hali -> Ahmet'e
if ($sonharf=="a" or $sonharf=="ı" or $sonharf=="u" or $sonharf=="o") {$eki="'ya";}
elseif ($sonharf=="e" or $sonharf=="i" or $sonharf=="ü" or $sonharf=="ö") {$eki="'ye";}

elseif ($sonsesli=="a" or $sonsesli=="ı" or $sonsesli=="u" or $sonsesli=="o") {$eki="'a";}
elseif ($sonsesli=="e" or $sonsesli=="i" or $sonsesli=="ö" or $sonsesli=="ü") {$eki="'e";}
else {$eki="'a";} 
break;

case "i": // ismin i hali -> Ahmet'i 
if ($sonharf=="a" or $sonharf=="ı") {$eki="'yı";}
elseif ($sonharf=="e" or $sonharf=="i") {$eki="'yi";}
elseif ($sonharf=="u" or $sonharf=="o") {$eki="'yu";}
elseif ($sonharf=="ü" or $sonharf=="ö") {$eki="'yü";}

elseif ($sonsesli=="a" or $sonsesli=="ı") {$eki="'ı";}
elseif ($sonsesli=="e" or $sonsesli=="i") {$eki="'i";}
elseif ($sonsesli=="u" or $sonsesli=="o") {$eki="'u";}
elseif ($sonsesli=="`" ) {$eki="'ü";} 
break;


case "de": // ismin de hali -> Ahmet'te / Ayşe'de
if ($sonharf=="a" or $sonharf=="ı" or $sonharf=="u" or $sonharf=="o") {$eki="'da";}
elseif ($sonharf=="e" or $sonharf=="i" or $sonharf=="ü" or $sonharf=="ö") {$eki="'de";}
elseif (in_array($sonharf, $sertsessizler) and ($sonsesli=="a" or $sonsesli=="ı" or $sonsesli=="u" or $sonsesli=="o") ) {$eki="'ta";}
elseif (in_array($sonharf, $sertsessizler) and ($sonsesli=="e" or $sonsesli=="i" or $sonsesli=="ü" or $sonsesli=="ö") ) {$eki="'te";}
elseif ($sonsesli=="a" or $sonsesli=="ı" or $sonsesli=="u" or $sonsesli=="o") {$eki="'da";}
elseif ($sonsesli=="e" or $sonsesli=="i" or $sonsesli=="ü" or $sonsesli=="ö") {$eki="'da";}
elseif (in_array($sonharf, $sertsessizler)) {$eki="'ta";}

else {$eki="'da";} 
break; 

case "den": // ismin de hali -> Ahmet'ten / Ayşe'den
if ($sonharf=="a" or $sonharf=="ı" or $sonharf=="u" or $sonharf=="o") {$eki="'dan";}
elseif ($sonharf=="e" or $sonharf=="i" or $sonharf=="ü" or $sonharf=="ö") {$eki="'den";}
elseif (in_array($sonharf, $sertsessizler) and ($sonsesli=="a" or $sonsesli=="ı" or $sonsesli=="u" or $sonsesli=="o") ) {$eki="'tan";}
elseif (in_array($sonharf, $sertsessizler) and ($sonsesli=="e" or $sonsesli=="i" or $sonsesli=="ü" or $sonsesli=="ö") ) {$eki="'ten";}
elseif ($sonsesli=="a" or $sonsesli=="ı" or $sonsesli=="u" or $sonsesli=="o") {$eki="'dan";}
elseif ($sonsesli=="e" or $sonsesli=="i" or $sonsesli=="ü" or $sonsesli=="ö") {$eki="'dan";}
elseif (in_array($sonharf, $sertsessizler)) {$eki="'tan";}

else {$eki="'dan";} 
break; 

case "ile": // beraberlik hali -> Ayşeyle / Ahmetle
if ($sonharf=="a" or $sonharf=="ı" or $sonharf=="u" or $sonharf=="o") {$eki="yla";}
elseif ($sonharf=="e" or $sonharf=="i" or $sonharf=="ü" or $sonharf=="ö") {$eki="yle";}

elseif ($sonsesli=="a" or $sonsesli=="ı" or $sonsesli=="u" or $sonsesli=="o") {$eki="la";}
elseif ($sonsesli=="e" or $sonsesli=="i" or $sonsesli=="ö" or $sonsesli=="ü") {$eki="le";}
else {$eki="'la";} 
break;
}
$sonuc= $ad.$eki;
return $sonuc;
}
 
Üst