Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 18.11.2008, 13:22
Deathwatcher Deathwatcher вне форума
Прохожий
 
Регистрация: 18.11.2008
Сообщения: 2
Репутация: 10
По умолчанию две программы, один файл

Господа... я с дурацким вопросом...

Я создаю файл с записями. А дальше начинаются чудеса.
Если открывать файл программой, которая его создавала, то при куску кода

Код:
i:=0;
Assignfile (Myfile, 'voprosiki.ggt');
reset(myfile);
while not Eof(myfile) do
    begin
       read(myfile,quest[i]);
       if quest[i].index<>0 then
       listbox1.Items.Add('Вопрос №'+IntToStr(quest[i].index));    //index - порядковый номер вопроса. Нулевой вопрос содержит инфу о тесте
       inc(i);
    end;

В листбоксе появляется список из 5 вопросов. Следующего вида.

Вопрос №1
Вопрос №2
Вопрос №3
Вопрос №4
Вопрос №5

Именно таким я его и создавал. Если открыть его второй программой, то при идентичном куске кода список пуст!!! т.е. если снять проверку на нулевой индекс, получится

Вопрос №0
Вопрос №0
Вопрос №0
Вопрос №0
Вопрос №0
Вопрос №0

Далее чудеса продолжаются. Если второй прогой подредактировать файл (ответить на вопросы и дозаписать в этот файл ответы), то вторая прога будет отображать список из 10 пунктов, а первая прога выдаст точно такой же список, как и до редактирования!!!

Поясните, пожалуйста... что ж такое-то (((
Ответить с цитированием
  #2  
Старый 18.11.2008, 14:34
san-46 san-46 вне форума
Активный
 
Регистрация: 25.04.2008
Сообщения: 383
Репутация: 33
По умолчанию

В первой программе index меняется, во второй нет (всегда равен 0).
И что за переменная "guest"? Какова ее роль?
__________________
Не забывайте делать резервные копии
Ответить с цитированием
  #3  
Старый 18.11.2008, 16:06
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,036
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Несоответсвие процедур записи и чтения.
Для анализа необходим полный код.

Очень внимательно смотри что ты пишешь и что читаешь.
Ответить с цитированием
  #4  
Старый 19.11.2008, 11:48
Deathwatcher Deathwatcher вне форума
Прохожий
 
Регистрация: 18.11.2008
Сообщения: 2
Репутация: 10
По умолчанию

поразбиравшись в проге я выяснил, что вот такой код

Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    ListBox1: TListBox;
    ListBox2: TListBox;
    ListBox3: TListBox;
    ListBox4: TListBox;
    ListBox5: TListBox;
    ListBox6: TListBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    procedure FormActivate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

type
  TQuestion = Record
    index:integer;
    tekst:string[255];
    right:string[255];
    wrong1:string[255];
    wrong2:string[255];
    wrong3:string[255];
  end;

var
  Form1: TForm1;
  quest: array of TQuestion;
  MyFile:file of TQuestion;
  count, maxcount:integer;

implementation

{$R *.dfm}

procedure TForm1.FormActivate(Sender: TObject);
begin
count:=0;
Assignfile (Myfile, 'voprosiki.ggt');
reset(myfile);
SetLength(quest,2);
read(myfile,quest[0]);
maxcount:=StrToInt(quest[0].right);
SetLength(quest,maxcount+1);
reset(myfile);

while not Eof(myfile) do
begin
read(myfile,quest[count]);
listbox1.Items.Add(IntToStr(quest[count].index));
listbox2.Items.Add(quest[count].tekst);
listbox3.Items.Add(quest[count].right);
listbox4.Items.Add(quest[count].wrong1);
listbox5.Items.Add(quest[count].wrong2);
listbox6.Items.Add(quest[count].wrong3);
inc(count);
end;

end;

end.

считывает файл верно. Однако если подобное считывание (от объявления типов, массивов и переменных до самого считывания) разместить на второй форме проекта, которая вызывается из основной посредствам

Код:
form2.showmodal  

То файл не считывается!...
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:03.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter