Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
15-1239620213
ZeroDivide
2009-04-13 14:56
2009.06.21
Лицензионные фильмы


2-1241599233
Slow
2009-05-06 12:40
2009.06.21
Закрашивание записей в Gridе по условию


2-1241619626
Maksas
2009-05-06 18:20
2009.06.21
Вопрос по Мемо


2-1240761560
madmech
2009-04-26 19:59
2009.06.21
Помогите разобраться с итоговым столбцом кросс-отчета


2-1241448791
AndrewG
2009-05-04 18:53
2009.06.21
Формат текста MsWord





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский