Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Делфи _ строки

Автор: MaximumGame 5.05.2008 21:46

Помогите разобраться:
Создать приложение, предлагающее пользователю ввести строку текста, затем подсчитывает число подстрок в строке и в начало каждой подстроки в строке добавляет ее порядковый номер в круглых скобках(подстроки определяются пробелом). Заменить все пробелы на "_", подсчитать количество замен.

Добавлено через 3 мин.

 unit Unit1;

interface

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

type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
[ { Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
const
st1='(1)';
var
bufst,st,stn:string;
i,k,m:integer;
begin
k:=1;
stn:='()';
st:=edit1.text;
insert(st1,st,0);
for i:=1 to length(st) do
begin
if st[i]=' ' then inc(k);
if st[i]=' ' then st[i]:='_';
str(k,bufst);
insert(bufst,stn,2);
if st[i]='_' then insert(stn,st,i+1);
m:=k-1; {замен}
label2.caption:=inttostr(k);
label3.Caption:=st;
label4.caption:=inttostr(m);
end; end;
end.



Добавлено через 2 мин.
не хочет правильно работать. В чем я не прав?

Автор: klem4 5.05.2008 23:35

на сколько я понял, требуется вот это:

repeat
p := pos(' ', s);

if p > 0 then begin
inc(count);
delete(s, p, 1);
insert('_(' + IntToStr(count) + ')', s, p);
end;

until p = 0;

Автор: MaximumGame 13.05.2008 19:27

спасибо