C# ile not defterine yazıp okumada sıkıntı var.

Başlatan remzi, 16 Aralık 2015, 22:12:01

remzi

Not defterine aşağıdaki kod ile okuma ve yazma yapmaya çalışıyorum.
Okuma ve yazma yapabiliyorum ama sıkıntı şöyle. Mesela dosyayı okumaya başlıyorum satır satır son satıra kadar okuyor. Ama sayı yaz dediğimde hemen dosyaya yazmıyor. Programı açıp kapayınca yazmış oluyor.
Ben programı çalıştırınca bir kaç satır okuycam ondan sonra bir iki satırda ekleme yapıcam. ama okumaya devam edince yazdıklarımıda görmek istiyorum
Bu arada C# da acemiyim yardımcı olursanız memnun olurum.
using System.IO;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace notdefteriyazmak
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        FileStream akis;
        StreamReader okuma;
        StreamWriter yazma;
        private void Form1_Load(object sender, EventArgs e)
        {
            akis = new FileStream("C:\\adres.txt",FileMode.OpenOrCreate,FileAccess.ReadWrite,FileShare.ReadWrite);
            yazma = new StreamWriter(akis);
            okuma = new StreamReader(akis);
        }
        private void button1_Click(object sender, EventArgs e)
        {     
            textBox1.Text = okuma.ReadLine();
            //okuma.Close();
        }
        private void button2_Click(object sender, EventArgs e)
        {
            yazma.WriteLine(textBox2.Text);
            textBox2.Text = "";
            yazma.Flush();
            //yazma.Close();
        }
    }
}

Gökhan BEKEN

#1
writeline fonksiyonu ile yeni satır ekliyorsunuz.
realline ile ilk satırı okuyorsunuz. Yani ne kadar satır olsa da okurken satır numarası vermediğiniz için ilk satırı okuyorsunuz anladığım kadarıyla.
Özel mesaj okumuyorum, lütfen göndermeyin.

remzi

Sorun zannedersem yazma işlemi yaptıktan sonra dosyayı kapatiyorum ama acamadigim için tekrardan okuyomuyorum.readline ile satır satır okumada sorun yok. Tek sorun dosyanin sonuna ekledigim sayıyı programı AC kapa yapmadan okuyamiyorum.

peko


Fazla vaktim olmadığından detaylandıramadım, ancak burdan yola çıkarak istediğin algoritmaya göre çalışabilirsin.


static void Main(string[] args)
        {
            string filePath = @"C:\TEST\A.txt";

            var oStream = new FileStream(filePath, FileMode.Append, FileAccess.Write, FileShare.Read);
            var iStream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);

            var sw = new System.IO.StreamWriter(oStream);
            var sr = new System.IO.StreamReader(iStream);
            var res = sr.ReadLine();
            res = sr.ReadLine();
            sw.WriteLine("g");
            sw.Flush();
            res = sr.ReadLine();
            res = sr.ReadLine();
            sw.WriteLine("h"); sw.Flush();
            sw.WriteLine("i"); sw.Flush();
            sw.WriteLine("j"); sw.Flush();
            sw.WriteLine("k"); sw.Flush();
            res = sr.ReadLine();
            res = sr.ReadLine();
            res = sr.ReadLine();
            res = sr.ReadLine();
            res = sr.ReadLine();
            res = sr.ReadLine();
        } 
" Bazıları zeka'sını iş'i zorlaştırmak için, bazıları ise kolaylaştırmak için kullanır.. "

remzi

Alıntı yapılan: peko - 17 Aralık 2015, 14:06:22
Fazla vaktim olmadığından detaylandıramadım, ancak burdan yola çıkarak istediğin algoritmaya göre çalışabilirsin.


static void Main(string[] args)
        {
            string filePath = @"C:\TEST\A.txt";

            var oStream = new FileStream(filePath, FileMode.Append, FileAccess.Write, FileShare.Read);
            var iStream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);

            var sw = new System.IO.StreamWriter(oStream);
            var sr = new System.IO.StreamReader(iStream);
            var res = sr.ReadLine();
            res = sr.ReadLine();
            sw.WriteLine("g");
            sw.Flush();
            res = sr.ReadLine();
            res = sr.ReadLine();
            sw.WriteLine("h"); sw.Flush();
            sw.WriteLine("i"); sw.Flush();
            sw.WriteLine("j"); sw.Flush();
            sw.WriteLine("k"); sw.Flush();
            res = sr.ReadLine();
            res = sr.ReadLine();
            res = sr.ReadLine();
            res = sr.ReadLine();
            res = sr.ReadLine();
            res = sr.ReadLine();
        } 


Hocam Allah razı olsun.
Tam istediğim gibi çalışıyor.
Ellerine yüreğine sağlık...