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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 16.05.2014, 09:52   #11
Spiritas
Пользователь
 
Регистрация: 05.12.2010
Сообщений: 22
По умолчанию

то есть мне надо написать
Ini := TIniFile.Create( ExtractFilePath(Application.ExeName )+'/test/*.ini' )
чтоб он из папки тест брал тот ini файл который я выбираю или как?
то есть что то вроде

Код:
procedure TForm1.FormCreate(Sender: TObject);
const DefaulttimeValue = 60;
var Inif : TIniFile;
begin
  Inif := TIniFile.Create( ExtractFilePath(Application.ExeName)+'/test/1.ini' );
  time_remain := inif.ReadInteger('Timer','time', DefaulttimeValue);
  Inif.Free;
  label5.caption:= 'Время до окончания: '  +IntToStr(time_remain);
  Timer1.Interval := 1000; 
end;
потому что если я напишу туда /test/1.ini он выбирает именно его а мне нужно что он выбирал тот который я выбираю через open dialog указанный в прошлом сообщении

Последний раз редактировалось Spiritas; 16.05.2014 в 10:02.
Spiritas вне форума
Старый 16.05.2014, 10:01   #12
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

OpenDialog.FileName
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума
Старый 16.05.2014, 10:32   #13
Spiritas
Пользователь
 
Регистрация: 05.12.2010
Сообщений: 22
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
OpenDialog.FileName
всё равно он игнорирует/ я понимаю что пишу что то не так но не понимаю где
Inif := TIniFile.Create( ExtractFilePath(OpenDialog1.FileNam e)+'/test/' );
Spiritas вне форума
Старый 16.05.2014, 10:37   #14
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Spiritas Посмотреть сообщение
всё равно он игнорирует/ я понимаю что пишу что то не так но не понимаю где
Inif := TIniFile.Create( ExtractFilePath(OpenDialog1.FileNam e)+'/test/' );
Какой именно файл Вы выбираете в OpenDialog1 ?

Если Вы выбираете именно нужный Вам ini файл, то достаточно его и указать:
Код:
  Inif := TIniFile.Create( OpenDialog1.FileName );
Serge_Bliznykov вне форума
Старый 16.05.2014, 10:44   #15
Spiritas
Пользователь
 
Регистрация: 05.12.2010
Сообщений: 22
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Какой именно файл Вы выбираете в OpenDialog1 ?

Если Вы выбираете именно нужный Вам ini файл, то достаточно его и указать:
Код:
  Inif := TIniFile.Create( OpenDialog1.FileName );
так и написал но он всё равно игнорирует может дать вам полностью весь код?
Spiritas вне форума
Старый 16.05.2014, 10:46   #16
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Spiritas Посмотреть сообщение
так и написал но он всё равно игнорирует
А Вы выбираете в OpenDialog именно НУЖНЫЙ ini файл?!

Цитата:
Сообщение от Spiritas Посмотреть сообщение
может дать вам полностью весь код?
давайте, конечно!!
Чем больше исходных данных, тем проще и точнее можно локализовать проблему!
Serge_Bliznykov вне форума
Старый 16.05.2014, 10:53   #17
Spiritas
Пользователь
 
Регистрация: 05.12.2010
Сообщений: 22
По умолчанию

первый кусок кода
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, iniFiles, StdCtrls, ComCtrls, ExtCtrls, Menus, jpeg;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    RadioButton4: TRadioButton;
    RadioButton5: TRadioButton;
    Button2: TButton;
    RadioButton6: TRadioButton;
    RadioButton7: TRadioButton;
    StatusBar1: TStatusBar;
    Timer1: TTimer;
    Label5: TLabel;
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    OpenDialog1: TOpenDialog;
    Panel1: TPanel;
    Image1: TImage;
    Panel2: TPanel;
    procedure Button2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure N1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  inif:TIniFile;
  time_remain : integer;
  IntNextQuest, ball, kol,i:integer;
  AnswerStr, AnswerUserStr, result:String;
implementation

{$R *.dfm}



