Member
Статус: Не в сети Регистрация: 09.12.2005 Откуда: Москва
помогите пожайлуйса, нужно выполнить следующее задание:
Составить прогу в borland delphi, по нажатию на кнопку, выводящую текст и последующие результаты:
-исходную символьную строку записать задом наперед, удалив из неё все пробелы.
-в новой строке гласные буквы заменить на соответвующие прописные, а каждые пять символов разделить пробелами.
_________________ CPU: Core i7 4770k (3.5Ghz@4.3Ghz, vCore 1.2)+Archon SB-E X2 Mobo: ASUS Z87 Pro (1205) Mem: 2x Corsair 1866Mhz Video: MSI N660Ti PE 2GD5@1070/7000
procedure TForm1.Button1Click(Sender: TObject); var i: integer; begin if Memo1.Text='' then exit; Memo2.Clear; for i:=Length(Memo1.Text)-1 downto 0 do if Memo1.Text[i]<>' ' then Memo2.Text:=Memo2.Text+Memo1.Text[i]; end;
2.
Код:
procedure TForm1.Button2Click(Sender: TObject); const gl='аеёиоуыьэюя'; var i,j: integer; begin if Memo2.Text='' then exit; Memo3.Clear; j:=-1; for i:=0 to Length(Memo2.Text)-1 do begin if pos(lowercase(Memo2.Text[i]),gl)<>0 then Memo3.Text:=Memo3.Text+Memo2.Text[i] else Memo3.Text:=Memo3.Text+uppercase(Memo2.Text[i]); inc(j); if j>=5 then begin Memo3.Text:=Memo3.Text+' '; j:=0; end; end; end;
Member
Статус: Не в сети Регистрация: 08.12.2005 Откуда: Smolensk
Micher писал(а):
жалуется на memo
Ты хоть memo - создал ?
Mike3000
Код:
for i:=Length(Memo1.Text)-1 downto 0 do
Зачем тут (-1) - он же не нужен ...
_________________ Вам может показаться, что я повторяюсь, но я буду распоряжаться вашими жизнями, как мне вздумается. Постарайтесь этого не забывать...
|Клан Дедов|
Member
Статус: Не в сети Регистрация: 09.12.2005 Откуда: Москва
Rev@n , упс, я его переименовал Добавлено спустя 14 минут, 56 секунд Mike3000 , что то тут не так, вотнапример слово Приветсвие и вот в нём надо произвести :
-исходную символьную строку записать задом наперед, удалив из неё все пробелы.
-в новой строке гласные буквы заменить на соответвующие прописные, а каждые пять символов разделить пробелами.
тоесть 2 кнопки, два окошка...
_________________ CPU: Core i7 4770k (3.5Ghz@4.3Ghz, vCore 1.2)+Archon SB-E X2 Mobo: ASUS Z87 Pro (1205) Mem: 2x Corsair 1866Mhz Video: MSI N660Ti PE 2GD5@1070/7000
Member
Статус: Не в сети Регистрация: 16.04.2006 Откуда: d3d9.dll Фото: 7
Не подскажите как сделать, чтобы форма была полностью прозрачна, а Image, расположенный на ней, не был бы прозрачным? Ставлю свойство AlphaBlend формы в True, а коэффициент AlphaBlendValue в ноль, но вместе с формой становится невидим и Image.
Memo - это компонент типа TMemo, вместо него можешь использовать Edit. Если не хочешь визуальую обработку тогда, вместо MemoX.Text делай переменную типа String. В MemoX.Text ... Text - это свойство объекта Memo, значение его = значению, введенному в этот объект.
Rev@n писал(а):
Зачем тут (-1) - он же не нужен ...
Length - это длина строки, а индекс начинается с 0 и заканчивается Length(...)-1. Напр строка str:='Кака'; Length(str)=4; str[0]='K'; str[1]='а'; str[2]='к'; str[3]='а';
Micher писал(а):
тоесть 2 кнопки, два окошка...
У меня реализовано как 2 кнопки, на событие OnClick присвоена обработка каждого из этих процедур, соответственно И 3 объекта типа TMemo: Memo1, Memo2, Memo3. Это многострочные редакторы... По нажатии 1 кн. - обработка из Memo1 в Memo2; 2 кн. - из Memo2 в Memo3;
Shader 3.0 Могу только на словах рассказать: Пробегаешься по всей видимой поверхности формы, и если текущий пиксел не пренадлежит Image, то устанавливаешь его цветом раб. стола. Код, к сожалению, привести не могу, т.к. писал очень давно и сорцы куда-то делись. Добавлено спустя 1 минуту, 47 секунд
vladest писал(а):
Никто не знает, работает ли Делфи с регулярными выражениями и как?
Что такое "регулярное выражение"? первый раз такой термин слышу
Добавлено спустя 8 минут, 7 секунд Shader 3.0 Если ты пишешь заставку, кот. показывается при запуске, тогда так и скажи. И тогда я смогу помочь!. А если, что-то более экзотическое, тогда скорее всего нет.
Shader 3.0 Работай со свойством Transparent Если: (работаю в Delphi 2007 под Vist'ой)
1) у формы стиль границы установить в bsNone
2) свойство TransparentColorValue установить (например) clFuchsia
3) свойство TransparentColor установить True
4) свойство Color установить аналогично TransparentColorValue
Member
Статус: Не в сети Регистрация: 08.12.2005 Откуда: Smolensk
vladest писал(а):
Регулярные выражения используются для сложного манипулирования строками в PHP/FI, Perl....
Вроде можно, но не знаю как ...
Mike3000 писал(а):
Length - это длина строки
Серьезно ...
Mike3000 писал(а):
заканчивается Length(...)-1
Зачем заканчивать (-1) - ему же не надо удалять последний элемент ...
_________________ Вам может показаться, что я повторяюсь, но я буду распоряжаться вашими жизнями, как мне вздумается. Постарайтесь этого не забывать...
|Клан Дедов|
Зачем заканчивать (-1) - ему же не надо удалять последний элемент ...
Если разговор идет об этом участке кода
Код:
for i:=Length(Memo1.Text)-1 downto 0 do if Memo1.Text[i]<>' ' then Memo2.Text:=Memo2.Text+Memo1.Text[i];
, то 1. Никакого удаления здесь нет 2. если убрать (-1), то получится
Код:
for i:=Length(Memo1.Text) downto 0 do if Memo1.Text[i]<>' ' then Memo2.Text:=Memo2.Text+Memo1.Text[i];
значит при входе в цикл, первое обращение произойдет к элементу Memo1.Text[Length(Memo1.Text)] , а это выход за границы!
Если бы речь шла о классических переменных типа String, то i варьировалось бы от Length(tmpstr) до 1
Member
Статус: Не в сети Регистрация: 08.12.2005 Откуда: Smolensk
Mike3000 Лааадно, забей свой код в Delphi - и проверь правильность решения задачи ...
_________________ Вам может показаться, что я повторяюсь, но я буду распоряжаться вашими жизнями, как мне вздумается. Постарайтесь этого не забывать...
|Клан Дедов|
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения