Как извлечь данные из данной даты в Currentdate в Datetimepicker - PullRequest
0 голосов
/ 01 июня 2011

У меня много папок, и есть много файлов данных с разными датами. Теперь, если я выбираю дату из своего DatePicker, мой код извлекает данные, а также извлекает дату и сохраняет дату как имя в текстовый файл (например, YYYYMMDD.txt, 20110131.txt), которому я выбрал дату из своего DatePicker.

У меня есть данные за 2 года в этих файлах. Каждый раз, когда я выбираю дату для извлечения данных, мне очень трудно это сделать.

Если я выберу дату начала до текущей даты из моих DatePickers, то данные будут извлечены из даты начала до текущей даты и сохранят имя файла в качестве каждой даты.

Есть предложения?

Вот мой код:

private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
{
    DateTime dt = dateTimePicker1.Value;
    txtSelectedDate.Text = dt.ToString("yyyyMMdd");
    selectedDate = txtSelectedDate.Text;
}



private void button2_Click(object sender, EventArgs e)
{
    string DayBgSpot = "E:\\Folder";

    string DayBgSpotDestination = "E:\\Folder1";

    int DT = int.Parse(txtSelectedDate.Text);
    FileReader Reader = new FileReader();
    FileReader Reader1 = new FileReader();
    Reader.OpenDirectory(DayBgSpot);
    Reader.ReadNaster();
    string path = DayBgSpotDestination + "\\" + txtSelectedDate.Text + ".txt";
    StreamWriter Strwriter = new StreamWriter(path);
    try
    {
        while (Reader.iMaRecordsLeft > 0)
        {
            string SecName = Reader.sMaSecName;
            string Symbol = Reader.sMaSecSymbol;
            Symbol = prefix + Symbol;
            int abc = 0;

            Reader.OpenSecurityByName(Reader.sMaSecName);
            if (Reader.iSeRecords > 0)
            {
                while (Reader.iSeRecordsLeft > 0)
                {
                    Reader.ReadDay();
                    float O = Reader.dSeo;
                    float H = Reader.dSeh;
                    float L = Reader.dSel;
                    float C = Reader.dSec;
                    double V = Reader.dSeV;
                    double OI = Reader.dSrest;
                    string T = Reader.iSeTime.ToString();
                    string D = Reader.iSeDate.ToString();
                    if (int.Parse(D) == DT)
                    {
                        string a = string.Concat(SecName, ",", Symbol, ",", D, ",", T, ",", O, ",", H, ",",  L, ",", C, ",", V, ",", OI);
                        if (SecName != "" && V != 0)
                        {
                            Strwriter.WriteLine(a);
                        }
                    }
                }
            }



            abc++;


            Reader.ReadNaster();
        }

        Reader.CloseDirectory();
        Strwriter.Close();
        Strwriter.Dispose();



    }
    catch
    {
    }


}

1 Ответ

1 голос
/ 01 июня 2011

Вот логика. Допустим, вы взяли datetimepicker для начала даты и сгенерировать отчет до даты.

Пользователь в цикле button2_click code

DateTime stdate = Datetimepicker1.value;
while (stdate <= DateTime.Now)
{
    txtSelectedDate.Text = stdate.ToString("yyyyMMdd");
    selectedDate = txtSelectedDate.Text;

/* Here use your existing code as it is */
............
.........



stdate = stdate.AddDays (1); // It will get next date till present

}
...