Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.08.04;
Скачать: CL | DM;

Вниз

Работа со строками   Найти похожие ветки 

 
Gorn   (2003-07-20 11:26) [0]

На форме есть три Edit"a. В первый вводятся слова через черточку. Например: Петров-Водкин. Как в Edit2 получить "Петров", а в Edit3 - "Водкин". Спасибо.


 
Романов Р.В. ©   (2003-07-20 11:29) [1]

F1 - Pos, Copy


 
Gorn   (2003-07-20 13:50) [2]

Петрова получил, а как получить Водкина не соображу. Подскажите.
procedure TForm1.Button1Click(Sender: TObject);
var
n:integer;
s:string;
begin
s:=Edit1.Text;
n:=length(s);
Edit2.Text:="";
Edit3.Text:="";
for n:=1 to n do
begin
if S[n]<>"-" then
begin
Edit2.Text:=Edit2.Text+Edit1.Text[n];
end
else
exit
end;
end;


 
Immortal_Death   (2003-07-20 14:14) [3]

да просто....

procedure TForm1.Button1Click(Sender: TObject);
var
n:integer;
s:string;
begin
s:=Edit1.Text;
n:=length(s);
Edit2.Clear;
Edit3.Clear;
for n:=1 to n do
begin
if S[n]<>"-" then
begin
Edit2.Text:=Edit2.Text+Edit1.Text[n];
end else
begin
Delete(S, 1, n);
Edit3.Text := S;
exit;
end;
end;
end;

Кстати способов груда...


 
Anatoly Podgoretsky ©   (2003-07-20 14:16) [4]

Водкин начинается сразу за символом "-"
Потом тебе сказали испольсзоват pos/copy или нет?


 
Goblinus ©   (2003-07-20 14:30) [5]

Да ужжж....

procedure TForm1.Button1Click(Sender: TObject);
var
P: Integer;
S: String;
begin
S := Edit1.Text;
P := Pos("-", S);
if P > 0 then
begin
Edit2.Text := Copy(S, 1, P - 1);
Edit3.Text := Copy(S, P + 1, Length(S));
end;
end;


И непонятно, зачем это в цикле делать.


 
Rouse_ ©   (2003-07-20 14:35) [6]

При больших объемах обычно используют StringReplase и свойство Text класса TStringList

К примеру имеется слово - Петров-Водкин-Сидоров-Селедкин

Решение:
procedure TForm1.Button1Click(Sender: TObject);
var
S: TStringList;
begin
S := TStringList.Create;
S.Text := StringReplace(Edit1.Text, "-", #13#10, [rfReplaceAll]);
with S do
begin
Edit2.Text := Strings[0];
Edit3.Text := Strings[1];
Edit4.Text := Strings[2];
Edit5.Text := Strings[3];
end;
S.Free;
end;


Желаю успехов


 
Immortal_Death   (2003-07-20 14:36) [7]

да, с пос/копи будет куда короче :)

procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
begin
s:=Edit1.Text;
Edit2.Text := copy(S, 1, pos("-", s)-1);
Edit3.Text := copy(S, pos("-", s)+1, Length(S));
end;



 
Gorn   (2003-07-20 14:53) [8]

Вот это да! А я мучился пол-дня. Всем большое спасибо!


 
Gorn   (2003-07-20 15:13) [9]


> Rouse_ © (20.07.03 14:35)

Что-то не хочет работать твой код. Первое слово выделяет, а остальное все валит в Edit2


 
Rouse_ ©   (2003-07-20 15:21) [10]

В Edit1.Text должно находиться - "Петров-Водкин-Сидоров-Селедкин" (без кавычек)
На форме расположи еще четыре Edit и кнопку.
В обработчике кнопки OnClick запиши мой код.
Запусти приложение, нажми кнопку, удивись... все работает :))

Желаю успехов


 
Gorn   (2003-07-20 15:34) [11]


> Rouse_ © (20.07.03 15:21)

Извиняюсь, тормознул..



Страницы: 1 вся ветка

Текущий архив: 2003.08.04;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.014 c
14-10389
Danilcha
2003-07-17 02:35
2003.08.04
Российский студент обошел программистов NASA


6-10338
vlad270671
2003-05-30 14:35
2003.08.04
SMAPI и присоедененные файлы


3-10114
Belkova
2003-07-14 18:02
2003.08.04
Запрос без регистра


9-10075
0$a
2003-02-04 01:09
2003.08.04
Игровые ресурсы


7-10485
reticon
2003-05-22 23:11
2003.08.04
установка бит данных