Pamięć - ListBox, TStrings i String

0

Mam 3 pytanka, pierwsze to, czy klasa TStrings ma ograniczenie co do wielkości, np może pomieścić tylko 50 KB, albo 1000 linijek, drugie pytanie jakie ograniczenie pojemnościowe ma komponent TListBox, czy to jest to samo ograniczenie co przy TStrings i ostatnie pytanie jaką maksymalną długość ma string i czy string o długości jednego bajta zajmuje mniej w pamięci niż string o długości dziesięciu bajtów- chodzi mi o to czy długość tablicy jest z góry zarezerwowana i aby mniej zajmowało w pamięci trzeba korzystać z SetLength czy tablica jest automatycznie rozszerzana/skrócana przy przypisywaniu do stringa jakiejś wartości. Z góry dzięki za odpowiedź :] , wiem że te pytania mogą być baardzo banalne ale jest mi to potrzebne a nie mogłem tego nigdzie znaleźć :(

0

Pamięć do łańcuchów jest dynamicznie rezerwowana - więc zależy od długości. Co do max. długości - chyba 4 GB ale nie jestem pewien na 100%...

// możesz być pewien - ŁF

0

a jaką pojemność ma ListBox ?

// 4 GB [sciana] - ŁF

nie, no nie 4 GB, bo próbowałem wczytać plik 2 MB i mi go sporo ucięło

0

32 kilo

0

Zdaje się, że w D5 i niższych jest ograniczenie co do ilości linijek, 32000 linijek można tam upchać.

0

Jakieś ograniczenie na pewno istnieje, np. ilość pamięci. Jeśli jest to duże (jak np. to 4GB dla łańcuchów AnsiString), to można to ograniczenie (w większości wypadków) pominąć i przyjąć, że jest to ilość nieograniczona :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1