Форум: "Основная";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];
ВнизРабота со строками Найти похожие ветки
← →
Алексей (2005-01-20 17:20) [0]Подскажите, как можно преобразовать строку: "Иванов Иван Иванович" в строку: "ИвановИИ"?
← →
Digitman © (2005-01-20 17:29) [1]никак
← →
REA (2005-01-20 17:35) [2]В смысле? Первое слово+Первая после пробела буква+Первая после пробела буква.
← →
Алексей (2005-01-20 17:41) [3]У меня огромная база данных и надо ФИО сотрудников преобразовать. Уважаемый REA правильно понял смысл моего вопроса.
← →
Digitman © (2005-01-20 17:49) [4]
> Алексей (20.01.05 17:41) [3]
так вот, на халявку, в надежде на телепатов, вся программистская жизнь и пройдет)
а ну как телепата рядом не окажется, а ? что делать-то будешь ?
какое нафих еще преобразование, если "Иванов Иван Иванович" (1) - это одна строкпа, а "ИвановИИ" (2) - совершенно иная ? Учись требования свои излагать алгоритмическим языком !
нет и не может быть в этом случае никакого преобразования.
а должен быть алгоритм, создающий строку вида (2) по определенным ТОБОЙ алгоритмическим правилам на основании данных в строке (1).
← →
Алексей (2005-01-20 17:50) [5]Я думаю можно перебором всех букв с начала по условию, но как осуществить цикл перебора?
← →
Алексей (2005-01-20 17:51) [6]Я думаю можно перебором всех букв с начала по условию, но как осуществить цикл перебора?
← →
begin...end © (2005-01-20 17:55) [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 18:01) [8]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;
← →
Александр Иванов © (2005-01-20 18:02) [9]begin...end © (20.01.05 17:55) [7]
А если несколько пробелов?
← →
begin...end © (2005-01-20 18:06) [10]> [9] Александр Иванов © (20.01.05 18:02)
Смотрим сообщения выше:
[2] REA (20.01.05 17:35)
В смысле? Первое слово+Первая после пробела буква+Первая после пробела буква.
[3] Алексей (20.01.05 17:41)
У меня огромная база данных и надо ФИО сотрудников преобразовать. Уважаемый REA правильно понял смысл моего вопроса.
Даже более того: посмотрите на образец строки, приведённый автором вопроса в [0].
← →
Knight © (2005-01-20 19:01) [11]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;
← →
Алексей (2005-01-20 22:44) [12]Огромное спасибо уважаемому Knight, все прекрасно заработало.
← →
Anatoly Podgoretsky © (2005-01-20 23:52) [13]Алексей (20.01.05 17:41) [3]
Кто же это у вас так базу спроектировал.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.035 c