![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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 для байтов