C# ile TXT dosyasındaki verileri sütunlara yazma

joulte

Hectopat
Katılım
27 Mart 2020
Mesajlar
13
Öncelikle merhabalar,
TXT dosyasında kayıtlı bazı verilerim var. TC No, Ad-Soyad gibi sütun başlıklarım var ve "tab" ile ayrılmış bu veriler. T.C. No'ların algoritma ile doğruluğunu kontrol edip yazdırabiliyorum ama benim yapmak istediğim şey, Kontrol sütununa yazdırabilmek. Yazdırdığım veriler hep "T.C." kısmının altına yazdırılıyor. İstediğim sütunlara bu verileri nasıl yazdırabilirim?

Kodum şu anlık böyle, nasıl konfigüre etmeliyim?

Kod:
string dosya = @"D:\verim.txt";
            string dosya2 = @"D:\verim2.txt";
            StreamReader SR = new StreamReader(dosya);
            StreamWriter outputFile = File.AppendText(dosya2);

            string metin = SR.ReadLine();
            metin = SR.ReadLine();
           

            while (metin != null)
            {

                string[] sutunlar = metin.Split('\t');
                if (metin.Contains("TC") == false)
                {
                    string sonuc = (sutunlar[0]);
                    bool returnvalue = false;
                    if (sonuc.Length == 11)
                    {
                        Int64 ATCNO, BTCNO, TcNo;
                        long C1, C2, C3, C4, C5, C6, C7, C8, C9, Q1, Q2;

                        TcNo = Int64.Parse(sonuc.ToString());

                        ATCNO = TcNo / 100;
                        BTCNO = TcNo / 100;

                        C1 = ATCNO % 10; ATCNO = ATCNO / 10;
                        C2 = ATCNO % 10; ATCNO = ATCNO / 10;
                        C3 = ATCNO % 10; ATCNO = ATCNO / 10;
                        C4 = ATCNO % 10; ATCNO = ATCNO / 10;
                        C5 = ATCNO % 10; ATCNO = ATCNO / 10;
                        C6 = ATCNO % 10; ATCNO = ATCNO / 10;
                        C7 = ATCNO % 10; ATCNO = ATCNO / 10;
                        C8 = ATCNO % 10; ATCNO = ATCNO / 10;
                        C9 = ATCNO % 10; ATCNO = ATCNO / 10;
                        Q1 = ((10 - ((((C1 + C3 + C5 + C7 + C9) * 3) + (C2 + C4 + C6 + C8)) % 10)) % 10);
                        Q2 = ((10 - (((((C2 + C4 + C6 + C8) + Q1) * 3) + (C1 + C3 + C5 + C7 + C9)) % 10)) % 10);
                        returnvalue = ((BTCNO * 100) + (Q1 * 10) + Q2 == TcNo);
                    }
                   
                 
                    if (returnvalue)
                       
                    {
                       
                        outputFile.WriteLine("DOĞRU");
                     
                       
                    }
                    else
                    {
                       
                        outputFile.WriteLine("YANLIŞ");
                    }

                }
                metin = SR.ReadLine();
            }
            outputFile.Close();
        }
    }

Şu anki çıktı böyle ve en sondaki sütuna yerleştirmek istiyorum.
 
Son düzenleyen: Moderatör:
2 cesit dosya yazma yapabilirsin:
1) Komple ustune yazarsin
2) Sonuna append edersin.

Cunku isletim sistemi ayni dosyanin icerigini sequential yazar, sadece aradaki tek bir karakteri degistirmek, onun pesisira gelen tum karakterlerin yerini kaydirmak anlamina gelir bu da zaten dosyayi komple degistirmen demek.

O yuzden dosyayi okursun, process edersin ve output ciktisini dosyanin uzerine tekrar yazarsin.
Eger process edecegin data cok buyukse satir satir okursun, satir satir process edersin, yeni bir tmp dosya olusturur ona da satir satir yazarsin ( buffering. )
Islem bitince tmp dosyayi, output dosyayla degistirirsin ve tmp dosyayi silersin.
 
Uyarı! Bu konu 5 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Yeni konular

Geri
Yukarı