Консультация № 168361
27.05.2009, 01:09
0.00 руб.
0 21 2
Заменить каждую заданную букву в предложении строчной буквой.

Обсуждение

давно
Студент
15716
139
27.05.2009, 02:30
общий
это ответ
Здравствуйте, ludmila000!

Если я вас правельно понял, можно сделать все вот так:
Вводим предложение. Например Mama Myla RaMu
Вводим буквы (строчными) которые хотим заменить mr
Получаем ответ ввиде mama myla ramu

Приложение:
uses
SysUtils;

var
Str : string;
Rep : string;
i : integer;
begin
Writeln('Enter Text');
ReadLn(Str);
Writeln('ReplaceChars');
Readln(Rep);
for i := 1 to Length(Rep) do
Str := StringReplace(Str, AnsiUpperCase(Rep[i]), Rep[i], [rfReplaceAll]);
Writeln(Str);
Readln;
end.
Неизвестный
27.05.2009, 02:46
общий
это ответ
Здравствуйте, ludmila000.
Через функцию: AnsiLowerCase(const S:string): string
Неизвестный
27.05.2009, 11:58
общий
а как выглядит весь код программы и какие кнопки и поля делать на форме?



давно
Студент
15716
139
27.05.2009, 12:14
общий
Мой пример это консольное приложение
Неизвестный
27.05.2009, 12:38
общий
а если в другом виде? То как изменится код?
давно
Студент
15716
139
27.05.2009, 13:03
общий
Вместо WriteLn Label1.Caption - например
Вместо ReadLN Edit1.Text - например
Соотвественно заменить переменные, остальное так же
Неизвестный
27.05.2009, 13:44
общий
А где ошибка?

begin
Label1.Caption('Enter text');
Edit1.Text(i);
Label1.Caption('ReplaceChars');
Edit1.Text(s);
for z:=1 to Length(s) do
i:=StringReplace(i, AnsiUpperCase(s[z]), s[z], [rReplaceAll]);
label1.Caption(i);
end
давно
Студент
15716
139
27.05.2009, 14:20
общий
begin
Label1.Caption := 'Enter text';
Edit1.Text := Str;
Label2.Caption := 'ReplaceChars';
Edit2.Text := Rep;
for i:=1 to Length(Rep) do
Str := StringReplace(Str, AnsiUpperCase(Rep[i]), Rep[i], [rReplaceAll]);
label3.Caption := Str;
end
Неизвестный
27.05.2009, 14:43
общий
Ошибка в строке

Str := StringReplace(Str, AnsiUpperCase(Rep[i]), Rep[i]), [rfReplaceAll]);
Неизвестный
27.05.2009, 15:13
общий
Весь код:


unit Unit1;

interface

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

type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Button1: TButton;
Label2: TLabel;
Edit2: TEdit;
Label3: TLabel;
procedure Button1Click(Sender: TObject);

private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
Str : string;
Rep : string;
i : integer;
begin
Label1.Caption := 'Enter text';
Edit1.Text := Str;
Label2.Caption := 'ReplaceChars';
Edit2.Text := Rep;
for i:=1 to Length(Rep) do
Str := StringReplace(Str, AnsiUpperCase(Rep[i]), Rep[i]), [rfReplaceAll]);
label3.Caption := Str;
end;
end.
давно
Студент
15716
139
27.05.2009, 15:25
общий
Какая ошибка?
Неизвестный
27.05.2009, 15:27
общий
выдает ошибку в строке

Str := StringReplace(Str, AnsiUpperCase(Rep[i]), Rep[i]), [rfReplaceAll]);

[Error] Unit1.pas(42): Not enough actual parameters
Неизвестный
27.05.2009, 15:28
общий
Str := StringReplace(Str, AnsiUpperCase(Rep[i]), Rep[i]), [rfReplaceAll]);
давно
Студент
15716
139
27.05.2009, 15:31
общий
Лишняя скобка
Неизвестный
27.05.2009, 15:35
общий
ошибка не выскакивает, но программа не выполняет действия
давно
Студент
15716
139
27.05.2009, 15:47
общий
Какие данные вы вводите?
в Label3 должно появиться
Неизвестный
27.05.2009, 15:55
общий
В edit1 ввожу например Mama Myla RaMu
в edit2 mr
давно
Студент
15716
139
27.05.2009, 16:00
общий
Тогда все должно работать, и в Label3 должно появиться mama myla ramu
Неизвестный
27.05.2009, 16:02
общий
все исчезает. даже Mama Myla RaMu и mr
давно
Студент
15716
139
27.05.2009, 16:14
общий
ступил, незаметил :)
Edit2.Text := Rep;
надо
Rep := Edit2.Text;

Edit1.Text := Str;
надо
Str := Edit1.Text;
Неизвестный
27.05.2009, 16:18
общий
Все работает !!!!!!
СПС
Форма ответа