Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.10.01;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.06 c
1-1156158639
webpauk
2006-08-21 15:10
2006.10.01
Градиентная линия


1-1155723489
Aleksandr.
2006-08-16 14:18
2006.10.01
Как отключать нажатие кнопок после выбора системной кнопки Help?


2-1158216030
абабаба
2006-09-14 10:40
2006.10.01
скопировать строку в массив


2-1157951542
teddy
2006-09-11 09:12
2006.10.01
Help me


2-1157802111
Mr tray
2006-09-09 15:41
2006.10.01
хелп по стандартным командам коиандной строки