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

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

Massiv[ALL]:=99; [D6, WinXP]


Rentgen ©   (2005-06-02 13:18:00) 

Всем привет.
Мне нужно каждому элементу массива
присвоить одно значение.
Есть ли в массивах подобная комманда?

{ - Так конечно можно, но...
for n:=0 to 255 do Massiv[n]:=99;
}

Нет ли чего-то специального типа:
Massiv[ALL]:=99;
?
Спасибо.


TUser   (2005-06-02 15:42:00) [1]

Это если массив состоит из элементов, которые занимают 1 байт.


Erik1   (2005-06-02 15:20:00) [2]

FillChar(Massiv[0], SizeOf(Massiv[0])*Length(Massiv), 99);
Если Massiv состоит из простых типов.


TUser   (2005-06-02 14:23:00) [3]

Ну не обязательно длинного. Понадобилось мне как-то из строки text999 уметь делать text1000 - вот и писал.


Alx2   (2005-06-02 14:18:00) [4]

TUser ©   (02.06.05 14:03) [9]
То, что оффтопик - понятно.

А в оффтопике - это увеличение длинного числа на единицу?


TUser   (2005-06-02 14:03:00) [5]

> А что это?

Это оффтопик. Читай [7].


Alx2   (2005-06-02 13:59:00) [6]

TUser ©   (02.06.05 13:53) [6]
А что это?


TUser   (2005-06-02 13:55:00) [7]

Извините, не то запостил
{$ifdef fpc}
{$mode delphi}
{$endif}
unit uSetInteger;

interface

procedure SetInteger(P: pointer; L: integer; V: integer);

implementation
uses Windows;

type
 PInt = ^integer;

procedure SetInteger(P: pointer; L: integer; V: integer);
var done: integer;
   i: integer;
begin
 done:=0;
 while L > 0 do
   {INV: done сделано, L осталось}
   if done = 0 then begin
     PInt(P)^:=V;
     done:=1;
     dec (L);
     end else begin
     if L < done then
       i:=L
       else i:=done;
     CopyMemory(pointer(integer(P)+sizeof(integer)*done),P,i*sizeof(integer));
     L:=L-i;
     done:=i*2;
     end;
end;

end.


TUser   (2005-06-02 13:53:00) [8]

Для более чем одного байта вот недавно написал
{$ifdef fpc}
{$mode delphi}
{$endif}
unit uIncStr;

interface

function IncStr (S: string): string;

implementation

function IncStr (S: string): string;
var C: char;
begin
 C:=S[length(S)];
 if C in ['0'..'9'] then begin
   C:=succ(C);
   if C in ['0'..'9'] then
     S[length(S)]:=C
     else
     S:=IncStr(copy(S,1,length(S)-1))+'0';
   end else S:=S+'1';
 result:=S;
end;

end.


Digitman   (2005-06-02 13:44:00) [9]


> Нет ли чего-то специального типа:
> Massiv[ALL]:=99;


мне любопытно было бы знать, в каких иных языковых средах существуют подобные "специальные типы"..


Amoeba   (2005-06-02 13:32:00) [10]

Нет и не было такого!


Jeer   (2005-06-02 13:28:00) [11]

Fillmemory


-=S.S=-   (2005-06-02 13:28:00) [12]

Если массив типа Byte или Char
то можно использовать FillChar
Иначе не знаю.


Думкин   (2005-06-02 13:22:00) [13]

FillChar для байтов


Наверх

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