Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.06.2010, 03:56   #1
kat297
Пользователь
 
Регистрация: 01.06.2010
Сообщений: 18
Вопрос Что тут не так? Ругается почему-то....

Цитата:
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
const
Delims = [' ', '.', ',', ':', ';', '!', '?', '-', Char(9), Char(10), Char(13)];
var
StrSrc, StrRes : String;
i, j, k : Integer;
Cnt : Integer;
Pos1, Pos2 : Integer;
begin
StrSrc := Edit1.Text;
SetLength(StrRes, Length(StrSrc));
Pos1 := 0;
Pos2 := 0;
Cnt := 0;
for i := 1 to Length(StrSrc) do begin
if StrSrc[i] in Delims then begin
StrRes[i] := StrSrc[i];
Continue;
end;

if ( Pos1 = 0 ) then Pos1 := i;
if i = Length(StrSrc) then
Pos2 := i
else if StrSrc[i + 1] in Delims then
Pos2 := i ;

if Pos2 > 0 then begin
Inc(Cnt);
//Если слово на чётной позиции, удаляем его.
if Cnt mod 2 = 0 then
begin
for j := Pos1 to Pos2 do delete (StrSrc[j] ,pos1, j)
//Если слово на нечётной позиции, переписываем его по буквам в обратном порядке.
end
else

begin
k := Pos1;
for j := Pos2 downto Pos1 do begin
StrRes[k] := StrSrc[j];
Inc(k);
end;
end;
Pos1 := 0;
Pos2 := 0;
end;
end;
Edit2.Text := StrRes;
end;
end.
Вот где красным помечено... А условие:
В заданном предложении удалите каждое второе слово, а оставшиеся слова переверните.
kat297 вне форума Ответить с цитированием
Старый 03.06.2010, 04:24   #2
Volt
Форумчанин
 
Аватар для Volt
 
Регистрация: 07.12.2008
Сообщений: 244
По умолчанию

Потому что у процедуры delete(S:String,Index:Integer, Count:Integer); первый параметр string а выему char зачемто указываете. Процедура Delete удаляет кол-во символов Count из строки S, начиная с позиции Index. Процедура вырезает символы из строки и после этого сдвигает символы справа на их место.
Код:
Source := '12345678';
  Delete(Source, 3, 4);    // Удаление 3-го, 4-го, 5-го и 6-го символов
|̲̅̅●̲̅̅|̲̅̅=̲̅̅|̲̅̅●̲̅̅]

Последний раз редактировалось Volt; 03.06.2010 в 04:28.
Volt вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
скажите,что тут не так <<Katushka>> Общие вопросы C/C++ 17 14.05.2010 23:33
Вылазает ошибка. Почему что не так? xakkkkker Паскаль, Turbo Pascal, PascalABC.NET 7 18.04.2010 10:54
Обьясните почему тут ошибка? Skorpion555 Помощь студентам 11 10.03.2010 08:28
Borland C++Builder почему он не складывает коды символов тут? BattleMage C++ Builder 1 29.09.2007 08:56
Подскажите что тут не так!? dcl Общие вопросы Delphi 5 28.03.2007 08:15