С Новым годом! Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 12.07.2012
Сообщений: 4

Запись значений каждую секунду

12.07.2012, 16:45. Показов 1887. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть программа которая читает данные из прибора. Значения выводятся на экран пользователя. Необходимо эти значения каждую секунду куда то сохранять, лог так сказать. Сейчас записываю в текстовый файл. Но файл увеличивается каждые 5 с на килобайт (оставлю сегодня на ночь- посмотрю что будет, но скорее всего прога повиснет). Куда еще можно сохранять значения- дата, время и четыре переменных с плавающей точкой? Чет с базами данных связываться не хочется- сунулся, остановился где то на создании таблиц в MySQL.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.07.2012, 16:45
Ответы с готовыми решениями:

Изменение текста в TextBox каждую секунду
Суть: Есть строка TextBox1.Text = Format(Now, "hh :mm :ss"), но почему-то обновляется только при нажатии кнопки (Написание любой буквы в...

Мне надо что-бы нажималось клавиша W каждую секунду
всем привет я хочу написать макрос для одной увлекательной игры ... мне надо чтобы нажималось клавиша W каждую секунду у меня есть...

Нужно чтобы стрелка каждую секунду передвигалась на 1 деление равное 1 секунде
я программирую секундомер(я знаю что смешно звучит но 'я не программист я только учусь') так вот мне нужно чтобы стрелка каждую секунду...

11
 Аватар для Kogb
367 / 128 / 28
Регистрация: 17.07.2011
Сообщений: 253
Записей в блоге: 1
12.07.2012, 17:24
Почему она должна повиснуть? Всего 17 МБ за сутки запишется.
Покажи как записываешь в файлс.
0
 Аватар для morgann55
1365 / 207 / 37
Регистрация: 09.02.2012
Сообщений: 745
12.07.2012, 18:11
Можно ведь при достижении определённого размера файла создать следующий и кидать в него (лишь бы места на диске хватало)....
0
 Аватар для Апострофф
9908 / 3923 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
12.07.2012, 19:22
И записывать не в текстовый, а в типизированный файл.
Ещё в 5 (а то и более) раз экономия
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Option Explicit
 
Type m_rec
  DT As Date 'здесь можно хранить дату и время в 8-ми байтах
  a As Double '8-мь байт
  b As Double '8-мь байт
  c As Double '8-мь байт
  d As Double '8-мь байт
End Type
 
Sub main()
Dim m As m_rec
MsgBox Len(m) '40 байт
End Sub
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38164 / 21099 / 4306
Регистрация: 12.02.2012
Сообщений: 34,687
Записей в блоге: 14
12.07.2012, 22:00
И все это писать в сжатую папку!
0
0 / 0 / 0
Регистрация: 12.07.2012
Сообщений: 4
13.07.2012, 07:54  [ТС]
Цитата Сообщение от Kogb
Почему она должна повиснуть? Всего 17 МБ за сутки запишется.
Покажи как записываешь в файлс.
Прога не повисла за 12 часов -7 Мб.
Записываю так:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Public Sub WritLog()
Dim LogFile 
LogFile = FreeFile
'On Error GoTo Err
Open "C:\Save\Log.txt" For Append As #LogFile 
 
' Дата, время
Dim S, S1, S2 As String
S = Now
S1 = Mid(S, 1, 10) 'Дата
S2 = Mid(S, 11, 19) 'Время
 
Print #LogFile, S1, Chr(9), S2, Chr(9), Form1.Text1.Text, Chr(9), _
Form1.Text2.Text, Chr(9), Form1.Text3.Text, Chr(9), Form1.Text4.Text
Close #LogFile 
Exit Sub
'Err: MsgBox "Ошибка записи в файл"
Exit Sub
End Sub

А необходимо ли каждый раз закрывать файл после записи?

Добавлено через 9 минут
И записывать не в текстовый, а в типизированный файл.
Ещё в 5 (а то и более) раз экономия


Первый раз слышу про типизированный файл, новичок еще. Можно код записи в файл? И как его потом( в ручную) в Excel засунуть?
0
 Аватар для Апострофф
9908 / 3923 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
13.07.2012, 08:03
Цитата Сообщение от Хан Посмотреть сообщение
А необходимо ли каждый раз закрывать файл после записи?
Трудно что-либо посоветовать?
С одной стороны: если не закрывать, а программа работает без перерыва сутками, то любой сбой в системе или питании - и всё нажитое непосильным трудом, ВСЁ пропало
С другой - за секунду можно и не успеть открыть многотонный файл, дописать данные и закрыть.
В итоге начнутся тормоза, запись станет нерегулярной.
Возможно, лучше выбрать сохранение раз в минуту или ещё как?
0
0 / 0 / 0
Регистрация: 12.07.2012
Сообщений: 4
13.07.2012, 08:37  [ТС]
Значит нужно закрывать файл каждый раз-однозначно.
Записывать значения необходимо каждую секунду- потом будут по ним точные графики составлять. Значит необходимо обратиться к типизированным файлам. Мне необходим файл "Июль 2012", значит: 40(байт)*2 592 000(с)/1024/1024=99 Мб/месяц. Вполне удобоваримо. Если получится.
 Комментарий модератора 
Осваиваем тэги!
0
 Аватар для Апострофф
9908 / 3923 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
13.07.2012, 09:10
Цитата Сообщение от Хан Посмотреть сообщение
И как его потом( в ручную) в Excel засунуть?
Бинарный файл не прочитать в блокноте или в Экселе без декодера (собственной подпрограммы).
0
0 / 0 / 0
Регистрация: 12.07.2012
Сообщений: 4
13.07.2012, 09:34  [ТС]
Сделал так:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Option Explicit
Public Sub WritLog()
Dim DT As Date 
Dim a As Double 
Dim b As Double 
Dim c As Double 
Dim d As Double 
 
Dim LogFile 
LogFile = FreeFile
'On Error GoTo Err
Open "C:\Save\Log.tow" For Append As #LogFile 
DT = Now
a = Form1.Text1.Text
b = Form1.Text1.Text
c = Form1.Text1.Text
d = Form1.Text1.Text
'On Error Resume Next
Print #LogFile, DT, a, b, c, d
Close #LogFile 
Exit Sub
'Err: MsgBox "Îøèáêà çàïèñè â ôàéë"
Exit Sub
End Sub
Вроде файл медленней заполняется, на сколько сообщу попозже.
Почему при вставке комментарии кракозяброй отображаются-'Îøèáêà çàïèñè â ôàéë ??
0
 Аватар для Апострофф
9908 / 3923 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
13.07.2012, 09:47
Цитата Сообщение от Хан Посмотреть сообщение
Почему при вставке комментарии кракозяброй отображаются-'Îøèáêà çàïèñè â ôàéë ??
Копируй при включенной русской раскладке!
И тэги используй, сколько раз ещё повторить надо!

Первый раз слышу про типизированный файл, новичок еще
Поищи по ключевым словам Open for random, Put, Get.
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
14.07.2012, 19:20
Апострофф, спасибо. Не знал о возможности записи пользовательского типа в двоичный файл.

Вот поигрался:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Type m_rec 'итого - 16 байт на 1 запись
  DT As Date 'здесь можно хранить дату и время в 8-ми байтах
  a As Double '8-мь байт
End Type
 
Sub main()
Dim m As m_rec, ff&
  
  m.a = 1E+16
  m.DT = Now
ff = FreeFile
Open "c:\123.txt" For Binary Lock Read Write As #ff 'первая запись
  Put #ff, , m
Close #ff
Debug.Print m.a, m.DT
 
  m.a = 1.23456789012345E+15
ff = FreeFile
Open "c:\123.txt" For Random Lock Read Write As #ff Len = Len(m) 'следующая запись
  Put #ff, LOF(ff) / Len(m) + 1, m
Close #ff
 
  m.a = 0 'обнуляем для чистоты эксперимента
  m.DT = 0
ff = FreeFile
Open "c:\123.txt" For Binary As #ff 'считываем последнюю запись
  Get #ff, LOF(ff) - Len(m) + 1, m
Close #ff
Debug.Print m.a, m.DT
End Sub
Интересно, блокировка файла на время записи занижает нагрузку на файловую систему антивируса?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.07.2012, 19:20
Помогаю со студенческими работами здесь

Запись параметров объектов в файл каждую секунду
Всем привет! Язык только осваиваю, поэтому нужна помощь. Поиском пользовался, не нашел подходящего. Имеется задача: нужно...

Действие каждую секунду
подскажите пожалуйста как сделать чтоб через каждую секунду выполнялось действие ну там вычесть из переменных

Действие, повторяющееся каждую секунду
подскажите пожалуйста как сделать чтоб через каждую секунду выполнялось действие ну там вычесть из переменных

Увеличение TrackBar.Value каждую секунду
Подскажите, как увеличивать значение trackBara-а на 1-ин, каждую секунду, с помощью timer-а.

Добавление по единице каждую секунду
Хочу сделать что-бы писало 1 (1 сек) 2 (1 сек) 3 и т.д,но не знаю как это сделать.


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru