Picproje Elektronik Sitesi

PROGRAMLAMA DİLLERİ => Delphi => Konuyu başlatan: z - 11 Ağustos 2014, 02:21:25

Başlık: Richedit içine Arapça text yerleştirmek
Gönderen: z - 11 Ağustos 2014, 02:21:25
İki adet "RichEdit" den 1.sine dosyadan Arapça bir metin yüklüyorum.

Ardından 1. "RicEdit"in satırlarını her defasında string içine okuyup 2.RichEdit içine satır satır yazıyorum.

1. RichEdit de Arapça metni görebilirken 2. RichEdit içinde sadece ? karakterleri görüyorum.

Nerede hata yapıyorum?
Başlık: Ynt: Richedit içine Arapça text yerleştirmek
Gönderen: trinity - 11 Ağustos 2014, 03:13:32
Araya string değişkeni girmeden birebire 2. RichEdit aktarma yapınca aynı sorun oluyor mu?

1.ihtimal Richedit arapça karakterleri stringe aktarırken bozuyor
2.ihtimal Richedit yalnızca dosyadan arapça okuyor, stringten arapça font desteği veremiyor.

Başlık: Ynt: Richedit içine Arapça text yerleştirmek
Gönderen: z - 11 Ağustos 2014, 11:14:32
İkinci RichEdit içine de dosyadan okursam onda da arapça karakterler çıkıyor.

Eğer Ikinci.text:=Birinci.text dersem gene tüm harfler gene ? olarak çıkıyor.

Başlık: Ynt: Richedit içine Arapça text yerleştirmek
Gönderen: trinity - 11 Ağustos 2014, 11:53:36
Bu fonksiyon işine yarayabilir.


function GetRTFText(oRE: TRichedit): String;
var
         oSS : TStringStream;
begin
         oSS := TStringStream.Create('');

         oRE.PlainText := False;
         oRE.Lines.SaveToStream(oSS);
         Result := oSS.DataString;
         oSS.Free
end;


//Örnek: Richedit1 den Richedit2 ye Text kopyalama

Richedit2.Text := GetRTFText(Richedit1);
Başlık: Ynt: Richedit içine Arapça text yerleştirmek
Gönderen: z - 11 Ağustos 2014, 12:59:57
Sağolasın bu işimi gördü.

Peki şu soruma da çözüm bulabilirmiyiz?

Arapça metinden herhangi bir satırı okuyacağım. Ardından bu satırdaki karakterlerin sıra ile ne olduklarını öğrenmem gerekiyor.

Standart ASCI karakterlerde sorun yok. Fakat işin içine Türkçe karakterler girince string değişkene okunan komple satırdan tek tek karakterlere (Türkçe karakterlere) ulaşmakta sorun yaşıyordum.

Arapça karakterlerde bir satırdaki karakterlere tek tek nasıl ulaşacağım?
Başlık: Ynt: Richedit içine Arapça text yerleştirmek
Gönderen: z - 11 Ağustos 2014, 13:43:15
Hocam bu devirde Delphi 6 mı kullanılırmış. Delphi 7 kullanıyorum artık.  :)
Başlık: Ynt: Richedit içine Arapça text yerleştirmek
Gönderen: engerex - 11 Ağustos 2014, 13:53:08
 Anlaşılan Delphi 7 kullanıyorsun.
Değişken tipini WideString veya UnicodeString dener misin?
Başlık: Ynt: Richedit içine Arapça text yerleştirmek
Gönderen: z - 11 Ağustos 2014, 14:50:01
بسم الله الرحمن الرحيم

Mesela yukarıdaki satırda kaç karakter var, sıra ile karakterler nelerdir bunu bulan kod parçası verebilirmisiniz?

Her bir harfin tek bir ASCI karakterden oluştuğu metinlerde her bir harfe S[1], S[2].. şeklinde kolayca ulaşabiliyordum. Arapça metinde böyle kolay olmayacak galiba.
Başlık: Ynt: Richedit içine Arapça text yerleştirmek
Gönderen: Karamel - 11 Ağustos 2014, 14:52:19
ben 22 buldum. dogrumudur? :)
Başlık: Ynt: Richedit içine Arapça text yerleştirmek
Gönderen: trinity - 11 Ağustos 2014, 16:09:03

var
arapca : string;
harfler : array of string;
harfsayisi: integer;
i: integer;

arapca:= GetRTFText(Richedit1);
harfsayisi := Length(arapca);

