![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа со строками [D6, WinXP]
Алексей © (2005-01-20 17:20:00)Подскажите, как можно преобразовать строку: "Иванов Иван Иванович" в строку: "ИвановИИ"?
Anatoly Podgoretsky (2005-01-20 23:52:00) [1]Алексей (20.01.05 17:41) [3]
Кто же это у вас так базу спроектировал.
Алексей (2005-01-20 22:44:00) [2]Огромное спасибо уважаемому Knight, все прекрасно заработало.
Knight (2005-01-20 19:01:00) [3]function GetFIO(Str:String):String;
var StrList:TStringList;
begin
Result:='';
StrList:=TStringList.Create;
try
StrList.Delimiter:=' ';
StrList.DelimitedText:=Str;
if StrList.Count=3 then begin
Result:=StrList[0]+StrList[1][1]+StrList[2][1];
end;
finally
StrList.Free;
end;
end;
begin...end (2005-01-20 18:06:00) [4]> [9] Александр Иванов © (20.01.05 18:02)
Смотрим сообщения выше:
[2] REA (20.01.05 17:35)
В смысле? Первое слово+ Первая после пробелабуква+ Первая после пробелабуква.
[3] Алексей (20.01.05 17:41)
У меня огромная база данных и надо ФИО сотрудников преобразовать. Уважаемый REA правильно понялсмысл моего вопроса.
Даже более того: посмотрите на образец строки, приведённый автором вопроса в [0].
Александр Иванов (2005-01-20 18:02:00) [5]begin...end © (20.01.05 17:55) [7]
А если несколько пробелов?
Александр Иванов (2005-01-20 18:01:00) [6]function GetName(Str:string):string;
var i:integer;
begin
i:=Pos(' ',Str);
Result:=Copy(Str,1,i-1);//Получаем фамилию
Str:=Trim(Copy(Str,i,Length(Str)-i));//Оставляем остаток
Result:=Result+Str[1];
i:=Pos(' ',Str);
Str:=Trim(Copy(Str,i,Length(Str)-i));//Оставляем остаток
Result:=Result+Str[1];
end;
begin...end (2005-01-20 17:55:00) [7]> [3] Алексей (20.01.05 17:41)
uses
StrUtils;
var
S1, S2: String;
P1, P2: Integer;
begin
S1 := 'Иванов Иван Иванович';
P1 := Pos(' ', S1) + 1;
P2 := PosEx(' ', S1, P1) + 1;
if (P1 > 0) and (P2 > 0) then
S2 := Copy(S1, 1, P1 - 2) + S1[P1] + S1[P2];
end.
Алексей (2005-01-20 17:51:00) [8]Я думаю можно перебором всех букв с начала по условию, но как осуществить цикл перебора?
Алексей (2005-01-20 17:50:00) [9]Я думаю можно перебором всех букв с начала по условию, но как осуществить цикл перебора?
Digitman (2005-01-20 17:49:00) [10]
> Алексей (20.01.05 17:41) [3]
так вот, на халявку, в надежде на телепатов, вся программистская жизнь и пройдет)
а ну как телепата рядом не окажется, а ? что делать-то будешь ?
какое нафих еще преобразование, если "Иванов Иван Иванович" (1) - это одна строкпа, а "ИвановИИ" (2) - совершенно иная ? Учись требования свои излагать алгоритмическимязыком !
нет и не может быть в этом случае никакого преобразования.
а должен быть алгоритм, создающий строку вида (2) по определенным ТОБОЙ алгоритмическим правилам на основании данных в строке (1).
Алексей (2005-01-20 17:41:00) [11]У меня огромная база данных и надо ФИО сотрудников преобразовать. Уважаемый REA правильно понял смысл моего вопроса.
REA (2005-01-20 17:35:00) [12]В смысле? Первое слово+Первая после пробела буква+Первая после пробела буква.
Digitman (2005-01-20 17:29:00) [13]никак