![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
![]() Здравствуйте форумчане
![]() Мне надо сделать функцию удаления части строки НЕ по индексу (как функция delete), а по нужному символу (или букве) и до нужного символа (или буквы). Объясняю, вот примерно, какой должен быть синтаксис функции: Код:
function DelStr(S: String; What, WhatTo: String): String; То есть надо удалять часть строки от и до выбранной буквы (а если нет одной из букв, то не удалять не чего). Так же надо в функции предусмотреть удаление от нужной буквы до конца строки. Вот примерно как то так. Есть идеи хоть у кого то? ЗЫ Варианты наподобие таких не предлагать, т.к. это не подходит: Код:
function GetWord(Str,Smb:String; WordNmbr: Byte):String; var SWord: String; StrLen,N: Byte; begin StrLen:=SizeOf(Str); N:=1; while ((WordNmbr >= N) and (StrLen <> 0)) do begin StrLen := Pos(Smb,str); if StrLen <> 0 then begin SWord:=Copy(Str,1,StrLen-1); Delete(Str,1,StrLen); Inc(N); end else SWord:=Str; end; if WordNmbr <= N then Result:=SWord else Result:=''; end; /// или такой: function DelStr(S: String; What: String): String; begin Result := Copy(S, 1, Pos(What, S) - 1); end; Прошу, помогите!!! Заранее спасибо! |
#2
|
|||
|
|||
![]() Код:
uses strUtils; function StringDelete(Str, AFrom, ATo : String; AToEnd : Boolean = false) : String; var iFrom, iTo : Integer; begin iFrom := Pos(AFrom,Str); If AToEnd Then iTo := Length(Str) Else iTo := PosEx(ATo,Str,AFrom); Result := Str; If (iFrom > 0) And (iTo > 0) Then Delete(Result,iFrom,iTo); // Если удалять все вхождения, то можно сделать рукурсию: // If Str <> Result Then Result := StringDelete(Str, AFrom, ATo, AToEnd); end; |
#3
|
||||
|
||||
![]() Спасибо!!!
|