Örneğin Birden fazla satır var bu satırlardan Frekans -- diye başlayanlarda
yazılı olan verileri tek tek çekip ekrana yazdıracağız.
İlk önce C:\ veri.txt dosyasını oluşturun.
Şekil 1 deki gibi veri.txt in içindeki satırları oluşturun.
Şekil 2
Aşağıdaki kodları yazın. Şekil 2 deki gibi
ekran elde edilir.
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
StreamReader dosyaoku = File.OpenText("C:\\veri.txt");
string ara = "Frekans -- ";
string str = dosyaoku.ReadLine();
while (str != null)
{
if (str.StartsWith(ara))
{
string gecici = str.Replace(ara, "");
string[] parcalar = gecici.Split(new char[] { ’ ’ }, StringSplitOptions.RemoveEmptyEntries);
Console.WriteLine(string.Format("Deger1 = {0}, Deger2 = {1}, Deger3 = {2}{3}", parcalar[0], parcalar[1], parcalar[2], Environment.NewLine));
}
str = dosyaoku.ReadLine();
}
dosyaoku.Close();
Console.Read();
}
}
}
//Bir sonraki makalede buluşmak üzere. Bahadır ŞAHİN
4 comments:
Öncelikle çok teşekkür ederim. Hastane otomasyonu yazıyorum. Çağrılar log.txt dosyasına yazılıyor oradan okuyup yorumlamak gerekiyordu bu konuyu sayenizde çözdüm. Yanlız bir problem var log dosyasında satırlar alt alta geliyor. Her seferinde bir sonraki satırı nasıl okutabilirim bilginiz varsa paylaşabilirmisiniz? Saygılar
Eğer yanlış anlamadıysam, text dosyada alt alta olan satırlardan sadece birini veya bir sonraki satırı okutmak istiyorsunuz.
Aşağıda vb.net ile yapmış olduğum basit bir örnek var. inşallah işinizi görür.
Textbox a okutmak istediğiniz satır noyu giriyorsunuz, text dosyasındaki sadece o satırı yine Textbox a yazıyor.
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'İlk Önce TextBox a okutmak istediğimiz
'satır noyu giriyoruz. 0,1,2,...
Dim dosya As New System.IO.StreamReader("C:\test.txt")
For i = 0 To Val(TextBox1.Text)
'Textbox1 e girmiş olduğumuz satır noya denk gelen
'text teki satırı yine TextBox1 e yazdırıyoruz.
TextBox1.Text = dosya.ReadLine()
Next
dosya.Close()
End Sub
End Class
Kolay gelsin. Saygılar. Bahadır ŞAHİN
Vermiş olduğunuz örnek uygulamayla bir kaç takıldığım noktayı çözdüm çok teşşekür ederim.
ama listview'e kayıt yapmak istediğimde ya kısır bir döngüye girdi yada tek satır yazdı.Yardımcı olursanız sevinirim.
Sayın bahtiyar blogunuzda gördüğüm örneğe benzer bir durumla uğraşıyorum bir türlü çözemedim.
Yapmak istediğim şu; 1 den fazla txt dosyası var ornegın VERI.001,VERI.002,VERI.003 gibi bunların içerisinde barkod,fiyat,tutar vs var.Yazarkasa fiş detayı yani,benim istediğim aynı barkodları satır satır okuyacak aynı barkodlu urunlerin tutarlarını toplayacak ve gride yazdıracak
1,00013,04,SAT,01.000049740,04 0.50
1,00014,38,BKD,869053302403,5
burada
2.virgülden sonraki 38 olan satırlar barkodların oldugu satırlar
04 olan satırlar miktar ve tutar iceren satırlardır.
benim yaptığım tabloyu sonuna kadar okutuyorum
9.sutundan 2 hane deger aldırıyorum eger 38e esıtse aynı satırda 16.sutundan 15 deger aldırıp barkodu alıyorum ve bır degıskene atıyorum.(barkoda)
aynı sekılde,
9.sutundan 2 hane deger aldırıyorum eger 04 e esıtse aynı satırda 35.sutundan 7 deger aldırıp tutarı akıyorum ve bır degıskene atıyorum,(tutara)
gride atarken aynı barkodlu urunlerı gruplayacak toplam tutarı karsısına yazacak
fakat yapamadım aynı barkoddan kactane varsa hepsını ayrı ayrı satırlara yazıyor ve dongu durmuyor sureklı devam edıyor.aşağıdaki kaynagı kullanarak benzer bırsey hazırlayabilirmisiniz.
örnek tablo
1,00008,14,LIN, 0003,13:49:55
1,00009,17,NET,01/11/2015 ,13:50:00
1,00010,01,FIS,001 0003,0001 1071
1,00011,03,TAR,01/11/2015 ,13:50:15
1,00012,57,BAS, ,
1,00013,04,SAT,01.000049740,04 0.50
1,00014,38,BKD,762221014161,3
1,00015,04,SAT,01.000009231,04 2.75
1,00016,38,BKD,869420501202,3
1,00017,04,SAT,01.000007357,04 0.50
1,00018,38,BKD,762221014161,3
1,00019,04,SAT,00.478048649,04 7.89
1,00020,38,BKD,2700093 ,
1,00021,04,SAT,01.000046424,03 0.90
1,00022,38,BKD,869420501202,3
1,00023,04,SAT,01.000009222,04 2.75
1,00024,38,BKD,869420501019,7
1,00025,04,SAT,01.000010467,04 0.99
1,00026,38,BKD,869076767554,6
1,00027,08,TOP, , 16.28
1,00028,09,NAK, , 16.28
1,00029,37,NWS, 1,
1,00030,11,SON, ,
1,00031,33,MLC,LH00101185 ,13:50:37
1,00032,34,VER,22/08/2012 ,C++ S1.01.0A
1,00033,01,FIS,001 0003,0002 1071
1,00034,03,TAR,01/11/2015 ,13:50:54
1,00035,57,BAS, ,
1,00036,04,SAT,01.000047500,04 1.00
1,00037,38,BKD,762221014161,3
1,00038,04,SAT,01.000010165,04 3.25
1,00039,38,BKD,762221014161,3
1,00040,08,TOP, , 4.25
1,00041,09,NAK, , 4.25
1,00042,37,NWS, 1,
1,00043,11,SON, ,
1,00044,33,MLC,LH00101185 ,13:51:02
1,00045,34,VER,22/08/2012 ,C++ S1.01.0A
1,00046,01,FIS,001 0003,0003 1071
1,00047,03,TAR,01/11/2015 ,13:51:57
1,00048,57,BAS, ,
1,00049,04,SAT,01.000019696,05 5.00
1,00050,38,BKD,762221014161,3
1,00051,08,TOP, , 5.00
1,00052,09,NAK, , 5.00
1,00053,37,NWS, 1,
1,00054,11,SON, ,
Yorum Gönder