Topic: Убрать лишнее!

Здравствуйте, может кто подскажет.
Есть номер 677739712
при помощи скрипта
Form1.Edit1.Text:= 'R' + Copy(Form1.Edit5.Text,1,2)+ 'XR'+Copy(Form1.Edit5.Text,3,2)+'OP'+Copy(Form1.Edit5.Text,5,1)+Copy(Form1.Edit5.Text,6,1)+'G'+Copy(Form1.Edit5.Text,7,8);
он приобретает вид
R67XR77OP39G712
Можно-ли сварганить скрипт для обратной процедуры?

надо идти вперёд....

Re: Убрать лишнее!

kovalenko wrote:

Здравствуйте, может кто подскажет.
Есть номер 677739712
при помощи скрипта
Form1.Edit1.Text:= 'R' + Copy(Form1.Edit5.Text,1,2)+ 'XR'+Copy(Form1.Edit5.Text,3,2)+'OP'+Copy(Form1.Edit5.Text,5,1)+Copy(Form1.Edit5.Text,6,1)+'G'+Copy(Form1.Edit5.Text,7,8);
он приобретает вид
R67XR77OP39G712
Можно-ли сварганить скрипт для обратной процедуры?

Или так, как из слова убрать не нужные символы, или указанные перечнем буквы, или их расположение (порядковый номер) в строке.

надо идти вперёд....

3 (edited by kovalenko 2017-10-06 04:10:05)

Re: Убрать лишнее!

Есть такой рабочий вариант, только он удаляет только буквы 'R',а как его прикрутить на удаление нужных символов/букв. Предположим надо удалить: R/G/O/P?

procedure Form1_Button4_OnClick (Sender: string; var Cancel: boolean);

var k:string;
i,j,:integer;
begin
k:=Form1.Edit1.Text;
i:=Length(k);
for i:=1 to i do
begin
j:=pos('R',k);
Delete(k,j,1);
Form1.Edit3.Text:=k;
end;
end;

надо идти вперёд....

Re: Убрать лишнее!

проще всего так

var
   s: string;
begin
   s := 'R67XR77OP39G712';
   s := ReplaceStr(s, 'R', '');
   s := ReplaceStr(s, 'G', '');
   s := ReplaceStr(s, 'O', '');
   s := ReplaceStr(s, 'P', '');

функция ReplaceStr заменяет найденную подстроку в строке, в данном случае заменяет ее на пустоту, т.е. удаляет.

Dmitry.

Re: Убрать лишнее!

DriveSoft wrote:

проще всего так

var
   s: string;
begin
   s := 'R67XR77OP39G712';
   s := ReplaceStr(s, 'R', '');
   s := ReplaceStr(s, 'G', '');
   s := ReplaceStr(s, 'O', '');
   s := ReplaceStr(s, 'P', '');

функция ReplaceStr заменяет найденную подстроку в строке, в данном случае заменяет ее на пустоту, т.е. удаляет.

Спасибо. Для дальнейшего обязательно пригодиться, но пока пошёл другим путём:

Form1.Edit3.Text:= '' + Copy(Form1.Edit4.Text,2,2)+Copy(Form1.Edit4.Text,6,2)+Copy(Form1.Edit4.Text,10,2)+Copy(Form1.Edit4.Text,13,5);

просто скопировал всё, кроме знаков которые стоят в определённых местах слова.
И по вашему примеру, я могу указать не
s := 'R67XR77OP39G712';
а сослаться на поле
s := Form1.Edit4.Text;
я правильно понимаю?

Спасибо!

надо идти вперёд....

Re: Убрать лишнее!

   s := Form1.Edit4.Text;
   s := ReplaceStr(s, 'R', '');
   s := ReplaceStr(s, 'G', '');
   s := ReplaceStr(s, 'O', '');
   s := ReplaceStr(s, 'P', '');
   Form1.Edit4.Text := s;
Dmitry.

Re: Убрать лишнее!

DriveSoft wrote:
   s := Form1.Edit4.Text;
   s := ReplaceStr(s, 'R', '');
   s := ReplaceStr(s, 'G', '');
   s := ReplaceStr(s, 'O', '');
   s := ReplaceStr(s, 'P', '');
   Form1.Edit4.Text := s;

Спасибо!

надо идти вперёд....