Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

List


Страницы:   1 2

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>


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо