Dosya İsimlerinde Türkçe Karakter Problemi

Kylix, Lazarus, Freepascal ile ilgili konuları buraya yazabilirsiniz.
Cevapla
Kullanıcı avatarı
Lost Soul
Üye
Mesajlar: 1061
Kayıt: 01 Nis 2007 01:55
Konum: mekan ANKARA toprak ELAZIĞ
İletişim:

Dosya İsimlerinde Türkçe Karakter Problemi

Mesaj gönderen Lost Soul » 14 Oca 2016 03:30

S.A. Yıllar sonra Delphi ile bir kod yazayım dedim. E Hadi yazıyorum Lazarus ile yazayım dedim.
Neyse efenim projenin tamamı ekte olan şu kodları yazdım.

Kod: Tümünü seç

...


procedure TFileSearchThread.FileSearch(const dirName: string);
var
  searchResult: TSearchRec;
begin
  Inc(FLevel);
  Debug(Format('Level: %d started', [FLevel]));
  if FindFirst(ConcatPaths([dirName, '*']), faAnyFile, searchResult) = 0 then
  begin
    try
      repeat
        Sleep(0);
        //Eğer klasör değil ise
        //if (searchResult.Attr and faDirectory) = 0 then
        //begin
        if (searchResult.Name <> '.') and (searchResult.Name <> '..') then
        begin
          FCurrentFolder := dirName;
          FCurrent := searchResult;
          Synchronize(@Showstatus);
        end;
        if ((searchResult.Attr and faDirectory) = faDirectory) and
          (searchResult.Name <> '.') and (searchResult.Name <> '..') then
        begin
          FileSearch(IncludeTrailingBackSlash(dirName) + searchResult.Name);
        end;
        if (Terminated) then Begin
          Debug('Terminated is called');
        end;
      until ((FindNext(searchResult) <> 0) or (Terminated = True))
    finally
      FindClose(searchResult);
      Debug(Format('Level: %d finished', [FLevel]));
      Dec(FLevel);

    end;
  end;
end;            
...
Amma velakin searchResult.Name özelliğindeki karakterler ekteki resimde görüldüğü gibi geliyor. Debug esnasında değişkene bakıyorum orada da karakterler ? olarak görünüyor
Windows 10 Pro Amd 64bit
Resim

Resim


Neden ola ki :?:

Not: VCL de türkçe karaktersorunu yok projeyi çalıştırdığınızda görürsünüz :)
Dosya ekleri
FileSearch_2016_01_14_15_20_59.rar
(126.8 KiB) 62 kere indirildi

Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2089
Kayıt: 12 Haz 2003 03:05
Konum: merkez camii yanı

Re: Dosya İsimlerinde Türkçe Karakter Problemi

Mesaj gönderen freeman35 » 14 Oca 2016 04:47

fpc Source 2.6.4 ama 3.0 kullanıyorsun. Bende burda çok tırmaladım, çözüm çıkmamıştı geri dönüpte bakmamıştım. öldü oldu görünüyor vs gibi. Bu fpc utf8 e geçti ve aradaki karmaşadan kaynaklanıyor. Function isimlerinde "utf8" olanları kullan. ve fpc 3x kullan. oda hala stable yayınlanmadı sanırım.
project options -> compiler options -> "-FcUTF8" bunu ekle. ama fpc source ları 2.6.4 se utf8 desteklemiyor.

Malesef ben artık bu keferelerle ilişiği kestim. Heriflere göre biz direk düşmanız, adama diyorum ki, kardeşim bende osx 10.11 var burda şu şu şekilde çıkıyor, gelen cevap "burda normal çalışıyor..." keferenin burda dediği linux.
Bu yüzdende bitirmeme iki form kalmıştı ki bıraktım lazarus u. ve kanaatim, bu kafir sürüsüne güvenilipte yola çıkılmaz. Boşuna dememişler, "domuzdan post, gavurdan dost olmaz" diye.
Ha kullanın, ve halada tavsiye ederim, ama büyük bir proje sakın tasarlamayın. Yolda kalırsınız, benim gibi iki senenizi çöpe atarsınız.
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!

Kullanıcı avatarı
Lost Soul
Üye
Mesajlar: 1061
Kayıt: 01 Nis 2007 01:55
Konum: mekan ANKARA toprak ELAZIĞ
İletişim:

Re: Dosya İsimlerinde Türkçe Karakter Problemi

Mesaj gönderen Lost Soul » 14 Oca 2016 04:55

Soru sormadan önce UTF8 Olan Functionları kullanmıştım. O zaman iyice saçmalamıştı. "-FcUTF8" paramteresini de şimdi deniyorum.
Bu arada diğer hiçbirşeyde (Interface, VCL vs.) Türkçe karakter sorunu yok sadece File.Name böyle geliyor.

Kullanıcı avatarı
Lost Soul
Üye
Mesajlar: 1061
Kayıt: 01 Nis 2007 01:55
Konum: mekan ANKARA toprak ELAZIĞ
İletişim:

Re: Dosya İsimlerinde Türkçe Karakter Problemi

Mesaj gönderen Lost Soul » 14 Oca 2016 05:15

"-FcUTF8" gireceğim yeri bulamadım. Bunun yerine Java veya C# ile yazmayı daha mantıklı buldum :) Artık ikisi de bedava nasıl olsa. Gene de teşekkürler.

Kullanıcı avatarı
loaded
Üye
Mesajlar: 70
Kayıt: 12 Eki 2010 08:45
Konum: Konya

Re: Dosya İsimlerinde Türkçe Karakter Problemi

Mesaj gönderen loaded » 15 Oca 2016 03:24

Hemen pes etme ;)
Bu sorun benide çok kıvrandırdı fakat aşağıdaki kodla sorunu çözmeyi başardım. Umarım sana da faydası olur.

Kod: Tümünü seç

file_name:=  UTF8Encode(WideString(dosya_yolu));
Kalk ve işe yarar bir şey yap! Çünkü Allah (c.c.) yeniden başlayanların yardımcısıdır.

Kullanıcı avatarı
Lost Soul
Üye
Mesajlar: 1061
Kayıt: 01 Nis 2007 01:55
Konum: mekan ANKARA toprak ELAZIĞ
İletişim:

Re: Dosya İsimlerinde Türkçe Karakter Problemi

Mesaj gönderen Lost Soul » 20 Oca 2016 01:59

Teşekkür ederim. Henüz denemedim. Muhtemelen çözüm olacaktır. Bilgi olarak dursun burada :)

Cevapla