Merhaba,
Bir süredir Ali Çehreli'nin kütüphanesindeki şu modüllerde okuma yapıyordum:
https://bitbucket.org/acehreli/alphabet/src/master/tr/
tr.alphabet.dizgi'deki Dizgi kurulurken stride() kullanılmış ve anlaşılan, double char biçiminde gelen veri char(0) veya char(1) olabilecek karakter kod kümelerini atlayarak aktarmak amaçlanmış. İşte şurası:
https://bitbucket.org/acehreli/alphabet/src/master/tr/dizgi.d#lines-47
tr.alphabet.im'e baktığımızda da (zaten Dizgi içinde bu yapı var) dchar karakter_ kullanıldığını görüyoruz. Yani stride() kullanılarak yapılan aktarma işlemini kaldırmak mantıklı olabilir mi? İşte şurası:
https://bitbucket.org/acehreli/alphabet/src/master/tr/im.d#lines-26
tr.alphabet.dizgi'deki Dilim yapısına baktığımızda (geçi bunu Ali hoca onayladı ve hatayı bu güncelleme düzeltiyor) ekstra bir güncelleme gerekiyordu. Bahsettiğim satır length + 1 olması yeterli. İşte şurası:
https://bitbucket.org/acehreli/alphabet/src/master/tr/dizgi.d#lines-562
Gerçi dilimlerle ilgili başka sorunlar da var ama okumayı bitirdikçe ilgili düzeltmeleri veya sorularımı burada paylaşacağım. Özet geçmek gerekirse:
1a. if (isNarrowString!T) ile şarta bağlanan kurulumda neden stride() kullanıldı?
1b. Gerekiyorsa neden İm yapısında char karakter_; kullanılmadı?
2a. Dilim yoluyla karakterlere ulaşırken son karaktere ulaşamama sorunu düzeltildi.
2b. Ayrıca dilimlenen Dizgi'yi basitçe ekrana yansıtmak mümkün mü?
Teşekkürler...