Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.15;
Скачать: CL | DM;

Вниз

работа со строками   Найти похожие ветки 

 
dracula ©   (2004-08-01 15:24) [0]

есть например такая строка (xxxxxxx\xxxxx/xxxxxxx) ну и т.д. как из неё убрать эти символы - / и \.


 
Ну ну   (2004-08-01 15:35) [1]

function Pos(Substr: string; S: string): Integer;
procedure Delete(var S: string; Index, Count:Integer);


 
dracula ©   (2004-08-01 16:00) [2]

не совсем то что надо( хотя тоже можно применить), может я не так спросил - мне надо их не удалять, а сделать так чтобы они (/, \)не отображались например в Edit1.Text, а был только текст, причём местоположение этих знаков я незнаю, оно всегда разное. То что ты дал можно сделать, но может попроще чего есть?


 
Timedrops ©   (2004-08-01 16:01) [3]

function deletesubstr(substr,mainstr: string):string;
begin
 while pos(substr,mainstr)<>0 do
   delete(mainstr,pos(substr,mainstr),length(substr));
 result:=mainstr;
end;

вот так попробуй


 
Anatoly Podgoretsky ©   (2004-08-01 16:02) [4]

Это уже какой по счету вопрос про строки, когда ты не думаешь перед тем как задать.


 
dracula ©   (2004-08-01 16:02) [5]

щас попробую =)


 
dracula ©   (2004-08-01 16:04) [6]

Anatoly Podgoretsky

над этим вопросом я думал, а на счёт предыдущего стормозил извините.


 
Anatoly Podgoretsky ©   (2004-08-01 16:06) [7]

dracula ©   (01.08.04 16:00) [2]
может я не так спросил


 
dracula ©   (2004-08-01 16:35) [8]

всё может быть, хватит прикалываться. Anatoly Podgoretsky © - ты лучше подскажи как символы из строки string убрать. То что мне тут пишут я непонимаю (тупой), мне на примере всё показывать надо =).


 
Anatoly Podgoretsky ©   (2004-08-01 16:43) [9]

Чмтай выше, не поможет - еще раз читай


 
Юрий Зотов ©   (2004-08-01 16:44) [10]

function DeleteChars(S: string; Chars: set of char): string;
var
 i: integer;
begin
 Result := S;
 for i := Length(S) downto 1 do
   if Result[i] in Chars then
     Delete(Result, i, 1)
end;

========================
Edit1.Text := DeleteChars(S, ["\", "/"]);


 
dracula ©   (2004-08-01 16:51) [11]

Anatoly Podgoretsky © - ладно тебе я в школе последний раз читал =) вот добрый человек написал мне - ЮРИЙ ЗОТОВ - супер, спасибо тебе, а то Anatoly Podgoretsky меня читать заставлял, то чего я понять немогу - садист(без обид). Вот на примере я всё понял!!! спасибо


 
Ну ну   (2004-08-01 16:56) [12]

В Западной Европе российское высшее образование просто так не признаётся - теперь понятно почему:( Или в анкете лажа?


 
Юрий Зотов ©   (2004-08-01 16:57) [13]

> dracula ©   (01.08.04 16:51) [11]

> а то Anatoly Podgoretsky меня читать заставлял то
> чего я понять немогу

Правильно заставлял. Иначе никогда и не поймете.


 
Anatoly Podgoretsky ©   (2004-08-01 16:57) [14]

Пример в [3] точно такой же рабочий, последний более универсальный. А читать надо!!!


 
default ©   (2004-08-01 20:20) [15]

можно ещё так
type
 TChars = Set of Char;

function DeleteChars(const S: String; Chars: TChars): String;
var
i, P, C: Cardinal;
begin
P := 1;
C := 0;
SetLength(Result, Length(S));
for i := 1 to Length(S) do
if S[i] in Chars then begin
  Move(S[P], Result[P - C], i - P);
  Inc(C);
  P := i + 1;
end;
if P <= Length(S) then Move(S[P], Result[P - C], Length(S) - P + 1);
SetLength(Result, Length(Result) - C)
end;

function DeleteChars(const S: String; Chars: TChars): String;
var
i, P: Cardinal;
begin
 P := 1;
 SetLength(Result, Length(S));
 for i := 1 to Length(S) do
 if not (S[i] in Chars) then begin
   Result[P] := S[i];
   Inc(P);
 end;
 SetLength(Result, P - 1)
end;

я было подумал что с Move-ом будет заметно быстрее когда число символов между разделителями достаточно велико, но при таких условиях разница довольно мала так что если важна скорость пользуйся вторым вариантом
"Вот на примере я всё понял!!!"
и почему цикл наоборот сделан?


 
default ©   (2004-08-01 20:22) [16]

если важна скорость в общем случае пользуйся вторым вариантом


 
AndB ©   (2004-08-02 06:14) [17]

а почему не так:
s1 := "xxxxx\xxxxx\xxxx\/xxx";
s1 :=AnsiReplaceStr(s1, "\","");
s1 :=AnsiReplaceStr(s1, "/","");
/* все-все, ухожу читать.. :) */


 
Alx2 ©   (2004-08-02 07:36) [18]

>Юрий Зотов ©   (01.08.04 16:44)
Может, я не прав. Но уже входит в классику использовать алгоритмы с квадратичной сложностью вместо линейной. Тем более, в очевидных случаях.



Страницы: 1 вся ветка

Текущий архив: 2004.08.15;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.049 c
14-1090999265
dron
2004-07-28 11:21
2004.08.15
Редактор кода Delphi 8! Хочу такой же в 7!


14-1091126584
VID
2004-07-29 22:43
2004.08.15
Даёшь акции ЮКОСа!


1-1091198521
X9
2004-07-30 18:42
2004.08.15
Ширина выпадающего PopupMenu


3-1090402449
GanibalLector
2004-07-21 13:34
2004.08.15
"наложение" таблиц


6-1087152399
Денис
2004-06-13 22:46
2004.08.15
сокс+смтп