|
|
|
Создание файла поверх существующего
|
|||
|---|---|---|---|
|
#18+
При выгрузке данных вот таким образом... Код: pascal 1. 2. Код: pascal 1. 2. ... файл не перезаписывается. Как сделать, чтобы он удалялся и создавался заново. Мне критично из-за того, что другая программа должна взять FileAge(), а там всегда одно и тоже. Если его вручную удалить, то создастся с нормальной датой, последней и актуальной. Победить никак не могу. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2018, 09:53 |
|
||
|
Создание файла поверх существующего
|
|||
|---|---|---|---|
|
#18+
ЧёЗа, 1. явно удалять и создавать занова. 2. а еще лучше не пользоваться FileAge. Искать дату последнего изменения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2018, 10:12 |
|
||
|
Создание файла поверх существующего
|
|||
|---|---|---|---|
|
#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, 10:58 |
|
||
|
Создание файла поверх существующего
|
|||
|---|---|---|---|
|
#18+
SetFileTime не вариант? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2018, 18:50 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39682960&tid=2040562]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
187ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
| others: | 248ms |
| total: | 542ms |

| 0 / 0 |
