в программе нужно показать значения, которые находятся между первым и вторым двоеточием.
у меня есть два типа решения. в первом он удаляет последний нужный знак, а во втором какая то странная зависимость неправильная
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.