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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.05.2023, 16:09   #1
A_R_M1902
 
Регистрация: 29.04.2023
Сообщений: 4
По умолчанию Не видит файл Quests1.ini

При запуске программы не видит файл, и пишет "ничего нет" как было задано по окончании теста
Код:
unit UnitGeneral;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, IniFiles;

type
  TFormTestDelphi = class(TForm)
    MemoQuestTest: TMemo;
    ButtonStartTest: TButton;
    RadioGroupNumberTicket: TRadioGroup;
    RadioButtonfirstTicket: TRadioButton;
    RadioButtonLastTicket: TRadioButton;
    RadioButtonallTicket: TRadioButton;
    RadioButtonTicketQuest1: TRadioButton;
    RadioButtonTicketQuest2: TRadioButton;
    ButtonNext: TButton;
    procedure ButtonStartTestClick(Sender: TObject);
    procedure ButtonNextClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FormTestDelphi: TFormTestDelphi;
  Quests:TIniFile;
  IntnextQuest:integer;
  OtvetStr,OtvetUserStr:string;

implementation

{$R *.dfm}

procedure TFormTestDelphi.ButtonNextClick(Sender: TObject);
begin
case RadioButtonTicketQuest1.Checked of
true:begin OtvetUserStr:='A'; end;
false:begin OtvetUserStr:='B'; end;
end;
     if OtvetStr = OtvetUserStr then
      begin
        ShowMessage ('Правильный ответ!')
      end;
Inc(IntnextQuest);
     MemoQuestTest.Lines.Clear;
     Quests:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'Quests1.ini');
     MemoQuestTest.Lines.Add(Quests.ReadString('Quest'+IntToStr(IntnextQuest),'Quest','ничего нет'));
     OtvetStr:=(Quests.ReadString('Quest'+IntToStr(IntnextQuest),'Otvet','ничего нет'));
end;

procedure TFormTestDelphi.ButtonStartTestClick(Sender: TObject);
begin
IntnextQuest:=1;
if RadioButtonFirstTIcket.Checked = true then
   begin
     MemoQuestTest.Lines.Clear;
     Quests:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'Quests1.ini');
     MemoQuestTest.Lines.Add(Quests.ReadString('Quest'+IntToStr(IntnextQuest),'Quest','ничего нет'));
     OtvetStr:=(Quests.ReadString('Quest'+IntToStr(IntnextQuest),'Otvet','ничего нет'));
   end;
end;

end.
Вот сами вопросы из .ini - файла
Код:
[Quest1]
Quest=1+1 А-2, Б-4
Otvet=A

[Quest2]
Quest=2+2 А-4, Б-3
Otvet=A


[Quest3]
Quest=5+5 А-10, Б-7
Otvet=A


[Quest4]
Quest=3+3 А-6 Б-2
Otvet=A
A_R_M1902 вне форума Ответить с цитированием
Старый 03.05.2023, 17:34   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
и пишет "ничего нет"
где это в коде программы?


у вас чтение ini-файла выполняется при нажатии соответствующих кнопок
start next и только?
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 03.05.2023 в 17:38.
evg_m вне форума Ответить с цитированием
Старый 16.05.2023, 06:23   #3
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,814
По умолчанию

а сделайте-ка, чтоб у вас эти процедуры выполнялись при создании формы. так сказать, сразу при запуске программы, а не по нажатию кнопки.
-------------
такое ощущение, что именно в этой строке
Код:
Quests:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'Quests1.ini');
кроется ошибка - путь к файлу неточный.
--------------
я бы сделал путь к файлу так:
Код:
ExtractFilePath(ParamStr(0))+'Quest1.ini';
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Старый 17.05.2023, 01:58   #4
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,869
По умолчанию

Цитата:
Сообщение от NetSpace Посмотреть сообщение
такое ощущение, что именно в этой строке
Код:

Quests:=TIniFile.Create(ExtractFile Path(Application.ExeName)+'Quests1. ini');

кроется ошибка - путь к файлу неточный.
--------------
я бы сделал путь к файлу так:
Код:

ExtractFilePath(ParamStr(0))+'Quest 1.ini';
Что в лоб, что по лбу. Это одно и тоже.
northener на форуме Ответить с цитированием
Старый 18.05.2023, 00:56   #5
Viktor61
Пользователь
 
Регистрация: 05.05.2018
Сообщений: 92
По умолчанию

Цитата:
Сообщение от A_R_M1902 Посмотреть сообщение
Quests:=TIniFile.Create(ExtractFile Path(Application.ExeName)+'Quests1. ini');
После этой строки введите Showmessage(Quests); - посмотрите что из себя представляет полный путь к файлу. Не забудьте подключить модуль, где прописан Showmessage: в uses впишите Dialogs.
Есть путь к файлу правильный в рабочей версии все это нужно будет удалить.
Viktor61 вне форума Ответить с цитированием
Старый 29.05.2023, 07:32   #6
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,814
По умолчанию

ну да, в любом случае, посмотрите, что у вас за путь такой выводит. один лишний символ в виде пробела или кавычки - и всё, не арбайтен...
--------------
вот тут пробелов лишних нет в расширении файла?
Код:
Quests:=TIniFile.Create(ExtractFile Path(Application.ExeName)+'Quests1. ini');
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.

Последний раз редактировалось NetSpace; 29.05.2023 в 07:34.
NetSpace вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Спарсить то что видит снифер, но не видит браузер... FleXik Общие вопросы Delphi 8 11.12.2012 00:44
Программа не видит ini-файл AlexPv Помощь студентам 4 01.06.2012 12:01
После копирования программа не видит файл. Delphi BeLuY Помощь студентам 9 09.10.2011 15:43
убунта не видит файл ? ololo-schoolboy Linux (Ubuntu, Debian, Red Hat, CentOS, Mint) 4 20.03.2011 13:23
компилятор не видит заголовочный файл demcy Общие вопросы C/C++ 5 24.08.2010 16:18