Главная страница
    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.48 MB
Время: 0.011 c
2-1157737568
redlord
2006-09-08 21:46
2006.10.01
точки принадлежащие прямой


2-1158128669
sl
2006-09-13 10:24
2006.10.01
Движение по TAB в обратную сторону


1-1156164222
amber55
2006-08-21 16:43
2006.10.01
Как получить сообщение о доставке через почтовый клиент outlook?


2-1158137710
BoBer
2006-09-13 12:55
2006.10.01
Возведеие в степень


2-1158043349
Priest
2006-09-12 10:42
2006.10.01
Как прорисовать массив на канве





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