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

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

Выделение подстроки из строки [D6, D7, WinXP]


Volf_555 ©   (2005-10-21 20:15:00) 

Нужно получить следующие:
1) есть строка, например: E:\Text\E-mail
2) нужно получить E:\Text
3) как на Delphi такое сделать?

Пробывал следующий код - определяет только первые три символа, то есть: Е:\

procedure TForm1.Button1Click(Sender: TObject);
var
s:String;
v:Integer;
p:Integer;
begin
s:=edit1.Text;
for v:=Length(s) downto 0 do
begin
 if s[v]='\' then
 begin
  p:=pos('\',s);
  break;
 end;
end;
edit2.Text:=copy(s,0,p);
end;


Anatoly Podgoretsky   (2005-10-22 16:50:00) [1]

Zeqfreed ©   (22.10.05 13:52) [7]
Ответ соответствует вопросу и делает это оптимальным путем.


Antonn   (2005-10-22 15:42:00) [2]

и не скопировал, а набрал:)


Antonn   (2005-10-22 15:41:00) [3]

Anatoly Podgoretsky ©   (22.10.05 12:53) [6]
как был так и скопировал, никто же не просил '.a' добавлять.

ну я в директорию в файл превратил:)


Zeqfreed   (2005-10-22 13:52:00) [4]

Anatoly Podgoretsky ©   (22.10.05 12:53) [6]
Незнаю даже, в общем-то да, правильно и оптимально. Вчера [1] мне показалось наиболее правильным, хотя если бы сам решал такую задачу, то не использовал стандартные ф-ции.

Да, и уж если говорить о правильности, то разделителем каталогов может быть как "\" так и "/" =)


Anatoly Podgoretsky   (2005-10-22 12:53:00) [5]

Zeqfreed ©   (21.10.05 22:38) [4]
Чего Antonn то обругал, по сути правильно и оптимально, только вот примеры не умеет правильно копировать, как был так и скопировал, никто же не просил '.a' добавлять.


Antonn   (2005-10-22 06:56:00) [6]

Zeqfreed ©   (21.10.05 22:38) [4]
ну работает ведь? Не так уж страшно... для текущего задания вообще подошло бы и такое - extractfiledir('E:\Text\E-mail'+'.a');


Zeqfreed   (2005-10-21 22:38:00) [7]

palva ©   (21.10.05 22:01) [3]
Antonn ©   (21.10.05 20:43) [2]

Черезжопогландовырывательством промышляете?


palva   (2005-10-21 22:01:00) [8]


procedure TForm1.Button1Click(Sender: TObject);
var
s:String;
v:Integer;
p:Integer;
begin
s:=edit1.Text;
for v:=Length(s) downto 1 do
begin
if s[v]='\' then
begin
 SetLength(s, v-1);
 break;
end;
end;
edit2.Text:=s;
end;


Antonn   (2005-10-21 20:43:00) [9]

Volf_555   (21.10.05 20:15)
1) есть строка, например: E:\Text\E-mail

caption:=extractfiledir(extractfiledir(E:\Text\E-mail)+'.a');


TUser   (2005-10-21 20:36:00) [10]

ExcludeTrailingBackslash(ExtractFilePath('e:\text\e-mail'))


Наверх

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