Главная страница
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.066 c
7-10469
aklymenko
2003-05-23 10:48
2003.08.04
ВЕСЫ


3-10089
us
2003-07-11 14:35
2003.08.04
Как работать с DBF под Linux


14-10366
konstantinov
2003-07-16 19:16
2003.08.04
PDF файлы


4-10502
acsoft
2003-06-01 15:37
2003.08.04
Как сделать треугольное окно с углами в точках, например [0,0],[5


6-10335
Alexander Pogodin
2003-05-28 17:00
2003.08.04
TWebBrowser.OnBeforeNavigate2