Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.12.2010, 09:42   #1
Марк Охман
Форумчанин
 
Аватар для Марк Охман
 
Регистрация: 05.02.2010
Сообщений: 153
По умолчанию sOpenDialog и textfile

Всем привет))) тут такая проблема странная... вот такой код:
Код:
if sOpenDialog1.FileName<>'' then k:=sOpenDialog1.FileName;
assignfile(f,'subject.db');
append(f);
writeln(f,sEdit8.Text);
т.е. первая строчка никак не связана с последующими, но в том случае когда значение FileName пусто (т.е. '') выдает ошибку о том что File Not Found и выделяет строчку:
Код:
append(f);
Я думаю что когда я делаю команду:
Код:
sOpenDialog1.Execute;
"Поле боя" т.е. рабочая папка и которой по идее должен прочитаться файл f становится та папка в которой лежит файл, выбраннный мною в OpenDialog. Если я прав то как это предотвратить (ну или как сделать по другому)? Помогите плиз))
Я начинающий web-программист) Не судите строго, плиз! Буду очень стараться!
Марк Охман вне форума Ответить с цитированием
Старый 30.12.2010, 10:13   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,543
По умолчанию

1 вар. Использовать полный путь к папке программы
assignfile(f, ExtractFilePatch( application.exename ) + 'subject.db');

2. запоминать и восстанавливать текущую папку.
GetCurrentdir + SetCurrentdir
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 30.12.2010, 10:16   #3
Марк Охман
Форумчанин
 
Аватар для Марк Охман
 
Регистрация: 05.02.2010
Сообщений: 153
По умолчанию

СПасииибо))) огромное) +
Я начинающий web-программист) Не судите строго, плиз! Буду очень стараться!
Марк Охман вне форума Ответить с цитированием
Старый 30.12.2010, 10:44   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
2. запоминать и восстанавливать текущую папку.
Не рекомендую. Морочно. Представь что твоя прога вылетела с ошибкой - дашь гарантию что измененная текущая директория не повлияет на другие процессы? Я нет, ибо когда-то с таким столкнулся, потому всегда теперь использую только первый способ.
ИМХО, SetCurrentdir аттавизм.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.12.2010, 15:55   #5
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Добавлю: ofNoChangeDir + F1

А вообще, самое правильное - использовать абсолютные пути.

Относительные пути придуманы для пользователя, а не для программ.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 31.12.2010, 22:27   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
дашь гарантию что измененная текущая директория не повлияет на другие процессы?
ну на другие процессы врятли, а вот другим потокам может(правда в случае отсуствия ошибок)

но первый способ лучше.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Можно ли имея F:TextFile определить... Alex Cones Общие вопросы Delphi 5 12.12.2009 21:31
Как преобразовать TextFile в String? DragonionS Паскаль, Turbo Pascal, PascalABC.NET 1 06.06.2007 18:38
Back to the TextFile Albenous Общие вопросы Delphi 7 12.02.2007 19:33