Dosya İsimlerinde Türkçe Karakter Problemi

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

Dosya İsimlerinde Türkçe Karakter Problemi

Mesaj gönderen Lost Soul »

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.29 KiB) 245 kere indirildi
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2355
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

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

Mesaj gönderen freeman35 »

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: 1064
Kayıt: 01 Nis 2007 02:55
Konum: mekan ANKARA toprak ELAZIĞ
İletişim:

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

Mesaj gönderen Lost Soul »

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: 1064
Kayıt: 01 Nis 2007 02:55
Konum: mekan ANKARA toprak ELAZIĞ
İletişim:

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

Mesaj gönderen Lost Soul »

"-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: 122
Kayıt: 12 Eki 2010 09:45
Konum: Konya
İletişim:

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

Mesaj gönderen loaded »

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: 1064
Kayıt: 01 Nis 2007 02:55
Konum: mekan ANKARA toprak ELAZIĞ
İletişim:

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

Mesaj gönderen Lost Soul »

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