Главная страница
    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.032 c
14-1091012470
juiceman
2004-07-28 15:01
2004.08.15
Драйвера, оборудование


8-1086101616
ki11er
2004-06-01 18:53
2004.08.15
Порезать AVI


14-1090995975
Jeer
2004-07-28 10:26
2004.08.15
Not for sale !


3-1090422734
Kapitan
2004-07-21 19:12
2004.08.15
Аутентификация в SAM из ХП


14-1090980029
Думкин
2004-07-28 06:00
2004.08.15
С днем рождения! 28 июля





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский