Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Opendialog


Автор: Palladin 10.8.2006, 18:49
Вообщем в свою программу решил вбиндить опендиалог(так практичнее) вообщем юзер кликает по кнопке, открывается опендиалог, если он там что-то выбрал то я сохраняю filename в переменную, после этого мне нужно её преобразовать, т.е. разделить на две строки, в первой стркое путь к файлу(без последнего слеша) вторая строка имя екзешника который выбрал юзер, мой код приводить не хочу т.к. там как всегда велосипед smile думаю всё это можно сделать строк в 10 кода!

P.S. вылетает ошибка и я думаю что это потому что путь наполовину русскими буквами на половину английскими, а процедура opendialog1.filename может считать только ENGLISH 

 smile  smile  smile  smile  smile  smile 

Автор: _hunter 10.8.2006, 19:02
код таки лучше показать...
+ используй ExtractFilePath/ExtractFileName

Автор: Matematik 10.8.2006, 19:31
Путь к файлу без последнего слеша
ExtractFileDir()

Автор: Snowy 10.8.2006, 19:33
Цитата(RooR @  10.8.2006,  18:49 Найти цитируемый пост)
думаю всё это можно сделать строк в 10 кода!
10 - это много.

Цитата(RooR @  10.8.2006,  18:49 Найти цитируемый пост)
т.е. разделить на две строки, в первой стркое путь к файлу(без последнего слеша
ExtractFileDir

Цитата(RooR @  10.8.2006,  18:49 Найти цитируемый пост)
вылетает ошибка 
Какая? 

Цитата(RooR @  10.8.2006,  18:49 Найти цитируемый пост)
наполовину русскими буквами на половину английскими,
Русские, английские, китайские - пофигу.

Автор: Palladin 10.8.2006, 21:36
Хм.. можно чуть поподробнее по поводу ExtractFileDir(), ExtractFileName()?? я так понял что мы узнаём путь к файлу с помощью OpenDialog-a т.е.
Код

...........
var
p,i:string;
.......
begin
 opendialog1.execute;
 if opendialog1.execute then 
  begin 
   p:=extractfiledir(opendialog1.filename);
   i:=extractfilename(opendialog1.filename);
  end;
.................
end;


Я правильно понял??? smile 


P.S.2Matematik, не критика но всёже, доработай свою программу исходник которой ты мне давал, там поиск кривой, покрайней мере у меня smile а так программа работает отлично, респектище!!! smile 

Автор: Fedia 10.8.2006, 22:56
Код

 opendialog1.execute;    
 if opendialog1.execute then 

Два раза вызывать opendialog1.execute ни к чему. Просто:
Код

 if opendialog1.execute then 


И если:
Цитата(RooR @  10.8.2006,  18:49 Найти цитируемый пост)
в первой стркое путь к файлу(без последнего слеша)
, то
Код

p:=extractfiledir(opendialog1.filename);
SetLength(p, Length(p)-1);

Автор: Palladin 11.8.2006, 01:30
Цитата(Fedia @  10.8.2006,  22:56 Найти цитируемый пост)

И если: в первой стркое путь к файлу(без последнего слеша), то


не ты не так понял, мне ненужно искать путь без последнего слеша, мне надо так:
допустим путь:
E:\Games\Vingrad.exe 
тогда
в переменную p нужно занести E:\Games, а в переменную i Vingrad.exe , вообщем спасибо всё заработало, в каторый раз 

РЕСПЕКТ ВИНГРАДОВЦЫ smile 

Автор: Fedia 11.8.2006, 02:06
Цитата(RooR @  11.8.2006,  01:30 Найти цитируемый пост)
E:\Games\Vingrad.exe 
тогда
в переменную p нужно занести E:\Games 

Именно это в примере и реализовано. Что я не так понял ?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)