Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.039 c
14-1090867870
VID
2004-07-26 22:51
2004.08.15
Каким же Вы представляете себе это "будущее" ?


8-1085994868
Dr.Alex
2004-05-31 13:14
2004.08.15
MPEG


3-1090475064
joy
2004-07-22 09:44
2004.08.15
почему rowsaffected показывает 0?


1-1091504016
Eagle8
2004-08-03 07:33
2004.08.15
Icon


1-1091196704
Antonmm
2004-07-30 18:11
2004.08.15
Зарезервированные слова





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский