Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Деление String [D4, Win95/98]


Ghost! ©   (2002-01-11 18:40:00) 

Greetings!
Вопрос:
Есть 3 переменные: a, b, c. Все типа String. Переменная "a" содержит имя и фамилию человека, разделённые тремя проблемаи. Посдкажите плиз, как бы рациональнее сделать так, чтоб выделить в перемнную "b" только имя, а в переменную "c" только фамилию. Буду очень благодарен за помощь.


vlv   (2002-01-11 20:51:00) [1]

procedure WrapString(Sourse, Wrapper: String; Strings: TStrings);
var
Ps, Ps2: integer;
Tmp: String;
begin
Tmp := Sourse;
repeat
Ps:= AnsiPos(Wrapper, Tmp);
if Ps = 0 then Ps := Length(Tmp) + 1
else Ps2 := Ps;
Strings.Add(Copy(Tmp, 1, Ps - 1));
Tmp := Copy(Tmp, Ps + Length(Wrapper), Length(Tmp));
until Ps = 0;
end;


Юрий Зотов   (2002-01-11 20:19:00) [2]

Sorry за повтор, но это не мой глюк.


iZEN   (2002-01-11 19:52:00) [3]

Лучше свой компонент написать по парсированию строк и выделению лексем -- иначе для новых задач замучаешься "придумывать" каждый раз с нуля :), а такие задачки встречаются часто.
Уж не знаю, о чём думали разработчики Delphi раз не включили такой нужный компонент(класс) в библиотеку VCL. В Java, например, такой класс есть стандартно, называется java.util.StringTokenizer.


Юрий Зотов   (2002-01-11 19:17:00) [4]

Или что-то типа этого:

B := Copy(A, 1, Pos(" ", A) - 1);
C := Copy(A, Length(B) + 4, Length(A) - Length(B) - 3);


Юрий Зотов   (2002-01-11 19:16:00) [5]

Что-то типа этого:

B := Copy(A, 1, Pos(" ", A) - 1);
C := Copy(A, Length(B) + 4, Length(A) - Length(B) - 3);


panov   (2002-01-11 18:44:00) [6]

Попробуй функцию WrapText


Наверх

Титульная страница Поиск, карта сайта Написать письмо