procedure TForm1.Button2Click(Sender: TObject);
begin
inc(IntNextQuest);
kol:=strtoint(inif.ReadString('QuestCount','value',''));
if RadioButton4.Checked = True then
if AnswerStr = Radiobutton4.Caption then
    begin
     panel1.caption := IntToStr(StrToInt(panel1.caption) + 1);
    inc(ball);
   end;
if RadioButton5.Checked = True then
  if AnswerStr = Radiobutton5.Caption then
    begin
        panel1.caption := IntToStr(StrToInt(panel1.caption) + 1);
    inc(ball);
    end;
if RadioButton6.Checked = True then
  if AnswerStr = Radiobutton6.Caption then
    begin
      panel1.caption := IntToStr(StrToInt(panel1.caption) + 1);
    inc(ball);
    end;
if RadioButton7.Checked = True then
  if AnswerStr = Radiobutton7.Caption then
    begin
        panel1.caption := IntToStr(StrToInt(panel1.caption) + 1);
    inc(ball);
    end;
  Memo1.Lines.Clear;
  Memo1.Lines.Add(inif.ReadString('quest'+inttostr(IntNextQuest ),'quest','ничего нет')));
  RadioButton4.Caption:=(inif.ReadString('quest'+inttostr(IntNextQuest),'answer1','ничего нет'));
  RadioButton5.Caption:=(inif.ReadString('quest'+inttostr(IntNextQuest),'answer2','ничего нет')));
  RadioButton6.Caption:=(inif.ReadString('quest'+inttostr(IntNextQuest),'answer3','ничего нет')));
  RadioButton7.Caption:=(inif.ReadString('quest'+inttostr(IntNextQuest),'answer4','ничего нет')));
  AnswerStr:=(inif.ReadString('quest'+inttostr(IntNextQuest),'prav','ничего нет')));
  if kol = IntNextQuest-1 then
  begin
  showmessage('Вопросов: '+inif.ReadString('QuestCount','value','')+#13+'Правильно: '+inttostr(ball));
  Timer1.Enabled:=false;
  Memo1.Visible:=False;
  RadioButton4.Visible:=False;
  RadioButton5.Visible:=False;
  RadioButton6.Visible:=False;
  RadioButton7.Visible:=False;
  Button2.Visible:=False;
  end;
end;
Spiritas вне форума
Старый 16.05.2014, 10:54   #18
Spiritas
Пользователь
 
Регистрация: 05.12.2010
Сообщений: 22
По умолчанию

второй
Код:
procedure TForm1.FormCreate(Sender: TObject);
const DefaulttimeValue = 60;
var Inif : TIniFile;
begin
Inif := TIniFile.Create( OpenDialog1.FileName );
  time_remain := inif.ReadInteger('Timer','time', DefaulttimeValue);
  Inif.Free;
  label5.caption:= 'время до окончания: '  +IntToStr(time_remain);
  Timer1.Interval := 1000; 

ball:=0;
end;

function IntToStr2(I, C: Integer): String;
begin
  Result := IntToStr(I);
  while Length(Result) < C do
    Result := Result + '0';
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Timer1.Enabled := true;
  Dec(time_remain);
 if time_remain>=0 then
  label5.caption:= 'время до окончания: '  +IntToStr(time_remain)
  else
  begin
      Timer1.Enabled := false;
showMessage('Время вышло'+#13+'тест окончен!');
showmessage('вопросов: '+inif.ReadString('QuestCount','value','')+#13+'правильно: '+inttostr(ball));
end;
end;

procedure TForm1.N1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
  begin
    ball:=0;
    IntNextQuest:=1;
    Inif:= TIniFile.Create (OpenDialog1.FileName);
    Memo1.Clear;
    Memo1.Lines.Add(inif.ReadString('quest'+inttostr(IntNextQuest ),'quest','ничего нет'));
    AnswerStr:=(inif.ReadString('quest'+inttostr(IntNextQuest),'prav','ничего нет'));
    RadioButton4.Caption:=(inif.ReadString('quest'+inttostr(IntNextQuest),'answer1','ничего нет'));
    RadioButton5.Caption:=(inif.ReadString('quest'+inttostr(IntNextQuest),'answer2','ничего нет'));
    RadioButton6.Caption:=(inif.ReadString('quest'+inttostr(IntNextQuest),'answer3','ничего нет'));
    RadioButton7.Caption:=(inif.ReadString('quest'+inttostr(IntNextQuest),'answer4','ничего нет'));
    StatusBar1.Panels.Clear;
    StatusBar1.Panels.Add.Text:='всего вопросов';
       StatusBar1.Panels[0].Width:=100;
    StatusBar1.Panels.Add.Text:=(inif.ReadString('QuestCount','value',''));
    StatusBar1.Panels[1].Width:=30;

    panel1.Visible:=True;
    panel1.caption:='0';
    Memo1.Visible:=True;
    RadioButton4.Visible:=True;
    RadioButton5.Visible:=True;
    RadioButton6.Visible:=True;
    RadioButton7.Visible:=True;
    Button2.Visible:=True;
    panel2.visible:=true;
    Label5.Visible:=true;
    Timer1.Enabled:=true;
 end;
  end;
end.

Последний раз редактировалось Spiritas; 16.05.2014 в 10:57.
Spiritas вне форума
Старый 16.05.2014, 11:10   #19
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ну так понятно.

Код:
procedure TForm1.FormCreate(Sender: TObject);
const DefaulttimeValue = 60;
var Inif : TIniFile;
begin
Inif := TIniFile.Create( OpenDialog1.FileName );
  time_remain := inif.ReadInteger('Timer','time', DefaulttimeValue);
  Inif.Free;
  label5.caption:= 'время до окончания: '  +IntToStr(time_remain);
  Timer1.Interval := 1000; 

ball:=0;end;
Так нельзя использовать OpenDialog!!!
В момент создания формы (событие onCreate формы) в нём нет нужных данных!!!!!

нужно примерно так:
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
  label5.caption:=  '';
  Timer1.Interval := 1000; 
  Timer1.Enabled :=  false; {выключаем таймер, если он, вдруг, был включён}
  ball:=0;
end;

.....
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Dec(time_remain);
  if time_remain>=0 then
    label5.caption:= 'время до окончания: '  +IntToStr(time_remain)
  else
  begin
      Timer1.Enabled := false;
showMessage('Время вышло'+#13+'тест окончен!');
showmessage('вопросов: '+inif.ReadString('QuestCount','value','')+#13+'правильно: '+inttostr(ball));    <<<< лучше количество вопросов 
             прочитать в переменную, чтобы не держать открытым IniF 
end;
end;

procedure TForm1.N1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
  begin
    ball:=0;
    IntNextQuest:=1;
    Inif:= TIniFile.Create (OpenDialog1.FileName);

    time_remain := inif.ReadInteger('Timer','time', DefaulttimeValue);
    label5.caption:= 'время до окончания: '  +IntToStr(time_remain);

    Memo1.Clear;
    Memo1.Lines.Add(inif.ReadString('quest'+inttostr(IntNextQuest ),'quest','ничего нет'));
    AnswerStr:=(inif.ReadString('quest'+inttostr(IntNextQuest),'prav','ничего нет'));
.....
Serge_Bliznykov вне форума
Старый 16.05.2014, 11:21   #20
Spiritas
Пользователь
 
Регистрация: 05.12.2010
Сообщений: 22
По умолчанию

Извините что так долго мучал спасибо теперь всё работает) тему можно закрывать
Spiritas вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перестановка байтов в обратном порядке с++ Niklitel Помощь студентам 1 17.03.2014 09:10
Столбцы в обратном порядке Арианна Microsoft Office Excel 5 16.01.2014 06:05
переписать массив в обратном порядке Настя22 Паскаль, Turbo Pascal, PascalABC.NET 1 25.02.2011 11:01
печать страниц в обратном порядке Олекса Microsoft Office Word 4 30.03.2009 09:45
В обратном порядке mari.ha Общие вопросы C/C++ 7 25.12.2008 21:36