Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
6 / 6 / 3
Регистрация: 13.05.2011
Сообщений: 146

Ошибка со временем задержки таймера, которое прописано в файле "txt"

21.06.2011, 21:09. Показов 1605. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеется код с точным временем запуска таймера, время задержки указанно в файле "105.txt" в виде "0, 0, 10"
C#
1
String startT = System.IO.File.ReadAllLines(@"C:\Users\Michael\Desktop\105.txt", Encoding.Default)[0].Trim();
Но возникает ошибка при вставке "startT"
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
System.Windows.Threading.DispatcherTimer timer = new System.Windows.Threading.DispatcherTimer();
        private void button1_Click(object sender, RoutedEventArgs e)
        {
            String startT = System.IO.File.ReadAllLines(@"C:\Users\User\Desktop\105.txt", Encoding.Default)[0].Trim();
 
            TimeSpan time = TimeSpan.Parse(startT); //Ошибка
            
            timer.Tick += new EventHandler(timerTick);
            timer.Interval = new TimeSpan(startT);
            timer.Start();
        }
 
        private void timerTick(object sender, EventArgs e)
        {
            timer.Stop();
            MessageBox.Show("Работет");
        }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.06.2011, 21:09
Ответы с готовыми решениями:

Ошибка. Формирования задержки с помощь таймера.
программа для формирования задержки с помощь таймера: на mov si выскакивает ошибка #include <stdio.h> #include...

Понять причину задержки таймера в потоке
if pos('wait_30_sec',list.Text)>0 then begin addtxt(1,'Ждем '+Inttostr(strtoint(pars('u0437: <b>',list.Text,'<'))+1)+' сек'); ...

Формирование задержки с использованием сист. таймера
Подскажите, вот написал код при котором светодиод моргает при помощи задержки от таймера, но что самое интересное, этот код работал, позже...

11
 Аватар для Петррр
6721 / 3570 / 900
Регистрация: 28.10.2010
Сообщений: 5,937
21.06.2011, 21:12
Текст ошибки в студию.
0
6 / 6 / 3
Регистрация: 13.05.2011
Сообщений: 146
21.06.2011, 21:20  [ТС]
Цитата Сообщение от Петррр Посмотреть сообщение
Текст ошибки в студию.
Ошибка:
(local variable) string startT

Error:
The best overload method match for 'System.TimeSpan.TimeSpan(long)' has some invalid arguments
0
 Аватар для Петррр
6721 / 3570 / 900
Регистрация: 28.10.2010
Сообщений: 5,937
21.06.2011, 21:26
TimeSpan.Parse - метод
0
6 / 6 / 3
Регистрация: 13.05.2011
Сообщений: 146
21.06.2011, 21:32  [ТС]
Цитата Сообщение от Koran Посмотреть сообщение
принимает аргументом целочисленную переменную (int или long - точно не помню), а вы ей скармливаете строковую переменную. так нельзя. нужно пропарсить строку и только тогда использовать то, что получится
это всё равно что вам предложат возвести в квадрат слово "Вася" - как вы это сделаете? вот и компилятор тоже ругается
Можно на примере, не понял "пропарсить строку"
0
 Аватар для Петррр
6721 / 3570 / 900
Регистрация: 28.10.2010
Сообщений: 5,937
21.06.2011, 21:40
C#
1
2
3
4
5
6
7
8
9
10
11
using System;
 
class Program
{
    static void Main(string[] args)
    {
        TimeSpan timeSpan = TimeSpan.Parse("99.23:59:59.9999999");
        Console.WriteLine(timeSpan);
        Console.ReadKey(true);
    }
}
0
6 / 6 / 3
Регистрация: 13.05.2011
Сообщений: 146
21.06.2011, 22:31  [ТС]
Так как мне написать, чтоб работало?
0
 Аватар для Петррр
6721 / 3570 / 900
Регистрация: 28.10.2010
Сообщений: 5,937
21.06.2011, 22:34
Во входной строке не может быть запятых. Вы посмотрите ссылку, которую я Вам дал. Там много примеров.
1
мастер топоров
 Аватар для Koran
917 / 742 / 101
Регистрация: 16.08.2009
Сообщений: 1,476
21.06.2011, 22:48
Цитата Сообщение от MaximusSM Посмотреть сообщение
Можно на примере, не понял "пропарсить строку"
конечно.
смотрите, когда мы имеем текстовый файл, в котором записано какое-либо число, то прочитав его мы получим строку, тоесть переменную типа string, но чтобы использовать это как число (к примеру чтобы производить над ним алгебраические операции) нам нужно извлечь из строки число.
C#
1
2
string s = "100"; //строковая переменная
int iVar = int.Parse(s); //целочисленная переменная
если в вашем случае

Цитата Сообщение от MaximusSM Посмотреть сообщение
"0, 0, 10"
имеется в виду 0 часов, 0 минут, 10 секунд, то такая строка парсится в переменную типа int (например в количество секунд) следующим образом:
C#
1
2
3
            string s = "0, 0, 10";
            string[] values = s.Split(new char[] { ' ', ',' }, StringSplitOptions.RemoveEmptyEntries);
            int interval = int.Parse(values[0]) * 60 * 60 + int.Parse(values[1]) * 60 + int.Parse(values[2]);
но коль уж Петррр советует использовать вышеуказанный метод, то это будет лучше ибо он в сущности должен делать то же самое, что и приведенный мною код

