Thread overview
D.ershane Dosyalar
Mar 21, 2011
erdem
Mar 21, 2011
erdem
March 21, 2011

Dosyalar dersindeki ilk örneği 'std.stdio.File' yapısı kullanarak yapmıştım. Ama nedense boş satırları kontrol etmiyor gibi gözüküyor. Direkt ikinci dosyaya ilk dosyanın aynısını kopyalıyor.

Halbuki okunan satırın uzunluğunun sıfır olup olmadığını da kontrol ediyorum :huh:

import std.stdio;
import std.cstream;


void main() {

   writeln ("Okunacak dosyanın ismi giriniz: ");

   char [] dosyaİsmi;
   din.readf (&dosyaİsmi);

   string giriş = dosyaİsmi.idup;
   string çıkış = giriş ~ ".bak";

   File dosya1 = File (giriş, "r");
   File dosya2 = File (çıkış, "w");


   while (!dosya1.eof()) {
       string satır = dosya1.readln();

       if (satır.length != 0) {
           dosya2.writeln (satır);
       }

   }
}

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

March 21, 2011

Evet haklısınız. Gene dosyanın içinde karakter olmayan kodlar yüzünden bu hata oluyormuş. 'chomp' kullanınca düzeldi.

Ben de bu kaynak dosyasını elle oluşturdum. Nasıl olsa kullanıcı Enter tuşuna basmıyor, kullanıcıdan veri almıyoruz; o zaman dosyaya da yazmıyor diye düşünüyordum :) Demek ki dosyaları kendimiz oluşturduğumuz zaman da bir şekilde bu karakter olmayan tuşları Tab, Enter, satır sonu (ne varsa) dosyaya kaydediyor.

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

March 21, 2011

Biraz daha sabır! :) Bütün std.cstream'leri std.stdio ile değiştirdim; şimdi bir kere daha üzerinden geçiyorum. (84 dosya değişmiş!)

O örnek kodun yeni hali şu:

import std.stdio;
import std.string;

void main()
{
   write("Dosya ismi? ");
   string girişDosyasıİsmi = chomp(readln());
   File giriş = File(girişDosyasıİsmi, "r");

   string çıkışDosyasıİsmi = girişDosyasıİsmi ~ ".bak";
   File çıkış = File(çıkışDosyasıİsmi, "w");

   while (!giriş.eof()) {
       string satır = chomp(giriş.readln());

       if (satır.length != 0) {
           çıkış.writeln(satır);
       }
   }

   writeln(çıkışDosyasıİsmi, " dosyasını oluşturdum");
}

Ali

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