Форум: "Основная";
Текущий архив: 2002.10.07;
Скачать: [xml.tar.bz2];
ВнизObject Pascal and Delphi Найти похожие ветки
← →
turusov (2002-09-25 15:24) [0]Есть множество:
m = ["-","+","0".."9"] или
m = ["-","+","1","0","2".."9"]
Watch List выводит:
m: ["-","+","0".."9"]
Как получить значение в string как в Watch List
← →
qube (2002-09-25 15:40) [1]Представление в памяти множеств
["-","+","1","0","2".."9"] и ["-","+","0".."9"] одинаково, поэтому надо просто написать процедуру вывода элементов множества.
← →
Kaban (2002-09-25 15:49) [2]qube © (25.09.02 15:40)
сильно
человек, по-видимому, и интересуется как это сделать
← →
MBo (2002-09-25 16:05) [3]извратик ;)
procedure TForm1.Button1Click(Sender: TObject);
var
s: string;
m: set of char;
c: char;
flag: Boolean;
first: byte;
begin
s := "[";
flag := false;
m := ["-", "+", "1", "0", "2".."9"];
for c := #0 to #255 do
begin
if c in m then
begin
if not flag then
s := s + ",""" + c + """";
flag := true;
end
else
begin
if flag then
if (Ord(c) - first) > 2 then
s := s + "..""" + Pred(c) + """";
flag := false;
first := Ord(c);
end;
end;
if (Length(s) >= 2) and (Pos(",", s) = 2) then
Delete(s, 2, 1);
s := s + "]";
caption := s;
end;
← →
Старый паскалист (2002-09-25 16:09) [4]См исходники ф-и GetSetProp (TypInfo.pas).
Если её немного изменить, будет то, что тебе надо.
← →
qube (2002-09-25 16:10) [5]По просьбам трудящихся:
type
TCharSet = set of char;
procedure PrintSet(s: TCharSet);
var
c: char;
state: (start, wait_first, wait_next, wait_last);
begin
state := start;
write("[");
for c := Chr(0) to Chr(255) do begin
case state of
start:
if c in s then begin
state := wait_next;
write(c);
end;
wait_first:
if c in s then begin
state := wait_next;
write(", ",c);
end;
wait_next:
if c in s then
state := wait_last
else
state := wait_first;
wait_last:
if not (c in s) then begin
state := wait_first;
write("..",chr(ord(c)-1));
end;
end;
end;
writeln("]");
end;
← →
qube (2002-09-25 16:13) [6]Ого, сколько насочиняли, пока я трудился!
Да, одним извратом больше :).
← →
turusov (2002-09-26 08:32) [7]Ребята не понимайте вопрос, буквально. Множество может быть любого типа. А насчет TypInfo, подскажите по конкретнее, на что обратить внимание.
← →
turusov (2002-09-26 08:37) [8]Благодарю Старый паскалист!!!
← →
MBo (2002-09-26 08:39) [9]Сказали же, на GetSetProp.
В моем и qube вариантах добавлен вывод "2".."9" именно в таком виде, без перечисления каждого элемента отдельно.
← →
Anatoly Podgoretsky (2002-09-26 09:10) [10]MBo © (26.09.02 08:39)
Алгоритм можно упростить, если сделать вначале еде один доепольнилетьный обратный цикл для поиска максимального элемента во множестве.
← →
Памяти (2002-09-27 03:33) [11]Купа-Купыча Гениального (см. "республика ШКИД").
До сих пор, Анатолий, критерием для меня служила надпись в ст.газете Купа-Купыча - "Юлыстрация к трогедии Борис Гадунв"!
Но Вы превзошли сей рекорд всего лишь в одном слове - "доепольнилетьный"!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.10.07;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.009 c