0

.txt ファイルを含むサーバーがあります。プログラムはページをテキストファイルに保存してから、カウントを使用して行ごとに処理しています。次に、それを datetime に追加してから、リストに追加する必要があります。

これまでのところ、最後の部分の日時とリストを除いて、かなり良いです。常にフォーマット例外が発生します。私はいくつかのバリエーションを試してみましたが、うまくいきませんでした。

時間は次のように一覧表示されます。

 06:06 AM
 06:07
 12:12 
 12:50 

1 行に 1 つ

メッセージボックスには、一度に各結果が表示され、エラーがなく正しい情報が表示されます。

while ((line = file.ReadLine()) != null)
{

  //  MessageBox.Show(line);
      List<DateTime> Busarrivetime = new List<DateTime>();
  //  DateTime tryme = DateTime.Parse(line, CultureInfo.InvariantCulture);
  //  MessageBox.Show(tryme.ToString());
      DateTime date;
      Busarrivetime.Add(date = DateTime.ParseExact(line,"hh:mm tt", System.Globalization.CultureInfo.InvariantCulture)); // ERRORS ON THIS LINE

      count++;
}

file.Close();

Console.ReadLine();

正確なエラー:

mscorlib.dll で 'System.FormatException' 型の未処理の例外が発生しました

これが私が取り組んでいるリストです

4

3 に答える 3

1

あなたの時間形式は一貫して同じではありません。たとえば、06:06 AM午前/午後指定子がありますが、as12:12はありません。

そのため、複数の可能な形式を使用することを検討してください。

DateTime.ParseExact(item, new[] { "hh:mm tt", "HH:mm" }, System.Globalization.CultureInfo.InvariantCulture, DateTimeStyles.None);

これはうまくいくはずです

于 2013-09-14T15:30:36.843 に答える
0

ファイルの最後に余分な空白行があるだけでしょうか?

// add this just inside your while loop
if (String.IsNullOrWhiteSpace(line))
    continue;

また、while ループの前にリストを宣言する必要があります。そうしないと、1 つの大きなリストに追加するのではなく、行ごとに新しいリストを取得することになります。

于 2013-09-14T17:43:18.400 に答える