
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
03.08.2018, 09:53
|
|||
|---|---|---|---|
|
|||
Создание файла поверх существующего |
|||
|
#18+
При выгрузке данных вот таким образом... Код: pascal 1. 2. Код: pascal 1. 2. ... файл не перезаписывается. Как сделать, чтобы он удалялся и создавался заново. Мне критично из-за того, что другая программа должна взять FileAge(), а там всегда одно и тоже. Если его вручную удалить, то создастся с нормальной датой, последней и актуальной. Победить никак не могу. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.08.2018, 10:12
|
|||
|---|---|---|---|
Создание файла поверх существующего |
|||
|
#18+
ЧёЗа, 1. явно удалять и создавать занова. 2. а еще лучше не пользоваться FileAge. Искать дату последнего изменения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.08.2018, 10:58
|
|||
|---|---|---|---|
Создание файла поверх существующего |
|||
|
#18+
рискованный подход 1) удаляешь файл 2) начинаешь создавать новый файл 3) тут крэш в программе или в компьютере - и новый файл создается наполовину только старого файла уже нет, нового еще нет - нормально? тут надо flip-flop делать, если места на диске хватает, как архиваторы например > другая программа должна взять FileAge(), тоже стрёмно 1) удаляешь файл 2) начинаешь создавать новый файл c новым age 3) успеваешь записать например 25% файла... 4) тут другая программа просыпается и начинает его читать, прочитывает процентов 30 и отключается 5) ты заканчиваешь записывать файл - но всё, что ты записал после 30% никем уже никогда не будет прочитано ------------ в общем, буфер - это одно дело, а признак готовности буфера - другое! Их надо раздельно держать. IMHO правильный вариант 1) заводишь папку типа C:\Exchange 2) пишущая программа пишет туда файлы 000000.txt, 000001.txt, 0000002.txt и т.д. 3) при этом она пишет их как 000000.$$$ пока полностью все данные не положит на диск и не сбросит буферы. Только потом переименовывает $$$ в txt 4) никакой файл никогда не переписывается, вообще! 5) читающая программа подписывается у Windows на сообщения про папку C:\Exchange 6) когда Windows говорит "папка изменилась" - смотрит на список *.txt, появилось ли там ранее нечитанное 7) после успешного чтения (n).txt читающая прграмма удаляет (n-1).txt, (n-2).txt и т.д. Таким образом у тебя в папке на всякий случай всегда есть предыдущий файл А если понадобится отладка - ты вообще отключишь 7-й шаг и у тебя будут накапливаться ВСЕ данные за весь период работы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.08.2018, 18:50
|
|||
|---|---|---|---|
Создание файла поверх существующего |
|||
|
#18+
SetFileTime не вариант? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=58&tablet=1&tid=2040562]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
57ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
| others: | 227ms |
| total: | 392ms |

| 0 / 0 |
