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

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

Вопрос по работе с файлами. [D5, 2000]


pathfinder ©   (2006-09-27 16:10:00) 

Добрый день!
У меня такой вопрос: при работе с файлами (открытие, сохранение) например с xxx.LoadFromFile(filename); если файл находится в одной папке с приложением, то всегда ли будет корректным указание его имени без указания пути? Например при работе в старых операционках или еще в каких-то ситуациях это может привести к ошибке?


clickmaker   (2006-09-27 17:06:00) [1]


> [15] pathfinder   (27.09.06 17:04)

нет. Если только путь будет без слэшей.
Ты исходники функции-то глянь, сразу все поймешь


Игорь Шевченко   (2006-09-27 17:04:00) [2]

pathfinder   (27.09.06 16:59) [12]


> Т.е. такая проверка или использование этих функций необходимы?


Необходимого в этой жизни вообще крайне мало. Использование желательно, не повредит уж точно.


pathfinder   (2006-09-27 17:04:00) [3]


> clickmaker ©   (27.09.06 17:01) [13]


Вы имеете в виду, что когда файл в корневом каталоге? Я попробовал - слэш есть..


clickmaker   (2006-09-27 17:01:00) [4]


> в каких случаях может не оказаться слэша при ExtractFilePath?

'C:text.txt'


pathfinder   (2006-09-27 16:59:00) [5]


> Игорь Шевченко ©   (27.09.06 16:55) [11]


Т.е. такая проверка или использование этих функций необходимы? А в каких случаях может не оказаться слэша при ExtractFilePath?


Игорь Шевченко   (2006-09-27 16:55:00) [6]

pathfinder   (27.09.06 16:41) [5]


> Я встречал в некоторых программах еще и проверку на наличие
> слэша в конце пути. Это имеет смысл?


IncludeTrailingPathDelimiter или IncludeTrailingBackslash делают эту проверку лишней.


Ketmar   (2006-09-27 16:52:00) [7]

>[7] pathfinder 27-Sep-2006, 16:42
>А в чем разница? между ParamSTR(0) и
>Application.ExeName?
а в том, что объекта Application может и не быть. а ParamStr(0) всегда с нами.


pathfinder   (2006-09-27 16:47:00) [8]


> clickmaker ©   (27.09.06 16:42) [6]


Ну это да.. Там именно после ExtractFilePath еще была проверка.


clickmaker   (2006-09-27 16:42:00) [9]


> Это имеет смысл?

сравни в хелпе
ExtractFilePath и ExtractFileDir


pathfinder   (2006-09-27 16:42:00) [10]


> Весь в делах


А в чем разница? между ParamSTR(0) и Application.ExeName?


zdm   (2006-09-27 16:42:00) [11]


> Весь в делах  

Ты имеешь ввиду, ято я процетировал [1]-это не правда, у меня кстати почему-то реально с запазданием работет форум.


pathfinder   (2006-09-27 16:41:00) [12]


> clickmaker ©


> Palladin ©  


> zdm ©


Спасибо!
Попутно возник еще вопрос) Я встречал в некоторых программах еще и проверку на наличие слэша в конце пути. Это имеет смысл?


Весь в делах   (2006-09-27 16:39:00) [13]


> zdm

LoadFromFile(extractfilepath(ParamSTR(0))+'qqq.txt')
IMHO, вот стопроцентно рабочий вариант


zdm   (2006-09-27 16:14:00) [14]

LoadFromFile(extractfilepath(Application.ExeName)+'qqq.txt')
стопроцентов рабочий вариант с перестраховкой


Palladin   (2006-09-27 16:13:00) [15]


> то всегда ли будет корректным указание его имени без указания пути?


нет, если неуказывать путь, файл будет искаться в текущей рабочей директории, и это совсем не обязательно будет директория в которой находится исполняемый файл


clickmaker   (2006-09-27 16:11:00) [16]


> всегда ли будет корректным указание его имени без указания
> пути?

нет. Текущий путь может смениться в процессе работы.
Лучше всегда ExtractFilePath(Application.ExeName) + FileName


Наверх

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