Küçük harfe çevirme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
brs
Üye
Mesajlar: 626
Kayıt: 04 Eki 2012 03:52

Küçük harfe çevirme

Mesaj gönderen brs »

Selam, edit deki mail adresi bölümüne büyük harf, türkçe karakter girildiğinde Function yöntemiyle değiştiriyorum ama bazen program donuyor bu durum mu nasıl çözebilirim?

Kod: Tümünü seç

procedure TForm3.Edit3Exit(Sender: TObject);
begin
Edit3.Text := Degistir(Edit3.Text);
end;

Kod: Tümünü seç

Function Degistir(K: String): String;
const
  Turk: String =
    'A, B, C, Ç, D, E, F, G, Ğ, H, I, İ, J, K, L, M, N, O, Ö, P, R, S, Ş, T, U, Ü, V, Y, Z';
  Eng: string =
    'a, b, c, c, d, e, f, g, g, h, i, i, j, k, l, m, n, o, o, p, r, s, s, t, u, u, v, y, z';
var
  N: integer;
begin
  for N := 1 to length(Turk) do
    while Pos(Turk[N], K) > 0 do
      K[Pos(Turk[N], K)] := Eng[N];
  result := K;
end;
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Küçük harfe çevirme

Mesaj gönderen mrmarman »

Cevap basit,

- String bir yapı kurmuşsun ama aralara virgül ile işaretleme yapmışsın. Hatanı şöyle maddeleyerek anlatayım.

(1) Bir döngü kurmuşsun, Turk isimli string içerisinde 1'den başlayıp sona kadar gitmiş. Buraya kadar normal görünüyor ama madalyonun arka yüzü başka.

(2) ('A') harfi var mı diye sormuşsun, eğer varsa ('a') ile değişecek. Böylece bir daha ('A') harfi bulamayacak. WHILE için sorun teşkil etmez.

(3) Metnin içerisinde (' ') boşluk veya (',') varsa ne yapacak. Bunu da döngü içinde sorgulamışsın. Görebildin mi ? Küçük harf gamında değişecek karşılık olarak ne var ? Yine bu işaretlerin aynısının tıpkısı, yani kendisi değil mi ? Bu da sana sonsuz döngü olarak dönecektir. Anlatabildim umarım.

Aslında basitçe yapman gereken şudur. Türkçe'nin İngilizce karşılık tablosunda asla ve asla aynı karakterden koymaman lazım.

Kod: Tümünü seç

  Turk: String =
    'ABCÇDEFGĞHIİJKLMNOÖPRSŞTUÜVYZ';
  Eng:string=
    'abccdefgghiijklmnooprsstuuvyz';
Şeklinde aradaki benzer olan karşılıkları elemen yeterli.
Resim
Resim ....Resim
Cevapla