Показать сообщение отдельно
  #1  
Старый 27.03.2009, 17:58
SmaZz SmaZz вне форума
Прохожий
 
Регистрация: 27.03.2009
Сообщения: 10
Репутация: 11
По умолчанию Помогите плиз программу поправить

в программе нужно показать значения, которые находятся между первым и вторым двоеточием.
у меня есть два типа решения. в первом он удаляет последний нужный знак, а во втором какая то странная зависимость неправильная
1тип решения

Код:
procedure TForm1.Button1Click(Sender: TObject);
var s,d:string; i,n,p:integer;
begin
s:=edit1.Text;
n:=0;
for i:=1 to length (s)do
begin
  if s[i]=':' then
  n:=n+1;
end;
if n<=1 then
edit2.Text:='Введите значения'
else
begin
repeat
p:=0;
n:=0;
for i:=1 to length (s)do
begin
  if s[i]=':' then
  n:=n+1;
  p:=i;
  End;
  delete(s,p,99);
until n=1;
for i:=1 to p do
  if s[i]=':' then
  d:=copy(s,i+1,p);
  edit2.Text:=(d);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
form1.Close
end;

end.

2 тип решения
Код:
procedure TForm1.Button1Click(Sender: TObject);
var s,d:string; i,n,p,h:integer; g:array[1..20]of integer;
begin
s:=edit1.Text;
n:=0;
h:=1;
for i:=1 to length (s)do
begin
  if s[i]=':' then
  n:=n+1;
end;
if n<=1 then
edit2.Text:='Введите значения'
else
begin
for i:=1 to length (s)do
if s[i]=':' then
for p:=h to h+1 do
begin
g[p]:=i;
h:=h+1;
end;
d:=copy(s,g[1]+1,g[2]-g[1]);
edit2.Text:=d;
end;
end;
end.
Ответить с цитированием