![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 24.01.2008
Сообщений: 12
|
![]()
Сколько не искал, не нашёл, проблема вот в чём:
Код:
Если нельзя получить средствами делфи, можно ли как-нибудь перебрать все поля записи в цикле? ибо параметров может быть много, и функцию статичную писать неудобно ![]()
Плохо, когда не знаешь, да ещё и забудешь.
|
![]() |
![]() |
![]() |
#2 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
![]()
Кто запретил использовать Length() ?
TTest, размер записи = SizeOf(TTest); Узнать параметр Length(param1) + Length(param2) |
![]() |
![]() |
![]() |
#3 | |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
![]() Цитата:
![]() |
|
![]() |
![]() |
![]() |
#4 | |
Пользователь
Регистрация: 24.01.2008
Сообщений: 12
|
![]() Цитата:
Но придётся ведь все параметры в ручную обрабатывать, о чём я писал выше, а их может быть с десяток... если б можно было сделать перебор в цикле всех полей записи... типа "foreach (a in Ttest) size := size + length(a)*sizeof(char);" - типа подобное что-нибудь?!!
Плохо, когда не знаешь, да ещё и забудешь.
|
|
![]() |
![]() |
![]() |
#5 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
![]()
Мессир, Вы чего делаете-то, никак не пойму? размер строки определяете или размер структуры?
|
![]() |
![]() |
![]() |
#6 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
![]()
sizeof(char) - ничего подобного сроду не видел ))) какой смысл умножать на 1 ? Или я математику призабыл... Поставьте точный вопрос ! И зачем всякие циклы если структуру всеравно не поменять во время выполнения программы. Опишите функцию которая возвращает размер структуры и юзайте ее, в чем проблема, уточните, что вы делаете со структурой ?
Последний раз редактировалось BOBAH13; 25.01.2008 в 00:58. |
![]() |
![]() |
![]() |
#7 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
![]() |
![]() |
![]() |
![]() |
#8 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
![]()
Извините, а не припомню чтобы в дельфи ( я использую 7ю версию ) был такой тип TChar ?!
![]() |
![]() |
![]() |
![]() |
#9 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
![]()
Потому, что у него размер short - два байта
![]() |
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 24.01.2008
Сообщений: 12
|
![]()
Эх, нужно определить размер того, что хранится в структуре. Есть запись, в переменных param1 & param2 хранятся значения, переменных этих может быть 10, может быть 20, и надо определить размер в байтах всей записи! Не отдельно каждого поля записи! И не размер указателей на widestring, а именно того, что хранится в записи для последующей блочной записи в файловый поток.
Вот я и хочу описать функцию, которая высчитывает размер всех данных, хранящихся в структуре, но я не хочу писать типа: inc(size, lstrlenW(param1)); inc(size, lstrlenW(param2)); inc(size, lstrlenW(param3)); это было бы неплохо как-то автоматизировать... Ибо таких записей может быть несколько, и для каждой писать такую функцию, конечно, не составит огромного труда, но как-то некрасиво получается...
Плохо, когда не знаешь, да ещё и забудешь.
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
определить тактовою частоту процессора и узнать название активной видеокарты и объём памяти | SalasAndriy | C++ Builder | 7 | 14.04.2012 16:17 |
Найти объём куба и площадь его боковой поверхности BASIC | Ветренная | Помощь студентам | 23 | 02.06.2008 13:15 |
record/file | potion | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 10.05.2008 20:15 |
ОБъём скачанного из интернета | Kostia | Работа с сетью в Delphi | 2 | 23.11.2007 00:25 |
Направьте на путь истинный! | [FlekS] | Помощь студентам | 3 | 20.02.2007 11:51 |