Форум: "Прочее";
Текущий архив: 2009.06.21;
Скачать: [xml.tar.bz2];
ВнизСколько в tMemo можно сунуть информации? Найти похожие ветки
← →
12 © (2009-04-17 17:03) [0]Слышал краем уха, что есть предел.
Написал себе костыль, в виде программки-анализатора БД, которая раз в 5 минут пишет в мемо результаты. Собираюсь оставить на выходные включенной. Сколько там понапишется, не знаю. Не повиснет из-за переполнения?
Можно бы и в файл, конечно.. Но это столько кода перелопачивать, ибо изначально не думал, что так получится
← →
Eraser © (2009-04-17 17:05) [1]> [0] 12 © (17.04.09 17:03)
тестовый пример из 5-10 строк религия не дает написать? )
← →
Jeer © (2009-04-17 17:05) [2]
> Но это столько кода перелопачивать,
Да ты приляг у телевизора: пивко, Дом-2, etc.. и зачем тебе эти тяготы с мозговыми упражнениями ?
Отдыхай.
← →
12 © (2009-04-17 17:14) [3]да я не знаю сколько туда может вообще попасть, для того что б пример писать и на сервере не хочу экспериментировать
пока проверил, много можно, но вдруг еще больше надо будет
ну и спасибо на добром слове, конечно..
← →
Dimka Maslov © (2009-04-17 17:16) [4]В 95/98 Было ограничение в 64 килобайта. На платформе NT ограничения никакого небыло. Только размер доступной приложению памяти.
← →
@!!ex © (2009-04-17 17:16) [5]> Но это столько кода перелопачивать
15 минут работы. Проверенно.
← →
@!!ex © (2009-04-17 17:17) [6]> [4] Dimka Maslov © (17.04.09 17:16)
Может всетаки мегабайта.
в 64 кб даже лицензионное соглашение Windows не влезет.
← →
clickmaker © (2009-04-17 17:18) [7]> Можно бы и в файл, конечно.. Но это столько кода перелопачивать
Search and Replace:
Memo1.Lines.Add() -> WriteLog()
где WriteLog - процедура максимум из 5 строчек, записывающая строку в файл (можно один раз открытый при старте программы)
← →
@!!ex © (2009-04-17 17:18) [8]> [5] @!!ex © (17.04.09 17:16)
Делается просто. Memo переименовывается или вообще удаляется. После чего во всех файлах ищется обращение к Memo, заменяется на запись в файл.
← →
@!!ex © (2009-04-17 17:19) [9]> [7] clickmaker © (17.04.09 17:18)
> где WriteLog - процедура максимум из 5 строчек, записывающая
> строку в файл (можно один раз открытый при старте программы)
Главное Flush не забыть...
← →
Kolan © (2009-04-17 17:22) [10]Надо было использовать посетителя или подобный способ, так чтобы способ сохранения (файл, мемо...) не зависел от кода.
← →
12 © (2009-04-17 17:22) [11]>> Memo удаляется
а вот так я что-то не подумал..
← →
@!!ex © (2009-04-17 17:23) [12]Кстати, автор. Добавление в memo - это ЖУТКО медленно. Запись в файл будет работать во много раз быстрее.
← →
Паша (2009-04-17 17:44) [13]
> @!!ex © (17.04.09 17:17) [6]
все таки килобайта. и влазит туда достаточно много. под ДОСом я туда даже виртуальный диск засовывать умудрялся, потому как с 5-ти дюймовой дискеты очень медленно все работало, а винта не было в принципе. мда... все таки винда очень развращает... метры, гиги...
← →
12 © (2009-04-17 17:46) [14]>> ЖУТКО медленно
возможно, но удобно чтоб можно сразу где-то видеть результат, а не открывать файл или жать Обновить (одно время делал лог в html, достаточно переключится на браузер и нажать Ф5)
← →
@!!ex © (2009-04-17 17:47) [15]> [13] Паша (17.04.09 17:44)
ПРи чем тут винда? Даже под досом было 640 килобайт доступно... С 64кб я работал и представляю сколько это, просто под виндой 64кб, это как-то.. неправильно.
← →
@!!ex © (2009-04-17 17:48) [16]> [14] 12 © (17.04.09 17:46)
Достаточно открыть файл в фаре. ничего ждать не надо, новые строки будут появлятся автоматически и скролится будет автоматически. И скорость будет замечательная.
← →
clickmaker © (2009-04-17 17:49) [17]> но удобно чтоб можно сразу где-то видеть результат, а не
> открывать файл или жать Обновить
в просмотрщике FARа, например, если встанешь на конец файла, он сам будет подтягивать добавленные строки. И ничего жать не надо
← →
Городской Шаман (2009-04-17 18:09) [18]
>
> 12 © (17.04.09 17:03)
На Win9x 64 Кб, на NT 2 Гб (тоесть сколько может процессу быть выделено виртуальной памяти)
← →
tButton © (2009-04-18 02:43) [19]
> clickmaker © (17.04.09 17:18) [7]
>
> > Можно бы и в файл, конечно.. Но это столько кода перелопачивать
>
> Search and Replace:
> Memo1.Lines.Add() -> WriteLog()
> где WriteLog - процедура максимум из 5 строчек, записывающая
> строку в файл (можно один раз открытый при старте программы)
Memo1.Lines.SaveToFile...
← →
@!!ex © (2009-04-18 07:38) [20]> [19] tButton © (18.04.09 02:43)
И что это?
← →
test © (2009-04-18 07:49) [21]В исходниках посмотреть уже не то?
← →
korneley © (2009-04-18 08:01) [22]
> @!!ex © (18.04.09 07:38) [20]
> > [19] tButton © (18.04.09 02:43)И что это?
Изврат по полной. Сначала в мемо, потом в файл. Причём, каждый раз "полным куском". :)))
← →
Marser © (2009-04-19 12:35) [23]
> @!!ex © (17.04.09 17:18) [8]
>
> > [5] @!!ex © (17.04.09 17:16)
>
> Делается просто. Memo переименовывается или вообще удаляется.
> После чего во всех файлах ищется обращение к Memo, заменяется
> на запись в файл.
Лучше всё-таки запись в лог заранее оформить отдельной процедурой и затем влёт менять логику работы логирования, эдакий самопальный не ООП-полиморфизм ;-)
← →
@!!ex © (2009-04-19 14:05) [24]> [23] Marser © (19.04.09 12:35)
Ну я же не имел ввиду, что прм надо писать: Writeln(F, "bla bla bla");
вызов записи имел ввиду. Что-то типа: Loger.Add("bla bla bla");
← →
Palladin © (2009-04-19 14:27) [25]
> @!!ex © (17.04.09 17:17) [6]
Кило.
← →
antonn © (2009-04-19 16:56) [26]ограничение на строку в мемо 4к
function TMemoStrings.Get(Index: Integer): string;
var
Text: array[0..4095] of Char;
begin
Word((@Text)^) := SizeOf(Text);
SetString(Result, Text, SendMessage(Memo.Handle, EM_GETLINE, Index,
Longint(@Text)));
end;
← →
tButton © (2009-04-20 02:43) [27]Memo1: TMemo; -> Memo1: tStringList;
так еще можно =)
← →
test © (2009-04-20 08:32) [28]D7
unit Classes;
MaxListSize = Maxint div 16;
procedure TList.SetCapacity(NewCapacity: Integer);
begin
if (NewCapacity < FCount) or (NewCapacity > MaxListSize) then
Error(@SListCapacityError, NewCapacity);
if NewCapacity <> FCapacity then
begin
ReallocMem(FList, NewCapacity * SizeOf(Pointer));
FCapacity := NewCapacity;
end;
end;
Delphi syntax:
const MaxInt = High(Integer);
C++ syntax:
#define MaxInt (int)(2147483647)
Отсюда имеем
TString(TList).max = (MaxListSize = Maxint div 16)*Максимальная длина строки;
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2009.06.21;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.007 c