• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Строки в Delphi

  • Автор темы Kinect
  • Дата начала
K

Kinect

Парни помогите с лабой ;)

Задание такое:
Дана строка, состоящая из групп нулей и единиц. Каждая группа отделяется от другой одним или несколькими пробелами. Найти и вывести на экран группы с четным количеством символов.

Короче набодяжил форму и программу, только вот не работает так как нужно ;)

Код:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, XPMan;

type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
Button1: TButton;
XPManifest1: TXPManifest;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}


Function Krz(St: string): Word; //Подсчет количества различных символов
Var a:set of char;
m, i: Word;
begin
m:=0;
a:=[];
for i:=1 to Length(St) do
if not(St[i] in a) then
begin
Include(a,St[i]);
Inc(m);
end;
Result:=m;
end;

Function FWord(St: String): String;
Var
n, i, nst: Integer;
sl, srez: String;
begin
Result:='';
srez:='';
n:=Length(st);
if n=0 then exit;
st:=st+'';
n:=n+1;
sl:='';
for i:=1 to N do
if st[i]<>'' then sl:=sl+st[i]
else
if sl<>'' then
begin
srez:=srez+''+sl+'_'+IntToStr(Krz(sl));
sl:='';
end;
Result:=srez;
end; //Конец функции FWrd

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then Edit2.Text:=Fword(Edit1.Text);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Close();
end;

end.

Помогите пожалуйста! Буду очень благодарен! :)
 
D

Dock1100

Код:
Function FWord(St: String): String;
Var
i,l,r: Integer;
s,s2:string;
begin
s2:='';
s:='';
l:=1;
r:=1;
for i:=1 to Length(st) do
if (st[i]=' ')or(i=Length(st)) then
begin
r:=i;
if (i=Length(st))and(st[i]<>' ') then r:=r+1;
s2:=copy(st,l,r-l);
if length(s2) mod 2 = 0 then
s:=s+' '+s2;
l:=i+1;
end;
FWord:=s;
end;
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!