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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.04.2009, 21:16   #1
1o1man
Пользователь
 
Регистрация: 09.12.2007
Сообщений: 49
По умолчанию считать данные из переменной типа String

Надо каким-то образом вставлять вместо path его значение. а как это сделать я не знаю. устал гуглить((( REG.WriteString( 'spath', path )

или как можно по-другому сделать это? в общем надо открыть файл и запомнить путь, чтобы при следующем включении программы не надо было путь выбирать, если с тем же файлом хотим продолжить работать. может надо лучше ini файл использовать? если да, то что в нем писать и что/как считывать при запуске программы?


Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
Path:=ExtractFilePath(Application.ExeName);
path:=path + Application.ExeName;
REG := TRegistry.Create;
  try
    if not REG.OpenKey(
      'Software\Microsoft\Windows NT\CurrentVersion\Windows', False )
    then Exit;
    try
      REG.WriteString( 'spath', path );
    finally
      REG.CloseKey;
    end;
  finally
    end;
end;

Последний раз редактировалось 1o1man; 17.04.2009 в 21:31.
1o1man вне форума Ответить с цитированием
Старый 17.04.2009, 21:42   #2
AlexanderKs
Пользователь
 
Регистрация: 26.02.2009
Сообщений: 60
По умолчанию

Вот процедура:

Код:
procedure TForm1.Reestor(Record: boolean);
var
Rees:TRegIniFile;
begin
if Record=true then begin
  Rees:=TRegIniFile.Create('Path');
    Rees.OpenKey('Key',true);
    Rees.WriteString('Options','Date',Edit1.Text);
  Rees.Free;
end;
if Record=false then begin
  Rees:=TRegIniFile.Create('Path');
    Rees.OpenKey('Key',true);
    Edit1.Text:=Rees.ReadString('Options','Date','C:\');
  Rees.Free;
end;
end;
Вместо Edit1.Text поставь свои переменные.
Если Record = true, процедура производит запись пути в реестр, если false - читает записанный путь
AlexanderKs вне форума Ответить с цитированием
Старый 17.04.2009, 21:45   #3
AlexanderKs
Пользователь
 
Регистрация: 26.02.2009
Сообщений: 60
По умолчанию

"procedure TForm1.Reestor(Record: boolean);"
С Record я, конечно, погорячился...
По другому переменную назвать нужно.
AlexanderKs вне форума Ответить с цитированием
Старый 17.04.2009, 21:49   #4
1o1man
Пользователь
 
Регистрация: 09.12.2007
Сообщений: 49
Подмигивание

спасибо, сейчас попробую
1o1man вне форума Ответить с цитированием
Старый 17.04.2009, 21:57   #5
1o1man
Пользователь
 
Регистрация: 09.12.2007
Сообщений: 49
По умолчанию

блин, тут затупил
if OpenDialog1.Execute then
Path:=ExtractFilePath(Application.E xeName);
path:=path + Application.ExeName;

он выдает в любом случае путь экзешника этой проги (которую запустили), а надо чтоб выдавал путь файла, который я выбрал. что подправить надо?
1o1man вне форума Ответить с цитированием
Старый 17.04.2009, 21:59   #6
AlexanderKs
Пользователь
 
Регистрация: 26.02.2009
Сообщений: 60
По умолчанию

Код:
if OpenDialog1.Execute then
Path:=OpenDialog1.FileName;
AlexanderKs вне форума Ответить с цитированием
Старый 17.04.2009, 22:04   #7
1o1man
Пользователь
 
Регистрация: 09.12.2007
Сообщений: 49
По умолчанию

Код:
procedure TForm1.Reestor(Recor: boolean);
var
Rees:TRegIniFile;
begin
if Recor=true then begin
  Rees:=TRegIniFile.Create('Path');
    //REes.RootKey:=HKEY_LOCAL_MACHINE;   когда такую штуку вставляю, то ошибка, а без нее ниче не записывается и при включенении не считывается
    Rees.OpenKey('Key',true);
    Rees.WriteString('Options','Date',Path);
  Rees.Free;
end;
if Recor=false then begin
    Rees:=TRegIniFile.Create('Path');
   // REes.RootKey:=HKEY_LOCAL_MACHINE;
    Rees.OpenKey('Key',true);
    Path:=Rees.ReadString('Options','Date','C:\');   \\а почему тут 'C:\'  ?
  Rees.Free;
end;
end;
он вообще куда должен сохраняться то?)))))
ааааааа
1o1man вне форума Ответить с цитированием
Старый 17.04.2009, 22:08   #8
AlexanderKs
Пользователь
 
Регистрация: 26.02.2009
Сообщений: 60
По умолчанию

После того, как сохранил путь к файлу в переменную Path, вызови эту процедуру в следующей строчке (напиши Reestor(true));
Она запишет путь к выбранному файлу в реестр.
AlexanderKs вне форума Ответить с цитированием
Старый 17.04.2009, 22:13   #9
1o1man
Пользователь
 
Регистрация: 09.12.2007
Сообщений: 49
По умолчанию

(напиши Reestor(true));
сделал я так, а в ини файл сделал так...

procedure TForm1.FormCreate(Sender: TObject);
var Ini:Tinifile;
begin
....
Reestor(false);

при запуске программы не вылезает никуда путь этот(
1o1man вне форума Ответить с цитированием
Старый 17.04.2009, 22:13   #10
AlexanderKs
Пользователь
 
Регистрация: 26.02.2009
Сообщений: 60
По умолчанию

Чтобы считать путь из реестра при запуске программы, вызови эту процедуру из события Form1.OnCreate ("при создании формы"). Напиши в это событие следующее: Reestor(false). Процедура прочитает сохраненный в реестр путь и сохранит его в Path. Если программа запущена первый раз, в Path будет сохранено "C:\".
AlexanderKs вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как считать данные с БД в WebBrowser? tsergey Общие вопросы Delphi 14 13.04.2009 03:56
Определение типа переменной Игорь007 Общие вопросы C/C++ 7 10.01.2009 13:01
Как из переменной типа String удалить пару слов zotox Помощь студентам 3 30.11.2008 19:14
Считать данные из *.wav Kor Мультимедиа в Delphi 0 05.10.2008 17:25
Как считать данные из Edit? Svop Компоненты Delphi 11 20.11.2006 16:45