![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
List
Klopan © (2004-10-06 16:45:00)приведите пожалуйста код класса TList, где каждый item - TRange.
type
Trange = record
s1: string;
s2: string;
zax: integer;
end;
// т.е список типа trange.
Спасиба.
VMcL (2004-10-07 12:18:00) [1]>> Erik1 © (07.10.04 11:47) [29]
> К тому же ShortString и String[x] это разные вещи.
Отличаеются только размером (SizeOf) при условии, что x <> 255.
Erik1 (2004-10-07 11:47:00) [2]Ну равели тему. А вобшето посоветовал это автору вопроса, чтобы прерация Move для него кончилась без последствий. И новых вопросов в форум невозникло. К тому же ShortString и String[x] это разные вещи.
Суслик (2004-10-07 09:18:00) [3]Какой же разговор идет из-за моего в общем-то логичного утверждения, что есть моменты, когда короткие строки лучше? :))) Вот panov все верно понял :))
Неужто сложно придумать? НАпример московский телефон - 7 знаков. Только давайте не будем, говорить, что скоров Москве сменится номерная система и мой пример плохой. Все же это пример.
ЗЫ. Мое имхо: нужно использовать то, что нужно в данной ситуации. Область применимости длинный строк больше (о чем я и сказал). Но нельзя не признать, что и у коротких строк она есть (правда, я ими не пользуюсь - задачи такие :)).
Defunct (2004-10-07 02:15:00) [4]> А как влияет мой опыт или отсутствие оного в написании таких приложений применительно с обсуждаемому вопросу
Вы бы высказались более мягко.
не так:
"Это конечно понятно, но я не очень себе представляю, где нужны короткие строки -)"
а хотя бы так:
в данном конкретном случае лучше не использовать короткие строки, которые полностью хранятся в записи. Лучше использовать большие строки, т.к. большие строки будут храниться в записи в виде указателей и соответственно запись будет занимать меньше места.
> они не НУЖНЫ. Их можно использовать, а можно и не использовать.
Это тоже слишком категоричное утверждение. Есть масса задач, которые решаются с помощью маленьких строк гораздо проще чем с помощью больших, а есть задачи в которых большие строки вообще неприменимы (DLL без ShareMem, сетевые протоколы с именами каналов и т.п.)
jack128 (2004-10-07 01:16:00) [5]Defunct © (07.10.04 0:41) [22]
Чтобы была четкая однозначность позиции следующей записи
Defunct © (07.10.04 0:40) [21]
или никогда не писали мультисерверные приложения
нет не писал. А как влияет мой опыт или отсутствие оного в написании таких приложений применительно с обсуждаемому вопросу??
Defunct © (07.10.04 1:12) [25]
Мои постинги просто показывают практическое применение коротких строк, и отвечают на это:
> Это конечно понятно, но я не очень себе представляю, где нужны короткие строки -)они не НУЖНЫ. Их можно использовать, а можно и не использовать.
Defunct (2004-10-07 01:12:00) [6]Palladin © (07.10.04 00:51) [24]
В контексте сабжа я согласен, что нужно использовать String.
Мои постинги просто показывают практическое применение коротких строк, и отвечают на это:
> Это конечно понятно, но я не очень себе представляю, где нужны короткие строки -)
Palladin (2004-10-07 00:51:00) [7]Помоему разговор шел не о заголовках, и не о описании структуры. Конечно, если структуры передаются достаточно редко и их, по сравнению с основной массой данных, совсем не много, короткие строки хорошее решение, но речь идет о массиве записей, это немножко другая тема.
Defunct (2004-10-07 00:45:00) [8]> With PCProtocol(Frame) Do я правельно понял??
Ну можно и так, но вообще-то предполагалось:
With TCProtocol(Frame ^) Do
Defunct (2004-10-07 00:41:00) [9]> пересылка лишних 7 байт. Нафиг? (если это не особенности протокола обмена, конечно)
Чтобы была четкая однозначность позиции следующей записи
Defunct (2004-10-07 00:40:00) [10][19] относилось к бесполезному перерасходу трафика.
> и перерасход дискового пространства соответственно
А это демострирует и неоправданный перерасход дискового пространства:
THex FileHeader= packed Record
ATitle : String[27];
ACreationDate : String[20];
AComment : String[50];
AProcInfo : String[10];
...
...
ItemsCount : Cardinal;
CheckSum : Cardinal;
End;
Короче вывод, вы или никогда не писали мультисерверные приложения или похоже не особо думали над заголовками файлов или и то и другое вместе.
jack128 (2004-10-07 00:36:00) [11]Defunct © (07.10.04 0:28) [19]
With PCProtocol(Frame) Doя правельно понял??
> AChannel := 'Broadcast';
пересылка лишних 7 байт. Нафиг? (если это не особенности протокола обмена, конечно)
Defunct (2004-10-07 00:28:00) [12]jack128 © (06.10.04 22:16) [17]
Бред, вот пожалуйста тебе пример применения коротких строк, раз уж фантазии не хватает:
TCProtocol = packed record
APacketType : String[4];
AChannel : String[16];
AFrameID : Cardinal;
AFrameSize : Word;
..
..
End;
GetMem(Frame, SizeOf(TCProtocol) + DataLength);
With TCProtocol(Frame) Do
Begin
APacketType := 'halo';
AChannel := 'Broadcast';
...
...
CopyMem( FrameData, Data, DataLength );
End;
UDPServer.SendData( Frame, ... );
FreeMem(Frame, DataLength);
Palladin (2004-10-06 22:23:00) [13]Использовать короткие строки это
1 ограничение на размер хранимой строки
2 излишняя трата памяти
это оправданно лишь в том случае если все строки одной длинны...
jack128 (2004-10-06 22:16:00) [14]Defunct © (06.10.04 20:58) [16]
бесполезное увеличение траффика и перерасход дискового пространства соответственно(не говоря уж о не эффективном использовании памяти)
Defunct (2004-10-06 20:58:00) [15]> Это конечно понятно, но я не очень себе представляю, где нужны короткие строки -)
Например, когда требуется запись пересылать по сети или сохранять в файл.
pasha_golub (2004-10-06 20:56:00) [16]jack128 © (06.10.04 20:25) [14]
ФИО - короткая строка. :)
jack128 (2004-10-06 20:25:00) [17]panov © (06.10.04 20:18) [13]
:-) Это конечно понятно, но я не очень себе представляю, где нужны короткие строки -)
panov (2004-10-06 20:18:00) [18]>jack128 © (06.10.04 20:16) [12]
А когда первое лудше??
Когда нужны короткие строки-)
jack128 (2004-10-06 20:16:00) [19]Суслик © (06.10.04 17:09) [8]
КОгда лучше, когда хуже. Часто второе...
А когда первое лудше???
begin...end (2004-10-06 19:58:00) [20]<OFFTOP>
> Klopan
Слушай, у тебя правда 31 декабря День Рождения? ;-)
</OFFTOP>