Добавлено через 10 минут
Петррр, что за самоуправство в теме? если вам лично чем-либо не нравятся мои посты, то можете оставить это при себе, не стоит удалять и редактировать мои посты, если я ничем не нарушаю правил форума при публиковании их. это не в первый раз, и я вам лично писал в приват об этом, но ответа не было ни на одно сообщение.
так может вы будете косить все посты в модерируемом вами разделе, которые ничем не помогли топикстартеру? по-вашему это будет благоразумно?
1
6 / 6 / 3
Регистрация: 13.05.2011
Сообщений: 146
21.06.2011, 23:20  [ТС]
Цитата Сообщение от Koran Посмотреть сообщение
конечно.
смотрите, когда мы имеем текстовый файл, в котором записано какое-либо число, то прочитав его мы получим строку, тоесть переменную типа string, но чтобы использовать это как число (к примеру чтобы производить над ним алгебраические операции) нам нужно извлечь из строки число.
C#
1
2
string s = "100"; //строковая переменная
int iVar = int.Parse(s); //целочисленная переменная
если в вашем случае


имеется в виду 0 часов, 0 минут, 10 секунд, то такая строка парсится в переменную типа int (например в количество секунд) следующим образом:
C#
1
2
3
            string s = "0, 0, 10";
            string[] values = s.Split(new char[] { ' ', ',' }, StringSplitOptions.RemoveEmptyEntries);
            int interval = int.Parse(values[0]) * 60 * 60 + int.Parse(values[1]) * 60 + int.Parse(values[2]);
но коль уж Петррр советует использовать вышеуказанный метод, то это будет лучше ибо он в сущности должен делать то же самое, что и приведенный мною код

Добавлено через 10 минут
Петррр, что за самоуправство в теме? если вам лично чем-либо не нравятся мои посты, то можете оставить это при себе, не стоит удалять и редактировать мои посты, если я ничем не нарушаю правил форума при публиковании их. это не в первый раз, и я вам лично писал в приват об этом, но ответа не было ни на одно сообщение.
так может вы будете косить все посты в модерируемом вами разделе, которые ничем не помогли топикстартеру? по-вашему это будет благоразумно?
Большое спасибо за разъяснение, но на практике я опять где-то ошибся, "MessageBox" срабатывает но без задержки на 10 секунд
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
System.Windows.Threading.DispatcherTimer timer = new System.Windows.Threading.DispatcherTimer();
        private void button1_Click(object sender, RoutedEventArgs e)
        {
 
 
            string s = System.IO.File.ReadAllLines(@"C:\Users\User\Desktop\105.txt", Encoding.Default)[0].Trim();
            string[] values = s.Split(new char[] { ' ', ',' }, StringSplitOptions.RemoveEmptyEntries);
            int interval = int.Parse(values[0]) * 60 * 60 + int.Parse(values[1]) * 60 + int.Parse(values[2]);
            
            
 
            timer.Tick += new EventHandler(timerTick);
            timer.Interval = new TimeSpan(interval);
            timer.Start();
        }
 
        private void timerTick(object sender, EventArgs e)
        {
            timer.Stop();
            MessageBox.Show("Работет");
        }
0
мастер топоров
 Аватар для Koran
917 / 742 / 101
Регистрация: 16.08.2009
Сообщений: 1,476
21.06.2011, 23:31
первое срабатывание таймера происходит при его запуске
добавьте в класс флаг:
C#
1
bool flag = false;
и в обработчике события тика таймера напишите следующий код:
C#
1
2
3
4
5
6
if(!flag){
   flag=true;
}else{
   timer.Stop();
   MessageBox.Show("Работет");
}
1
6 / 6 / 3
Регистрация: 13.05.2011
Сообщений: 146
22.06.2011, 01:07  [ТС]
Цитата Сообщение от MaximusSM Посмотреть сообщение
Большое спасибо за разъяснение, но на практике я опять где-то ошибся, "MessageBox" срабатывает но без задержки на 10 секунд
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
System.Windows.Threading.DispatcherTimer timer = new System.Windows.Threading.DispatcherTimer();
        private void button1_Click(object sender, RoutedEventArgs e)
        {
 
 
            string s = System.IO.File.ReadAllLines(@"C:\Users\User\Desktop\105.txt", Encoding.Default)[0].Trim();
            string[] values = s.Split(new char[] { ' ', ',' }, StringSplitOptions.RemoveEmptyEntries);
            int interval = int.Parse(values[0]) * 60 * 60 + int.Parse(values[1]) * 60 + int.Parse(values[2]);
            
            
 
            timer.Tick += new EventHandler(timerTick);
            timer.Interval = new TimeSpan(interval);
            timer.Start();
        }
 
        private void timerTick(object sender, EventArgs e)
        {
            timer.Stop();
            MessageBox.Show("Работет");
        }
Всё разобрался
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.06.2011, 01:07
Помогаю со студенческими работами здесь

Написать консольное приложение, которое должно обеспечить ввод произвольного количества строк и сохранения их в файле с расширением txt
написать консольное приложение, которое должно обеспечить ввод произвольного количества строк и сохранения их в файле с расширением txt. ...

Переписать компоненты файла 1.txt в файл 3.txt так, чтобы в файле 3.txt числа шли в определенном порядке
Дан файл 1.txt, компоненты которого являются целыми числами.Файл 1.txt содержит столько же отрицательных чисел, сколько положительных....

ResourceDictionary ошибка, но всё прописано
Добрейшего времени помогите пожалуйста. Структура вот такая: Везде всё прописал, но вылазит ошибка. "Корневой каталог...

Удалить в текстовом файле 1.txt все строки, которые встречаются в текстовом файле 2.txt
например имеется текстовый файл 1.txt c таким содержанием 111 222 333 444 555 и имеется текстовый файл 2.txt c таким...

секундомер со временем,которое пользователь находится на сайте JavaScript
Подскажите как сделать такой секундомер что бы при наведении мыши он приостанавливался,а если мышь убрать то считал с того же момента на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru