Merhaba,
Küçük bir kod yazayım dedim; bilmiyorum trileri (http://code.google.com/p/trileri/source/browse/#svn%2Ftrunk%2Ftr)'de var mıydı?
Eğer yoksa bu sınıfa yeni alt sınıflar ekleyerek geliştirmek ve desteklediği kod sayfalarının sayısını arttırmak çocuk oyuncağı. Çünkü şuradaki (http://www.phpkode.com/folder/s/web-font-viewer/) (-bnkz. core.php_conv.incl) uygulama dosyalarını kullanarak herhalde 1 gün içinde tüm verileri D'nin eşleşme tablolarıyla uyumlu bir şekilde çevirebilirsiniz...:)
Koda gelince; File ile dosyadan veri alıp denemedim ama sanki CP857 ile yazılmış bir metni almışım gibi uyarladım, çalışıyor. Hemen üstündeki gibi sınıf yapısıyla kullanabiliriz de; belki Ali hocamın önereceği daha esnek bir yöntemle (-bknz. trileri'deki alfabe_dinamik("tur"); gibi) kullanımı kolaylaştırılmış bir hale de çevirebiliriz. Sanırım tüm kod sayfalarını çevirmeye gerek yok. Hele Türkçe'de sık kullanılanlar ile Windows'da uygulamaya göre seçilebilen Batı sayfaları (1252, 1255, 1257) başlangıç için Zafer'in çok işine yarayacağını düşünüyorum...
import core.stdc.stdio: putchar;
import std.stdio;
class UTF {
string toCP857(ubyte veri){
string çevir;
return çevir;
}
}
void main() {
writeln("Şaşır ve\nçığ gibi paylaş...\n");
ubyte[] denemeMetni = [ 158, 97, 159, 141, 114, 32, 118, 101, 10,
135, 141, 167, 32, 103, 105, 98, 105, 32,
112, 97, 121, 108, 97, 159, 46, 46, 46 ];
string[ubyte] CP857 = [ 128: "\xc3\x87",
129: "\xc3\xbc",
135: "\xc3\xa7",
141: "\xc4\xb1",
148: "\xc3\xb6",
152: "\xc4\xb0",
153: "\xc3\x96",
154: "\xc3\x9c",
158: "\xc5\x9e",
159: "\xc5\x9f",
166: "\xc4\x9e",
167: "\xc4\x9f" ];
foreach (c; denemeMetni) {
if (c in CP857) write(CP857[c]);
else putchar(c);
}
}
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]