Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.10.01;
Скачать: [xml.tar.bz2];

Вниз

присвоить значение некоторым полям записи...   Найти похожие ветки 

 
SergP ©   (2006-09-13 20:26) [0]

Допустим есть некая запись FD
Можно ли как-то присвоить нескольким полям этой записи некоторые значения,
например:


FD.typ:="N";
FD.Len:=10;
FD.dec:=0;


но чтобы это можно было записать одной строкой?


 
RagapuK   (2006-09-13 21:08) [1]

Ты имеешь в виду типа

FD:="N"+10+0;

Нет, так нельзя.

ЗЫ. Вместо + можно ставить любое другое, все равно нельзя

ЗЫЫ но можно функцию

function qwerty (s:string; q,w:integer);
begin
 FD.typ:=s;
 FD.Len:=q;
 FD.dec:=w;
end;


 
SergP ©   (2006-09-13 21:25) [2]

> [1] RagapuK   (13.09.06 21:08)
> Ты имеешь в виду типа
>
> FD:="N"+10+0;
>
> Нет, так нельзя.


Ну это понятно... :)

Но ведь например можно же при описании констант и глобальных переменных сразу присваивать значения записям, типа так:

var
 pThread:packed array[1..3] of packed record
     pnt:TLoadHttp;
     nmenu:TmenuItem;
     str:string;
     end =((pnt:nil;nmenu:nil;str:"eo?nia"),
           (pnt:nil;nmenu:nil;str:"aaeaina"),
           (pnt:nil;nmenu:nil;str:"enoi?ee"));


а меня интересует нельзя ли в программе присвавать значения полям записей каким-нить аналогичным способом?

Ну ф-цию или п-дуру можно написать... Но хотелось бы знать допускает ли синтаксис язка такую возможность?


 
default ©   (2006-09-13 22:35) [3]

SergP ©   (13.09.06 21:25) [2]

> Можно ли как-то присвоить нескольким полям этой записи некоторые
> значения,
> например:
>
>
> FD.typ:="N";
> FD.Len:=10;
> FD.dec:=0;
>
>
> но чтобы это можно было записать одной строкой?

with FD do begin typ:="N"; Len:=10; dec:=0; end;
одна строка;)


> а меня интересует нельзя ли в программе присвавать значения
> полям записей каким-нить аналогичным способом?

нельзя


 
SergP ©   (2006-09-13 22:43) [4]

> with FD do begin typ:="N"; Len:=10; dec:=0; end;
> одна строка;)


:-)

ладно... уговорил...


Хотя, если под строкой понимать то в количестве чего измеряется размер исходников, то я привык считать что в паскале "строка"  - это то что отделяется от другой "строки" точкой с запятой, а не #13#10.


 
guav ©   (2006-09-13 22:52) [5]

> "строка"  - это то что отделяется от другой "строки" точкой
> с запятой

Тогда и    (pnt:nil;nmenu:nil;str:"enoi?ee")); - не одна сторка :-)

Нет, сторка это именно то что разделено #13#10, т.е. напишешь одной сторкой - будет одна строка :-)


 
default ©   (2006-09-13 22:53) [6]

SergP ©   (13.09.06 22:43) [4]
согласен, запись
FD := (typ:"N";Len:10;dec:0); рулила бы поболее


 
default ©   (2006-09-13 22:56) [7]

а может и не рулила бы:)
имена полей смешиваются со значениями:)
если разбивать на строки, то тогда смысла в такой записи нет...


 
Пусик ©   (2006-09-14 00:27) [8]


> SergP ©   (13.09.06 20:26) 


Все зависит от полей в структуре.
В зависимости от структуры либо можно записать одной строкой, либо нельзя.


 
Германн ©   (2006-09-14 00:49) [9]


> Пусик ©   (14.09.06 00:27) [8]
>
>
> > SergP ©   (13.09.06 20:26)
>
>
> Все зависит от полей в структуре.
> В зависимости от структуры либо можно записать одной строкой,
>  либо нельзя.

Не сбивай с толку людей.


> SergP ©   (13.09.06 21:25) [2]
>
...
> Но ведь например можно же при описании констант и глобальных
> переменных сразу присваивать значения записям, типа так:

>
> var
>  pThread:packed array[1..3] of packed record
>      pnt:TLoadHttp;
>      nmenu:TmenuItem;
>      str:string;
>      end =((pnt:nil;nmenu:nil;str:"eo?nia"),
>            (pnt:nil;nmenu:nil;str:"aaeaina"),
>            (pnt:nil;nmenu:nil;str:"enoi?ee"));
>
>
> а меня интересует нельзя ли в программе присвавать значения
> полям записей каким-нить аналогичным способом?

Так ведь в приведённом примере всё "разруливает" компиллятор! А уж он то точно знает "Что, Где, Когда, Кому и Сколько" :-) А вот в рантайме его уже нет, увы :-(


 
SergP ©   (2006-09-14 01:08) [10]

> [8] Пусик ©   (14.09.06 00:27)
>
> > SergP ©   (13.09.06 20:26)
>
>
> Все зависит от полей в структуре.
> В зависимости от структуры либо можно записать одной строкой,
> либо нельзя.


Оба примера в студию!!!


 
Германн ©   (2006-09-14 01:25) [11]


> SergP ©   (14.09.06 01:08) [10]
>
> > [8] Пусик ©   (14.09.06 00:27)
> >
> > > SergP ©   (13.09.06 20:26)
> >
> >
> > Все зависит от полей в структуре.
> > В зависимости от структуры либо можно записать одной строкой,
>
> > либо нельзя.
>
>
> Оба примера в студию!!!
>

Лучше подробней опиши свою задачу! Какая у тебя есть запись. Что ты от неё хочешь?


 
MBo ©   (2006-09-14 06:36) [12]

Ну напиши функцию, подобную функции Point


 
SergP.   (2006-09-14 10:32) [13]

> Лучше подробней опиши свою задачу! Какая у тебя есть запись.
> Что ты от неё хочешь?


Просто хочу чтобы код был нагляднее...
Вот например:

case ... of ...
1 : begin
    FD.typ:="N";
    FD.Len:=10;
    FD.dec:=0;
   end;
2:  begin
    FD.typ:=...;
    FD.Len:=...;
    FD.dec:=...;
   end;
... //и так далее


выглядит слишком длинным...
А код обычно чем меньше занимает места (строк) - тем понятнее.
Если бы можно было одной строкой написать (вернее одной конструкцией), то и begin..end можно было бы выкинуть


 
default ©   (2006-09-14 14:12) [14]


> Все зависит от полей в структуре.
> В зависимости от структуры либо можно записать одной строкой,
>  либо нельзя.

тебе, думаю, намекают на банальный Move
то что ты хочешь в [2] неосуществимо, нету спецсинтаксиса такого


 
guav ©   (2006-09-14 14:27) [15]

если все поля читаются из констант то можно заменить на
case ... of ...
1 : FD:=FD1;
2:  FD:=FD2
  end;

где FD1, FD2 - константы
или даже
FD:=FDArray[X]



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.10.01;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.017 c
1-1155900190
guav
2006-08-18 15:23
2006.10.01
Разрешение и размер изображения TMetafile и Microsoft Word.


8-1141476593
Ал
2006-03-04 15:49
2006.10.01
И снова antialiasing


2-1157773076
toSka
2006-09-09 07:37
2006.10.01
Кнопка с картинкой


15-1151677753
ronyn
2006-06-30 18:29
2006.10.01
где скачать бесплатно саундтрек


2-1157734641
tvvt
2006-09-08 20:57
2006.10.01
TEdit + font size





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