|
#1
|
|||
|
|||
Замена символов
Как осуществить замену нескольких идущих подряд символов в строке?
например в строку вводят hd#d7(378dh3g Нужно взять из текста d#d и заменить на & в итоге в другой строке должно получится h&7(378dh3g Каким способом это можно реализовать? Спасибо. |
#2
|
||||
|
||||
Поиск по функциям:
Код:
StringReplace Copy Pos PosEx Delete ЗЫ В твоем случае замена была бы такая: Код:
var s: String; begin s:=Edit1.Text; s:=StringReplace(s, 'd#d', '&', [rfReplaceAll]); ShowMessage(s); end; Помогаю за Спасибо |
#3
|
|||
|
|||
спасибо большое!
А если мне нужно например несколько комбинаций символов заменить? 7#$ - 3 3$$ - ? (#4 - % вот найти их и заменить другими символами |
#4
|
||||
|
||||
ну типа можно так
Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; gg = record old :string; new :string; end; Tarray= array[1..100] of gg; var Form1: TForm1; implementation {$R *.dfm} function StrRepAll(text:string;pattern:Tarray):string; var i:integer; begin for i:=1 to length(pattern) do text:=StringReplace(text,pattern[i].old,pattern[i].new,[rfReplaceAll]); Result:=text; end; procedure TForm1.Button1Click(Sender: TObject); var a: Tarray; test:string; begin test:='gdfg-1dfgd-2ffgd-3'; a[1].old:='-1'; a[1].new:='1'; a[2].old:='-2'; a[2].new:='2'; a[3].old:='-3'; a[3].new:='3'; test:=StrRepAll(test,a); showmessage(test); end; end. Последний раз редактировалось Admin, Сегодня в 10:32. |