September 24, 2009

Evet gayet güzel olur.. Bu arada editör olarak 'Not Defteri' kullanıyorum :-)

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

September 24, 2009

Alıntı (acehreli):

>

O üç karakter şunlar herhalde: 239 187 191 (EF BB BF).

Onlar UTF-8 BOM (byte order mark) karakterleri...

'==||== 0
==|birinci|== 7
==|ikinci|== 6
==||== 0
==|ucuncu|== 6
==||== 0
==||== 0'

Dosyanın karakter kodlamasını ANSI olarak değiştirince de bu çıktıyı veriyor. Sonda fazladan bir sıfır var. Gerçekten dosyanın karakter kodlamasını ANSI olarak değiştirince de ilk satırı birleştirememe hatasını da vermiyor.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

September 23, 2009

Erdem, program:

import std.cstream;
import std.stream;

void main()
{
   File giriş = new File("ogrenciler.txt", FileMode.In);

   while (!giriş.eof()) {
       char[] satır = giriş.readLine();

       dout.writefln("==|", satır, "|== ", satır.length);
   }
}

ogrenciler.txt (hem başta hem sonda tek boş satır, ve karıştırmasın diye hep ASCII):


'
birinci
ikinci

ucuncu

'

çıktı:

'==||== 0
==|birinci|== 7
==|ikinci|== 6
==||== 0
==|ucuncu|== 6
==||== 0'

Sende nasıl?

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

September 24, 2009

Anlaşıldı! :)

O üç karakter şunlar herhalde: 239 187 191 (EF BB BF).

Onlar UTF-8 BOM (byte order mark) karakterleri...

Bu konuda siz haklı çıktınız: DOS penceresi UTF-8'ten habersiz olduğu için, Erdem'in dosyasının başındaki UTF-8 belirteçlerini de dosyanın parçası olarak alıyor.

Erdem, bir çözüm olarak belki dosyayı oluşturduğun metin düzenleyiciye BOM koymamasını söyleyebilirsin. Öyle bir ayarı olabilir.

Diğer çözüm de UTF-8'ten anlayan bir ortamda çalışmak... :-p

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

September 24, 2009

Birilerini suçlamayı bıraksam iyi olacak! :( (DOS'u, Windows'u, ve Microsoft'u suçlamak alışkanlık olmuş. :) )

Dosya başında BOM karakterleriyle ilgili gibi görünen EndianStream var. Onun readBOM() fonksiyonunu kullanmak gerekiyor olabilir. Şimdi bir de EndianStream'i ve onun türetildiği FilterStream'i filan da mı anlatmak gerekecek? :( :)

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

September 24, 2009

Diğer konuda da konuştuğumuz gibi, çözüm EndianStream:

   auto BOMluDosya = new std.stream.File("ogrenci_bilgileri", FileMode.In);
   auto giriş = new EndianStream(BOMluDosya);

   giriş.readBOM();

   // Bu noktadan sonra dosya işlemleri için 'giriş' kullanılıyor...

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

1 2
Next ›   Last »