Originally Posted by
kenten
Birim datayı kaydetmenin bir yolu varmı .
sürekli çalışan bir robotla belli bir sayıda tick olarak farklı isim altında kaydedilebilir anlık işlemde kullanılabilir gibi geliyo da nasıl yapabileceğimi bilmiyorum.
Sistem.SembolIslemleriniOku isimli bir fonksiyon var. Bu işlem için o kullanılabilir.
Forumda daha önce örnek iki kod paylaşmıştık.
O örnekler aşağıda
(arşivlenecek dosyaların formatları istenildiği gibi değiştirilebilir. Txt veya Csv olması, ayraçların virgül vs olması tamamen kişisellebilir.)
Örnek1: (Belli bir saatte, son 30 günün işlemlerini txt olarak arşivle)
Kod:
//SON 30 GÜN
if (DateTime.Now.Hour == 18 && DateTime.Now.Minute > 55)
{
var Dizin = "\\ViopBirimData";
if (Directory.Exists(Dizin) == false)
Directory.CreateDirectory(Dizin);
// dizin yaratıldıysa
if (Directory.Exists(Dizin))
{
var BitisTarih = DateTime.Today;
var Tarih = BitisTarih.AddDays(-30);
while (Tarih < BitisTarih)
{
Tarih = Tarih.AddDays(1);
if (Tarih.DayOfWeek == DayOfWeek.Saturday || Tarih.DayOfWeek == DayOfWeek.Sunday) continue;
var TarihStr = Tarih.ToString("yyyyMMdd");
var IslemList = Sistem.SembolIslemleriniOku(Sistem.AktifViopKontrat, TarihStr);
var DosyaAdi = Dizin + "\\" + TarihStr + ".Txt";
if (File.Exists(DosyaAdi) == false && IslemList.Count > 0)
{
var StrList = new List<string>();
foreach (var islem in IslemList)
{
var SaatStr = islem.Hour.ToString("00") + ":" + islem.Minute.ToString("00") + ":" + islem.Second.ToString("00");
var LotStr = islem.Size.ToString("0");
var FiyatStr = islem.Price.ToString("0.000");
StrList.Add(TarihStr.PadRight(10) + SaatStr.PadRight(10) + LotStr.PadLeft(10) + FiyatStr.PadLeft(10));
}
File.WriteAllLines(DosyaAdi, StrList);
}
}
}
}
Örnek2: Günün işlemlerini arşivle
Kod:
if (DateTime.Now.Hour == 10 && DateTime.Now.Minute > 5)
{
var Dizin = "\\ViopBirimData";
if (Directory.Exists(Dizin) == false)
Directory.CreateDirectory(Dizin);
// dizin yaratıldıysa
if (Directory.Exists(Dizin))
{
var Tarih = DateTime.Today;
if (Tarih.DayOfWeek != DayOfWeek.Saturday && Tarih.DayOfWeek != DayOfWeek.Sunday)
{
var TarihStr = Tarih.ToString("yyyyMMdd");
var IslemList = Sistem.SembolIslemleriniOku(Sistem.AktifViopKontrat, TarihStr);
var DosyaAdi = Dizin + "\\" + TarihStr + ".Txt";
if (File.Exists(DosyaAdi) == false && IslemList.Count > 0)
{
var StrList = new List<string>();
foreach (var islem in IslemList)
{
var SaatStr = islem.Hour.ToString("00") + ":" + islem.Minute.ToString("00") + ":" + islem.Second.ToString("00");
var LotStr = islem.Size.ToString("0");
var FiyatStr = islem.Price.ToString("0.000");
StrList.Add(TarihStr.PadRight(10) + SaatStr.PadRight(10) + LotStr.PadLeft(10) + FiyatStr.PadLeft(10));
}
File.WriteAllLines(DosyaAdi, StrList);
}
}
}
}