Форум: "Начинающим";
Текущий архив: 2007.11.11;
Скачать: [xml.tar.bz2];
ВнизTStream Найти похожие ветки
← →
pathfinder (2007-10-19 14:01) [40]А если программа будет добавлять записи лога непосредственно а файл через TFileStream, то как тогда лучше в ходе работы программы не допускать превышения размера файла?
← →
Reindeer Moss Eater © (2007-10-19 14:08) [41]Файл растет, если в него писать.
Как не допустить чтобы файл рос?
← →
pathfinder (2007-10-19 14:18) [42]
> Как не допустить чтобы файл рос?
Как я понимаю: 1) Не писать. 2) По мере превышения отрезать от него лишний кусочек.
Может есть лучшие варианты?
← →
Reindeer Moss Eater © (2007-10-19 14:45) [43]А может тебе лучше купить гуся и уже ему парить мозг?
← →
Reindeer Moss Eater © (2007-10-19 14:46) [44]По мере превышения отрезать от него лишний кусочек.
Умеешь "отрезать от файла кусочки"?
Вперед. Отрезай.
← →
pathfinder (2007-10-19 15:07) [45]
> Умеешь "отрезать от файла кусочки"?
В том то и дело, что нет:)
> Reindeer Moss Eater © (19.10.07 10:05) [13]
>
> Если текушая позиция + новая строка превысят лимит, сместить
> указатель вначало и писать по старым записям.
Тогда придется запоминать позицию указателя при выходе из программы, чтобы при следующем запуске начать с того же места?
← →
pathfinder (2007-10-19 15:08) [46]
> > Умеешь "отрезать от файла кусочки"?
Я думал может кто-нибудь умеет:)
← →
Сергей М. © (2007-10-19 15:16) [47]
> pathfinder (19.10.07 15:08) [46]
Файл протокола у тебя структурированный ?
Или содержит записи переменной длины ?
← →
pathfinder (2007-10-19 15:20) [48]
> Файл протокола у тебя структурированный ?
> Или содержит записи переменной длины ?
Переменной.
← →
Сергей М. © (2007-10-19 15:28) [49]Тогда откуда тебе известен тот самый "определенный размер", который ты хотел оттяпать от файла или наоборот оставить в файле ?
← →
pathfinder (2007-10-19 15:34) [50]
> Тогда откуда тебе известен тот самый "определенный размер",
> который ты хотел оттяпать от файла или наоборот оставить
> в файле ?
Текущий размер файла - максимально допустимый размер.
← →
pathfinder (2007-10-19 15:41) [51]Подскажите пожалуйста, какие есть проверенные(шаблонные) методы для работы с лог файлами? Как обычно делают в нормальных программах?
← →
Сергей М. © (2007-10-19 16:01) [52]
> Текущий размер файла - максимально допустимый размер
Скажем, размер файла 10 байт, ты хочешь записать в него протокольную запись размером 11 байт.
Куда девать 1 байт ? Оттяпать его от записи, чтобы запись влезла в файл ? Ну и нафих, спрашивается, нужет такой покоцаный протокол ? Что в нем можно прочитать после таких вот "оттяпываний" ради следования требованиям непревышения предельного размера ?
← →
pathfinder (2007-10-19 16:11) [53]
> Скажем, размер файла 10 байт, ты хочешь записать в него
> протокольную запись размером 11 байт.
Ну это слишком утрированный пример. Зачем же ограничивать размер лога десятью байтами? Я понимаю еще 10 мб.
Разве обычно не так делают?
← →
Сергей М. © (2007-10-19 16:35) [54]
> Я понимаю еще 10 мб
А по барабану какой размер)
Ты обозначил некий предельный размер, а что делать, если очередная протокольная запись влазит в файл лишь частично ?
Подумай ..
← →
pathfinder (2007-10-19 16:46) [55]У меня была мысль, если например размер превышает предел, то загрузить содержимое файла и сохранить заново в файл только например 75 процентов от этих данных начиная с конца. Но такой вариант мне не очень нравится..
← →
Сергей М. © (2007-10-19 16:57) [56]
> сохранить заново в файл только например 75 процентов от
> этих данных
А если эти 75% придутся не на целое число протокольных записей ?
И в этом случае покоцаные данные в протоколе окажутся)
Думай ..
← →
Leonid Troyanovsky © (2007-10-19 17:00) [57]
> pathfinder (19.10.07 16:46) [55]
> Но такой вариант мне не очень нравится..
Есть такой IStorage {StgCreateDocFile}, в коем можно
хранить данные как IStream, например, за один день (час).
А если оные устарели, то их можно и удалить.
Но, как оно коррелирует с размером файла -
я никогда не интересовался.
--
Regards, LVT.
← →
pathfinder (2007-10-19 17:05) [58]
>
> А если эти 75% придутся не на целое число протокольных записей
> ?
>
> И в этом случае покоцаные данные в протоколе окажутся)
Ну да.. это побочный эффект) Типизированный файл я не хотел, потому что у меня много коротких записей, но есть и весьма длинные. Но это не самое неприятное. Мне больше всего не нравится, что надо его полностью загружать и сохранять заново. А можно с помощью методов TFileStream обрезать файл без его загрузки и сохранения?
← →
Anatoly Podgoretsky © (2007-10-19 19:37) [59]> pathfinder (19.10.2007 12:02:35) [35]
Ну так назови файл - "Не открывать, убьет"
← →
Anatoly Podgoretsky © (2007-10-19 19:38) [60]> pathfinder (19.10.2007 12:48:39) [39]
А кто просил совсем простой, не ты ли?
← →
Anatoly Podgoretsky © (2007-10-19 19:38) [61]> pathfinder (19.10.2007 14:18:42) [42]
А эти чем плохи?
← →
Anatoly Podgoretsky © (2007-10-19 19:39) [62]> pathfinder (19.10.2007 16:11:53) [53]
Обычно так не делают.
← →
pathfinder (2007-10-19 21:55) [63]
> Ну так назови файл - "Не открывать, убьет"
Это мысль:)
> А кто просил совсем простой, не ты ли?
Нет, не я.. Я просил не очень сложный:)
> А эти чем плохи?
Невозможностью реализации.
> Обычно так не делают.
А как делают?
← →
Jump (2007-10-19 22:25) [64]А можно с помощью методов TFileStream обрезать файл без его загрузки и сохранения?
Представь себе веревку длиной 2 метра, привязанную к потолку, а с другого конца - привязана гиря. Высота потолка - 3 метра. Задание: обрезать веревку до длины в 1 метр таким образом, чтобы гиря продолжала висеть на высоте 1 метра от пола.
Вот это где-то приблизительно то, что ты хочешь сделать с файлом - обрезать его начало, но так, чтобы конец файла не переместился.
Удачи...
← →
pathfinder (2007-10-19 22:46) [65]
> Jump (19.10.07 22:25) [64]
Намек понял:) Спасибо за разъяснения.
Страницы: 1 2 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.11.11;
Скачать: [xml.tar.bz2];
Память: 0.56 MB
Время: 0.046 c