0

我正在使用 Windows 窗体应用程序创建议程程序,我正在尝试将文件中的数据加载到哈希表中并将这些数据显示到文本框中。文本框上的标签是日期,但这些日期的格式为(dd MMMM dddd例如 11 月 30 日星期五),并用作哈希表的键值。文件中的日期格式为 ( dd MM yyyy)。显示文件中的数据示例。

10/07/2012 10.30 去游泳 *

30/11/2012 15.30 去游泳 *

当我加载表单时,数据应该显示在相应的文本框中。例如将在 15.30 去游泳 * 必须显示在带有标签“11 月 30 日星期五”的文本框下(因为它对应于日期 30/11/2012)。我能够将数据拆分为键值对,如下面的代码所示:

StreamReader sr=new StreamReader("Path/ajand.txt");

   string line;

    while ((line = sr.ReadLine()) != null)
    {
      key = line.Substring(0, 10);//gets date
      value = line.Substring(10);//gets string
      hT.Add(key, value);
    }

如何将数据添加到相应的文本框中?

4

2 回答 2

0

使用 Convert.toDateTime(参见 msdn: http: //msdn.microsoft.com/en-us/library/cc165448.aspx)将日期转换为您想要的格式。

然后,遍历哈希表中的每个条目

foreach(var entry in hashTable)
{
    //todo: convert entry.key (which is the date) to your format
    //      then set the label to the formatted date.
    //      lastly, set the text for the textBox
}
于 2012-11-30T21:00:37.277 回答
0

理想情况下,您希望将表单和数据文件中的数据转换为 DateTime 实例并进行比较。但是,鉴于表单中的日期(在标签中)缺少年份部分,最好的办法是将数据文件中的数据转换为 DateTime 对象,然后提取该日期的字符串格式(在与表单数据相同的格式)。此时,字符串比较将允许日期匹配。例如:

foreach(DictionaryEntry dataEntry in hT)
{
   //Will throw a FormatException if 'dataEntry.Key' doesn't represent a valid date format
   DateTime keyAsDate = Convert.ToDateTime(dataEntry.Key);

   //This overload of 'ToString' uses CurrentCulture
   string comparisonKey = keyAsDate.ToString("dd MMMM dddd");

   if(formLabel.Text.Equals(comparisonKey, StringComparison.OrdinalIgnoreCase))
   {
       formTextBox.Text = dataEntry.Value;
   }
}
于 2012-12-01T04:00:35.297 回答