Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Исключение "символа" из получившейся строки :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;


Наверх

Титульная страница Поиск, карта сайта Написать письмо