|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
две программы, один файл
Господа... я с дурацким вопросом...
Я создаю файл с записями. А дальше начинаются чудеса. Если открывать файл программой, которая его создавала, то при куску кода Код:
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
|
|||
|
|||
В первой программе index меняется, во второй нет (всегда равен 0).
И что за переменная "guest"? Какова ее роль? Не забывайте делать резервные копии |
#3
|
|||
|
|||
Несоответсвие процедур записи и чтения.
Для анализа необходим полный код. Очень внимательно смотри что ты пишешь и что читаешь. |
#4
|
|||
|
|||
поразбиравшись в проге я выяснил, что вот такой код
Код:
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 То файл не считывается!... |