Forum
Selam Arkadaşlar,
3 farklı sorunum var.
SerialPort üzerinden okuduğum arşiv dosyalarını bir txt dosyasına yazdırıyorum.
1- Donanım belleğindeki adreslemeye göre veriyi gönderiyor. Yani 2700 satırlık bellek kapasitesi dolduğunda tekrar 1. satıra dönüyor ve üzerine yazarak devam ediyor. Bu da readto ile okuduğum satırları yazdırdığımda tarih sırasına göre değil bellek sırasına göre yazdırıyor. Bir dize içerisinde her satırı toplayıp sonra da ilk satırdaki tarih damgasını okuyup eskiden yeniye doğru nasıl yazdırabilirim?
2-Tarih sırasına göre yazdırdığım bu dosyaya otomatik bir isim verdirmem gerek ve aylık bir log gibi her ay yeni bir dosya oluşturmasını istiyorum. gelen verileri içeriği okuyacak ve kıyasladıktan sonra eksik veriyi yeniden txt'e yazacak.
3- Bu içerikteki verileri “;” ile ayırıp her elde ettiğim dize ile de bir grafik yazdırmam gerekiyor. (Chart)
Split ile ayıracağım ama 2700 satır ve her satırda 12 değişken bulunuyor. Eskiden yeniye doğru sadece son 7 günün grafiğini eklemem gerekiyor.
nasıl bir yöntem izlemeliyim? örnek kod ile destek olabilir misiniz?
Dosya İçeriği:
(0.56.239= aslında tarih saati gösteriyor ama şu an devrede pil olmadığı için resetlenmiş durumda. ayrıca değerler aynı gözüksede donanım cihazlara bağlandığında her satırın değeri değişken olacak. voltaj ve akımı ölçtüğü için)
1;0.56.239;0:7:196;50.01V;-37.80A;0.25V;+890.15A;316.30V;-37.82A;52.05V;-62.47A;0?C;4
2;0.56.239;0:7:196;50.01V;-37.80A;0.25V;+890.15A;316.30V;-37.82A;52.05V;-62.47A;0?C;4
3;0.56.239;0:7:196;50.01V;-37.80A;0.25V;+890.15A;316.30V;-37.82A;52.05V;-62.47A;0?C;4
………
2697;0.56.239;0:7:196;50.01V;-37.80A;0.25V;+890.15A;316.30V;-37.82A;52.05V;-62.47A;0?C;4
merhaba
1 - Okuduğunuz satırı bır class vastıası ıle lısteye atın orn :
public class Listem{
property string data {get;Set;}
property DateTime dataDate.....
}
daha sonra bu lıstenıze readto ile okuduktan sonra itemi insert edin ve ensonunda datetime order by desc lambda ile cekerek kullanabılırsınız
2 - okuma ıslemı bıttıgınde
https://msdn.microsoft.com/tr-tr/library/8bh11f1k.aspx buradakı makale ıle txt te save edebılırsınız
new System.IO.StreamWriter(@"C:\Users\Public\TestFolder\WriteLines2.txt", true) satırında bulunan *.txt yerıne datetime etiketli bir
dosya ısmı yazabılırsınız
3 -
birinci maddede listeye atmıstınız son yedi itemi liste.orderByDesc(r=> r.dataDate).Take(7); diyerek cekebilir ve bu liste icindeki
veriler ile grafiginizi olusturabılırsınız
saygılar
ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com