![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Исключение "символа" из получившейся строки :0
jenya © (2006-03-04 19:59:00)Есть три Edit'а, кнопка, и четвертый Edit...
Ввожу в первый второй и третий эдит некоторые буквы, нажимаю кнопку
и результат выводится в четвертый Edit...в этом проблем нет ;)
Проблема в том что надо после каждого Edit'а ставился знак\, а после третьего он не ставился...и если строка пустая знак так
же не ставился бы...
Заранее спасибо.
SergP. (2006-03-05 11:13:00) [1]Для любого кол-ва едитов (в данном примере нужен массив эдитов), подойдет такая штука
s:='';
for i:=1 to N do if edit[i].text<>'' then
if s<>'' then s:=s+'/'+edit[i].text else s:=s+edit[i].text;
правда не проверял. Если какая-то ошибка есть, то [ua]вибачайте[/ua]
unknown (2006-03-05 00:32:00) [2]>jenya (04.03.06 22:11) [11]
бегом туда : http://www.ln.ua/~openxs/articles/smart-questions-ru.html
jenya (2006-03-04 22:11:00) [3]ну дык...я хотел по понятней, чтоб не вникали в суть проги, а помогли с кодом и все...
а так огромное всем спасибо!
Desdechado (2006-03-04 22:05:00) [4]судя по результату, ты хотел совсем другого, чем писал в начале
по крайней мере, там было 4 эдита
да и побочных эффектов в виде добавления слэшей в эдит не просил...
jenya (2006-03-04 21:29:00) [5]Все мужики допер спасибо всем!
вот что получил ;)
procedure TForm1.Button1Click(Sender: TObject);
begin
if Edit1.Text <> '' then Edit1.Text := Edit1.Text + '/';
if Edit2.Text <> '' then Edit2.Text := Edit2.Text + '/';
Edit3.Text := '000000' + ''+Edit1.Text+'' + ''+Edit2.Text+'' ;
end;
EvS (2006-03-04 21:19:00) [6]>if( Edit2.Text <>'' ) then s:=s+'\'Edit2.Text;
if( Edit2.Text <>'' ) then s:=s+'\'+Edit2.Text;
>[4] jenya (04.03.06 20:56)
>не пойму if( Edit2.Text <>'' ) это означает что в едите2 ничего нет? или что?
Это означает что если Edit2 есть текст то к тексту содержащемуся в переменной s добавится "\" и текст из Edit2. А вообще в самом деле ты бы сначала книжки почитал.
Zeqfreed (2006-03-04 21:03:00) [7]Уп-с :) Все наоборот, объяснил называется ))
Edit2.Text <> ''читать какEdit2.Text = ''
ДляEdit2.Text <> ''все будет, соответственно, наоборот.
Zeqfreed (2006-03-04 21:01:00) [8]Edit2.Text <> ''Сравнивает текст эдита с «пустой строкой», если текста нет, то это выражение будет верным и выполнится блок then условия, если же в эдите есть какой-то текст, то выражение будет ложным и выполнится блок else, если таковой присутствует. Вообще, на форум с такими вопросами лучше не заходить, а читать, читать и практиковаться.
jenya (2006-03-04 20:56:00) [9]нихера не получилось :(
не поймуif( Edit2.Text <>'' )это означает что в едите2 ничего нет? или что?
jenya (2006-03-04 20:56:00) [10]нихера не получилось :(
не поймуif( Edit2.Text <>'' )это означает что в едите2 ничего нет? или что?
Virgo_Style (2006-03-04 20:35:00) [11]почитай про
if
jenya (2006-03-04 20:19:00) [12]>s:=Edit1.
> Text;if( Edit2.Text <>'' ) then s:=s+'\'Edit2.Text;if( Edit3.
> Text <>'' ) then s:=s+'\'Edit3.Text;if( s[1] = '\' ) then
> Edit4.Text:=Copy(s,2,Length(s)) else Edit4.Text:=s;
Ты навеное не совсем понял проблему... :(
Мне надо чтоб я ввел какое нить слово в едит1 и едит3, а в едит2 не ввел...
и при нажатии кнопки в едит4 получилось едит1/едит3, где / знак который нужно вставлятьмежду едитами, но если едит пуст, то / не пишется...
Заранее спасибо...
Desdechado (2006-03-04 20:10:00) [13]> Исключение
> надо после каждого Edit'а ставился знак \
какое-то противоречие...
а по смыслу все элементарно:
s:=Edit1.Text;
if( Edit2.Text <>'' ) then s:=s+'\'Edit2.Text;
if( Edit3.Text <>'' ) then s:=s+'\'Edit3.Text;
if( s[1] = '\' ) then Edit4.Text:=Copy(s,2,Length(s)) else Edit4.Text:=s;