Рейтинг:
26
phil.o
Сначала вы должны получить правильное значение DateTime из строки из файла:
// Top of file
using System.Globalization;
string dateString = /* get your date string here */;
DateTime dateValue = DateTime.ParseExact(dateString, "dd/MM/yyyy HH:mm:ss", CultureInfo.CurrentCulture);
Затем вы можете сравнить его с текущей датой и временем. Однако это становится немного сложнее, так как вы можете захотеть сравнить только часть значений (например, не принимать во внимание миллисекунды). Реализация зависит от вашей спецификации.
Member 14786879
Когда я попробую ваше решение, дайте мне эту ошибку: "невозможно преобразовать 'string' в 'System.Объекта iformatprovider'. И знаете почему?
phil.o
- Виноват, - поправил я свой ответ.
Member 14786879
Я попробовал еще раз, как:
string[] liness = файл.ReadAllLines(ofd.FileName);
если (чувство.Длина > 0)
{
строка строчка = чувство[чувство.Длина - 1];
string[] columns = последняя строка.Расщеплять(';');
если (столбцы.Длина > 0)
{
строка date = столбцы[0];
строку дату = дата;
Датавремя датазнач = дата и время.Метод parseexact(дату, "ДД/ММ/гггг чч:мм:СС", свойство CultureInfo.Свойства currentculture);
Но он говорит, что в последней строке есть такая ошибка: "строка не распознается как допустимое значение DateTime."
phil.o
Не зная, какое точное значение есть в строке, трудно сказать решение. Пришло время начать сеанс отладки и исследовать это значение, которое не может быть проанализировано. Вы знаете, как проводить сеанс отладки?
Member 14786879
Под точным значением вы подразумеваете то, что есть в переменной "дата"? Потому что, если вы имеете в виду, что в txt файл, он будет читать эту строку "21/05/2020 17:05:00 ; другие информация ; прочая информация ; другая информация," и я собираюсь читать только первые "столбца", который содержит только этот "21/05/2020 17:05:00".
Нет, я не знаю, как провести сеанс отладки, я ищу на других форумах в google, у которых есть моя такая же проблема, но на данный момент я не нашел ответа, поэтому я зарегистрировался здесь и попросил помощи
phil.o
То, что находится в файле, - это одно; но это то, что точно находится в переменной даты, которая имеет значение.
Учебник: научитесь отлаживать код C# с помощью Visual Studio
Поставьте точку останова на линии string date = columns[0];
, и запустите сеанс отладки (F5). Когда программа дойдет до точки останова, ее выполнение приостановится, и вы сможете выполнить ее построчно (F11) и следить за значениями, содержащимися в переменных.
Member 14786879
Хорошо, программа прочитала в txt-файле это:
"03/04/2019 11:22:09 --- \т" и он поставил ее на переменную "дата".
Мой txt файл, как бревно, так что есть много строк, как "21/05/2020 17:05:00 ; другие информация ; прочая информация ; прочая информация"
В этом коде мне просто нужно прочитать последнюю строку.
phil.o
Вы должны избавиться от --- \t
на конце веревки. Именно это мешает правильному анализу даты.
Member 14786879
строка строчка = чувство[чувство.Длина - 1];
string[] columns = последняя строка.Расщеплять(';');
если (столбцы.Длина > 0)
{
строка date = столбцы[0];
строку дату = дата;
дату = дату.Удалить(19);
Датавремя датазнач = дата и время.Метод parseexact(дату, "ДД/ММ/гггг чч:мм:СС", свойство CultureInfo.Свойства currentculture);
если (датазнач.Дата == Дата И Время.Сейчас.Дата)
{
Ящик для сообщений.Показать("ОК");
}
еще
{
Ящик для сообщений.Шоу("плохо");
}
Хорошо, я нашел, как избавиться от --- \t. Теперь я пытаюсь сравнить то, что у меня есть в переменной dateString с датой и часом windows, но пока я это делаю, просто сравните дату и час..
Как я должен это исправить?
Рейтинг:
2
Richard MacCutchan
string lastColumn = columns[columns.Length - 5];
С какой стати ты это делаешь? Ваша дата и время-это первая колонка, а не последняя. Вы получаете доступ к нему с помощью
string date = columns[0];
Member 14786879
Вы правы, мне очень жаль, но я новичок в этом мире, как вы можете видеть. Я пытаюсь сделать эту программу, как могу, но, похоже, она не работает.
Я старался, как вы говорите, и это хорошо работает, теперь я должен лучше понять, как идти дальше
Richard MacCutchan
Ну, мы все должны были с чего-то начать и учиться с нуля. Но для начала вам лучше раздобыть несколько хороших учебных материалов. Попытка учиться на таком форуме займет гораздо больше времени. Есть очень хорошая бесплатная книга, которую вы можете скачать у великого Чарльза Петцольда. Идти к .NET книга ноль Чарльза Петцольда[^ и взгляните на него.
Рейтинг:
0
Member 14786879
Да, я знаю, но теперь я не знаю, как решить эту часть проблемы
Richard MacCutchan
А почему бы и нет? OriginalGriff уже рассказал вам, как это сделать. Если у вас возникли проблемы с его предложением, то попросите его разъяснить, а не публиковать тот же вопрос снова.