Строки в Delphi

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

Kinect

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

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

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

Код:
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.
Помогите пожалуйста! Буду очень благодарен! :)
 

XTen

Active member
18.09.2010
26
0
#2
Готов помочь за денюжку! Написать с нуля!
ICQ: 410691984
 
09.11.2009
665
1
#3
Код:
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;
 

acorn

PHP Developer
29.08.2004
585
3
#5
XTen
интересно, и во сколько ты оцениваешь эту мега-задачку? :)