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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.06.2009, 15:59   #1
Oleg Romanchuk
Ghost
Форумчанин
 
Аватар для Oleg Romanchuk
 
Регистрация: 16.08.2007
Сообщений: 143
По умолчанию Замена в Edit'e

Всем добрый вечер)) нужна помощь: допусти в едит записывается значение:
Provider=Microsoft.Jet.OLEDB.4.0;Da ta Source=C:\Documents and Settings\ORV\Рабочий стол\Программа\Гл. База.mdb;Persist Security Info=false

вообщем надо сделать так, чтобы остался только пусть C:\Documents and Settings\ORV\Рабочий стол\Программа\Гл. База.mdb

очень нужна ваша помощь, программа для дипломной а сроки поджимают ))
Oleg Romanchuk вне форума Ответить с цитированием
Старый 06.06.2009, 16:49   #2
Neeter
Форумчанин
 
Аватар для Neeter
 
Регистрация: 22.02.2009
Сообщений: 875
По умолчанию

Код:
function GetPath(ConnectionString: string): string;
begin
 Delete(ConnectionString, 1, Pos('Data Source=', ConnectionString) + 11);
 Result := Copy(ConnectionString, 1, Pos(';Persist Security Info=') - 1);
end;
Писал на глаз, если есть погрешности просто скажите.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Neeter вне форума Ответить с цитированием
Старый 06.06.2009, 17:22   #3
Oleg Romanchuk
Ghost
Форумчанин
 
Аватар для Oleg Romanchuk
 
Регистрация: 16.08.2007
Сообщений: 143
По умолчанию

Цитата:
Neeter
можно поподробнее плиз, что куда вставлять, и что эта за функция: GetPath
Oleg Romanchuk вне форума Ответить с цитированием
Старый 06.06.2009, 17:41   #4
Neeter
Форумчанин
 
Аватар для Neeter
 
Регистрация: 22.02.2009
Сообщений: 875
По умолчанию

Написал ее я, чтобы вам не мучатся, вставляйте в код формы где вы хотите получить путь к базе, вот пример использования:
Код:
Edit1.Text := GetPath(ADOConnection1.ConnectionString)
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Neeter вне форума Ответить с цитированием
Старый 06.06.2009, 18:53   #5
Oleg Romanchuk
Ghost
Форумчанин
 
Аватар для Oleg Romanchuk
 
Регистрация: 16.08.2007
Сообщений: 143
По умолчанию

Спасибо большое, только все равно не получается что-то(( вот так откопилировался без ошибок:

Цитата:
Delete(ConnectionString, 1, Pos('Data Source=', ConnectionString) + 11);
Result:=Copy(ConnectionString, 1, Pos(';Persist Security Info=',ConnectionString)-1);



Цитата:
Edit1.Text := GetPath(ADOConnection1.ConnectionSt ring)
а вот тут выдал ошибку: [Error] OptionUnit.pas(383): Incompatible types: 'HDC' and 'WideString'





что-то вроде на тип ругается
Oleg Romanchuk вне форума Ответить с цитированием
Старый 06.06.2009, 23:23   #6
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
По умолчанию

Если в edit просто путь до файла, может пригодится
Код:
Const  ConnectStr :String = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;Persist Security Info=False';
..........................................
ADOConnection1.ConnectionString := Format(ConnectStr, [Edit1.Text]);
..........................................
Alter вне форума Ответить с цитированием
Старый 07.06.2009, 11:16   #7
Oleg Romanchuk
Ghost
Форумчанин
 
Аватар для Oleg Romanchuk
 
Регистрация: 16.08.2007
Сообщений: 143
По умолчанию

не работает (((
Oleg Romanchuk вне форума Ответить с цитированием
Старый 07.06.2009, 11:47   #8
Helion
 
Аватар для Helion
 
Регистрация: 29.04.2009
Сообщений: 9
По умолчанию

Если путь надо получить с Edit, то и работайте с его значением.
Цитата:
Сообщение от Neeter Посмотреть сообщение
Код:
function GetPath(ConnectionString: string): string;
begin
 Delete(ConnectionString, 1, Pos('Data Source=', ConnectionString) + 11);
 Result := Copy(ConnectionString, 1, Pos(';Persist Security Info=') - 1);
end;
В форме с Edit'ом используйте:
Код:
var Path : string;
Path := GetPath(Edit1.Text);
Нумерология онлайн - сайт для мамы
Вертолетная авиация - сайт профессии Калитка в мой скромный блог - Асинхронные мысли и Ложь - Поиск истины
Helion вне форума Ответить с цитированием
Старый 07.06.2009, 13:02   #9
Oleg Romanchuk
Ghost
Форумчанин
 
Аватар для Oleg Romanchuk
 
Регистрация: 16.08.2007
Сообщений: 143
По умолчанию

Столько способов и не один не могу приминить, везде ошибки:

Нужно скопировать только часть текста из реестра, т.е. путь, а не всю строку целиком...

Provider=Microsoft.Jet.OLEDB.4.0;Da ta Source=C:\Documents and Settings\ORV\Рабочий стол\Программа\Гл. База.mdb;Persist Security Info=false

Цитата:
Reg:=TRegistry.Create;
Reg.OpenKey('Software\Base\Connect' , true);

PathEdit.Text:=Reg.ReadString('Base P');

Reg.CloseKey;
Reg.Free;

Ладно не беда, если не получиться так все и оставлю (((

Всем большое спасибо за помощь ))))

Последний раз редактировалось Oleg Romanchuk; 07.06.2009 в 13:20.
Oleg Romanchuk вне форума Ответить с цитированием
Старый 07.06.2009, 13:07   #10
Neeter
Форумчанин
 
Аватар для Neeter
 
Регистрация: 22.02.2009
Сообщений: 875
По умолчанию

И где ошибка происходит? вообще вот так должно работать:
Код:
Reg:=TRegistry.Create;
Reg.OpenKey('Software\Base\Connect' , true);

PathEdit.Text:=GetPath(Reg.ReadString('Base P'));

Reg.CloseKey;
Reg.Free;
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Neeter вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Замена (по формату ing60 Microsoft Office Excel 8 22.04.2009 14:15
ЗАМЕНА ing60 Microsoft Office Excel 3 22.04.2009 12:41
Замена кода программы с Delhi5 на Delhi7 либо замена базы данных с Acessa на MySQL DorianLeroy Фриланс 8 18.02.2009 18:52
Замена Патрон Общие вопросы Delphi 6 05.11.2008 15:45
Замена Dr.Badnezz Общие вопросы Delphi 11 23.09.2008 17:17