Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   проверить последний символ (https://forum.antichat.xyz/showthread.php?t=161357)

SultanOFF 05.12.2009 21:13

проверить последний символ
 
Здравствуйте. Вопрос возможно туп до идиотизма но все же. В едите есть текст, и нужно проверить стоит ли на самом конце знак "\" и если его нету то вставить иначе сделать тото.
Ума не приложу как это сделать, помогите пожалуйста :) Delphi 2009

НTL 05.12.2009 21:24

Код:

procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
Begin
s := form1.Edit1.Text;
If not (pos('\',s) = length(s)) then s:= s+'\';
form1.Edit2.Text := s;
end;


wolmer 05.12.2009 21:28

Цитата:

Сообщение от НTL
Код:

procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
Begin
s := form1.Edit1.Text;
If not (pos('\',s) = length(s)) then s:= s+'\';
form1.Edit2.Text := s;
end;


идиотизм

ну вот мой код:
Цитата:

procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
Begin
s := form1.Edit1.Text;
If (s[length(s)]<>'\') then s:= s+'\';
form1.Edit1.Text := s;
end;
to slesh, ^_^

slesh 05.12.2009 21:29

s := edit1.text;
if (s[length[s]] <> '\') then edit1.text := edit1.text + '\';

НTL 05.12.2009 21:32

Цитата:

Сообщение от wolmer
идиотизм

ну вот мой код:

Каждый исходный код уникален (с) Xakep

SultanOFF 05.12.2009 21:40

чуточку посидев сам в принципе придумал решение:
Код:

if copy(edit1.Text, length(edit1.Text), 1)='\' then
 showmessage('okei')
 else
 edit1.Text:=edit1.Text+'\';

однако думаю лучше использовать код slesh. Всем большое спасибо :)

DeaD_MoroZ 07.12.2009 10:40

s[length[s]] - вот эта ф-я получает последний символ в строке

slesh 07.12.2009 11:27

2 НTL
Цитата:

Каждый исходный код уникален (с) Xakep
Но не каждый исходный код имеет право на жизнь (С) SLESH

Твой код завалится на строке типа C:\dir\ подумай над этим )

НTL 08.12.2009 17:39

Цитата:

Сообщение от slesh
2 НTL


Но не каждый исходный код имеет право на жизнь (С) SLESH

Твой код завалится на строке типа C:\dir\ подумай над этим )

Да ты прав :rolleyes:

M_script_ 11.12.2009 06:03

Цитата:

Сообщение от slesh
s := edit1.text;
if (s[length[s]] <> '\') then edit1.text := edit1.text + '\';

А нельзя сразу написать
if (edit1.text[length[edit1.text]] <> '\') then edit1.text := edit1.text + '\';
?

slesh 11.12.2009 10:27

M_script_ edit1.text - это не переменная, это метод. Который в одном случае возвращает строку, в другом записывает её. И по этому нужно юзать промежуточную переменную.

Algol 11.12.2009 16:10

Цитата:

Сообщение от slesh
M_script_ edit1.text - это не переменная, это метод. Который в одном случае возвращает строку, в другом записывает её. И по этому нужно юзать промежуточную переменную.

Ну ты завернул :D :D

DeaD_MoroZ 11.12.2009 17:09

Цитата:

Сообщение от M_script_
А нельзя сразу написать
if (edit1.text[length[edit1.text]] <> '\') then edit1.text := edit1.text + '\';
?

можно только вот так
if (edit1.text=[length[edit1.text]] <> '\') then edit1.text := edit1.text + '\';
но тогда надо предварительно чо то записать в едит1

wolmer 11.12.2009 17:14

Цитата:

Сообщение от M_script_
А нельзя сразу написать
if (edit1.text[length[edit1.text]] <> '\') then edit1.text := edit1.text + '\';
?

Можно, но код будет некоторым не приятно воспринимать (по виду), впрочем кому как нравиться - тот так и пишет (да кстати так правильнее будет если смотреть на твой пример:...length(edit1.text)...)

M_script_ 12.12.2009 00:57

Цитата:

Сообщение от slesh
M_script_ edit1.text - это не переменная, это метод. Который в одном случае возвращает строку, в другом записывает её. И по этому нужно юзать промежуточную переменную.

Я в делфи не работаю, только в билдере, но VCL все равно один и тот же, поэтому не совсем понятно, с каких пор свойство Text класса TEdit стало методом? :confused:

На билдере код выглядит так:
Код:

if(Edit1->Text[Edit1->Text.Length()] != '\\')
        Edit1->Text = Edit1->Text + '\\';


Algol 12.12.2009 03:06

Цитата:

Сообщение от wolmer
Можно, но код будет некоторым не приятно воспринимать (по виду)

А код с названиями типа "edit1" по любому неприятно воспринимать :)
Не говоря уж про то, что функционал программы нельзя смешивать с интерфейсом...


Время: 05:32