for i := 0 to harfsayisi do
begin
harfler[i] := Copy(arapca,i,1);
end;


burda bütün harfler sırayla harf[] dizisine tek tek yazılır. bende delphi 7 yüklü olmadığı için kesin konuşamıyorum
Başlık: Ynt: Richedit içine Arapça text yerleştirmek
Gönderen: z - 11 Ağustos 2014, 17:01:23
arapca:= GetRTFText(Richedit1);

Yukarıdaki satır headerı text dekorasyon verilerini vs hepsini getirdi haliyle işe yaramadı.
Başlık: Ynt: Richedit içine Arapça text yerleştirmek
Gönderen: kutahyaspor - 11 Ağustos 2014, 17:04:49
Alıntı yapılan: Karamel - 11 Ağustos 2014, 14:52:19
ben 22 buldum. dogrumudur? :)
19
Başlık: Ynt: Richedit içine Arapça text yerleştirmek
Gönderen: z - 11 Ağustos 2014, 17:35:52
Kimse yardımcı olamayacakmı

Sorunumu daha açık izah edeyim.

Herhangi bir satırda sağdan sola Elif, Be, Te, Se harfleri yanyana gelmiş olsun.

Öncelikle bu satırı bir değişkene okumak istiyorum.

Sonra
1. karakterin Elif,
2. karakterin Be,
3. karakterin Te,
4. karakterin Se,

olduğunu görmek (öğrenmek) istiyorum.


Başlık: Ynt: Richedit içine Arapça text yerleştirmek
Gönderen: Karamel - 11 Ağustos 2014, 20:26:19
Alıntı yapılan: kutahyaspor - 11 Ağustos 2014, 17:04:49
19

hocam ben arapca bilmiyorum. windows mantiginda arapca kelimenin sol ilk karakterini mouse un sol tusu ile sectim. shift + sag-sol tuslari ile (teker teker karakter secimi yapar) sectim. bunlarida saydim. 22 oldu.
Başlık: Ynt: Richedit içine Arapça text yerleştirmek
Gönderen: engerex - 12 Ağustos 2014, 00:56:49
AnsiString ile 1 harf 1 bayt olmayacak. Yani her harf 2 bayt ile temsil ediliyor. Öncelikle dosyanın ilk 2 baytı FF FE , boşluk 20 00 , arapça harfler genelde xx 06 şeklinde, nokta ise 2E 00 şeklinde temsil ediliyor. Yani bayt bayt değil 2 bayt 2 bayt okuyacaksın. Hangi karekterin hangi baytlarla temsil edildiğini görmek için Başlat > Çalıştır > charmap > Karakter seti : Windows Arapça (yada daha fazla karakter için Grup: Unicode > Arapça)
Harflerin başta sonda ortada olma durumu var. Bunların karakteri farklı mı yazılıyor yoksa metin editörü otomatik mi oluşturuyor? Buna dikkat.
Başlık: Ynt: Richedit içine Arapça text yerleştirmek
Gönderen: quarko - 12 Ağustos 2014, 08:36:32
Alıntı yapılan: Karamel - 11 Ağustos 2014, 20:26:19
hocam ben arapca bilmiyorum. windows mantiginda arapca kelimenin sol ilk karakterini mouse un sol tusu ile sectim. shift + sag-sol tuslari ile (teker teker karakter secimi yapar) sectim. bunlarida saydim. 22 oldu.

بسم الله الرحمن الرحيم

19 karakter var :
1- Be
2- Sin
3- Mim
4- Elif
5- Lam
6- Lam
7- He
8- Elif
9- Lam
10- Ra
11- He
12- Mim
13- Nun
14- Elif
14- Lam
16- Ra
17- He
18- Ye
19- Mim
Başlık: Ynt: Richedit içine Arapça text yerleştirmek
Gönderen: ErsinErce - 12 Ağustos 2014, 10:08:57
kayıt yaparken ascii değil utf kodlama ile kayıt yaptırmak lazım hocam

"richedit delphi unicode" aramasıyla karşıma çıkan örnek kodlar belki işinize yarar

http://stackoverflow.com/questions/15741774/delphi-trichedit-text-in-non-default-non-unicode-system-language-as-string-ans (http://stackoverflow.com/questions/15741774/delphi-trichedit-text-in-non-default-non-unicode-system-language-as-string-ans)
http://stackoverflow.com/questions/16902084/does-trichedit-support-unicode (http://stackoverflow.com/questions/16902084/does-trichedit-support-unicode)