Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Türkçe karakter
#1
Merhaba;

Kullanıcının Edite girdiği harflerin küçük harf olmasını sağlamak istiyorum, fakat ilk harf büyük olacak anacak ilk harfte şöyle bir sıkıntı çıkıyor "İ" olası gerekirken "ı" olarak yazıyor Türkçe karakter ilgili sorun var utf8 araştırdım fakat firemonkeyde çözüm bulamadım, yardımlarınızı rica ederim.

function degis(Harf: String): String;
const
  Buyuk: String = 'ABCÇDEFGGHIİJKLMNOÖPRSŞTUÜVYZQW';
  Degis: String = 'abcçdefgğhıijklmnoöprsştuüvyzqw';
var
  N: Integer;
begin
  for N := 1 to Length(Buyuk) do
    while Pos(Buyuk[N], Harf) > 0 do
      Harf[Pos(Buyuk[N], Harf)] := Degis[N];
  Result := AnsiUpperCase(Harf[1]) + Copy(Harf, 2, Length(Harf));
end;


procedure TForm1.EditChangeTracking(Sender: TObject);
begin
  if Edit.Text.Length > 0 then
  begin
    Edit1.Text := degis(Edit1.Text);
  end;
end;
Hayat bazen güzel olabiliyor.
Cevapla
#2
Belki daha efektif yazılabilirdi ama şöyle bir fonksiyon işinizi görebilir;

function LowerCaseTR(aString: String; aBuyukBasHarf: Boolean = True): String;
const
  K = 'aeirlıdknmyustboüşzghçğcvpöfjwx';   // Harfleri böyle sıralanmasının sebebi
  B = 'AEİRLIDKNMYUSTBOÜŞZGHÇĞCVPÖFJWX';   // Bunların Türkçedeki kullanım sıklıklarına göredir.
var
  I: Integer;                              // Sayaç, indis değişkeni
  X: Integer;                              // Bulunan harfin alfabedeki indis numarası
begin
  Result := aString;
  for I := 1 to Result.Length do begin     // metni harf harf geziyoruz. (Bir rakam ile de karşılaşabiliriz...)
      X := pos(Result[I], B);              // POS, büyük / küçük harfe duyarlıdır (Case Sensitive). Yani büyükse küçüğü, küçükse büyüğü bulmaz.
      if (X > 0) then Result[I] := K[X];   // Bulunan karakter alfabemizde varsa küçüğüyle yer değiştiriyoruz.
  end;
  if (aBuyukBasHarf = True) then
      for I := 1 to Result.Length do begin // Metni harf harf geziyoruz
          X := pos(Result[I], K);
          if (X > 0) then begin
              Result[I] := B[X];
              Exit;                        // İlk harfi büyüttükten sonra çıkıyoruz...
          end;
      end;
end;
Peyami Safa:"Yaşlanarak değil, yaşayarak tecrübe kazanılır. Zaman insanları değil, armutları olgunlaştırır"
Can Yücel:"Toprak gibi olmalısın! Ezildikçe sertleşmelisin! Seni ezenler sana muhtaç kalmalı! Hayatı sende bulmalı"
Sinan Canan:"Bildiğini zannettiğin an hiç bir şey öğrenemezsin"
WWW
Cevapla
#3
Allah razı oldun, hakkınızı helal edin. Açıklamalar için ayrıca teşekkür ederim.
Hayat bazen güzel olabiliyor.
Cevapla
#4
Rica ederim, ben de sayenizde aşağıdakinin farkına varmış oldum;

oOk8bm.jpg

Kaynak;

http://www.wseas.us/e-library/conference...SIC-20.pdf

Kaynak URL;

http://www.wikizero.info/index.php?q=aHR...ciVDNCVCMQ
Peyami Safa:"Yaşlanarak değil, yaşayarak tecrübe kazanılır. Zaman insanları değil, armutları olgunlaştırır"
Can Yücel:"Toprak gibi olmalısın! Ezildikçe sertleşmelisin! Seni ezenler sana muhtaç kalmalı! Hayatı sende bulmalı"
Sinan Canan:"Bildiğini zannettiğin an hiç bir şey öğrenemezsin"
WWW
Cevapla
#5
Hocam otomatik büyük harf için uppercase kullanıyoruz. Fakat TR karakterler için Ansiuppercase Wink
// Bilgi paylaştıkça çoğalır.. 

Cevapla
#6
Türkçe için ı ve i harfleri AnsiUpperCase fonksiyonu da problem çıkarabiliyor. Yukarıdaki yöntemden farklı olarak aşağıdaki gibi başka bir çözüm daha kullanılabilir.
uses System.StrUtils;

function trBuyut(const sDeger:String):String;
begin
 Result:=AnsiUpperCase(ReplaceStr(ReplaceStr(sDeger, 'i', 'İ'), 'ı', 'I'));
end;
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Metin içeriğinde geçersiz karakter bulundu m_ekici 5 66 17-04-2019, Saat: 11:50
Son Yorum: m_ekici
  IOS unidac Türkçe karakter sorunu hassur 10 2.970 30-01-2019, Saat: 16:24
Son Yorum: pro_imaj
  Karakter ekleme dilo 6 618 21-07-2018, Saat: 15:27
Son Yorum: Halil Han Badem
Question karakter değiştirme-eş zamanlı ? Mr.Developer 9 756 08-07-2018, Saat: 13:13
Son Yorum: cinarbil
  AndroidManifest Dosyasi Karakter Sorunu codder71 5 633 30-05-2018, Saat: 10:04
Son Yorum: Fesih ARSLAN



Konuyu Okuyanlar: 1 Ziyaretçi