Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1191917559
БарЛог
2007-10-09 12:12
2007.11.11
Direct Connect - сервер


15-1191050748
x.pro
2007-09-29 11:25
2007.11.11
Проблема с формами... или руками моими...


10-1139905588
nastya
2006-02-14 11:26
2007.11.11
EIntfCastError


8-1168776768
andr1962
2007-01-14 15:12
2007.11.11
Помогите с directdraw


2-1192788766
OlegMa1
2007-10-19 14:12
2007.11.11
Простой TObject





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский