Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с типизированым файлом 
:(
    Опции темы
SnowSin
Дата 17.12.2009, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 6.12.2009

Репутация: нет
Всего: нет



Вот работаю щас над прогой, в которой информация заносится в тип файл и потом выводится из него, столкнулась с проблемой, у меня по при старте работы с программой она в лист боксе1 выводит фамилии, потом при щелчке на лискт бокс1 в лист боксе 2 отображаются изданияю газет которые выписывает эта фамилия. Проблема такая, он не правильно отображает инфу в изданиях. Кому какие издания пренадлежат определяется правильно, но вот как я щелкаю на издание и информация из него должна выводится в эдиты он выводит не ту инфу, помогите ПОЖАЛУЙСТА!!


Код

procedure TForm1.ListBox1Click(Sender: TObject);
begin
Edit1.Clear;
Edit2.Clear;{Очистка едитов и мемо в которые будет выводится информация из файла}
Edit3.Clear;
Edit4.Clear;
memo2.Clear;
memo1.Clear;
edit5.Clear;
Button4.Enabled:=true;
button7.Enabled:=true;


{Открытие и чтение первого файла, и добавление его частей в эдиты и мемо}
reset(s1);
seek(s1,listbox1.ItemIndex) ; {В текстовом файле переход на название из лист бокса 1}
read(s1,q1);
edit1.Text:=q1.Fio;
edit2.Text:=q1.Nomer;
edit3.Text:=q1.kolizdan;
memo2.Text:=q1.adr;
closefile(s1); {Закрытие файла}

{Открытие и чтение второго файла}
assignfile(s2,'D:\Izdanie.dat');   {Установка связи}
if not fileexists('D:\Izdanie.dat') then rewrite(s2) else
reset(s2);{Если файл есть то ресет если нет то реврайт}
if FileSize(s2)=0 then exit {Проверка на заполненость файла}
else


{Добавление изданий во второй лист бокс}
reset(s2);
listbox2.Clear;
while not eof(s2) do begin {Цикл для полного прочтения файла}
read (s2,q2);
if q2.Fio=edit1.Text then begin
listbox2.Items.Add(q2.Nizdan);  {Добавление в лист бокс 2 итемов с названием как у издания}




Код

procedure TForm1.ListBox2Click(Sender: TObject);
begin
Edit4.Clear;
{Установка связи с файлом}
assignfile(s2,'D:\Izdanie.dat');
{Если есть то ресет если нет то реврайт}
if not fileexists('D:\Izdanie.dat') then rewrite(s2) else
reset(s2);
{Проверка на заполненость файла}
if filesize(s2)=0 then exit
else
{Поиск по итемам из лист бокса 2}
seek(s2,listbox2.ItemIndex);
read(s2,q2);
{Добавление переменых из файла в едиты и мемо}
edit4.Text:=q2.Vizdan;
memo1.Text:=q2.Mes;
edit5.Text:=q2.Fio;

closefile(s2);  {Закрытие файла}


Полная программа:
_http://ifolder.ru/15337428


PM MAIL   Вверх
~FoX~
Дата 17.12.2009, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 5
Всего: 68



 smile  Как ты все это смог запрограммить?
Вообще не смог разобраться в логике...  Где какой модуль, откуда какой тип выбирает не понятно...Где, в какой момент и какой модуль открывает файло тоже не представляется возможным отследить... 
Цитата(SnowSin @  17.12.2009,  18:43 Найти цитируемый пост)
он выводит не ту инфу

А какую "не ту"? Не понятно куда должен отправится например seek(s2,listbox2.ItemIndex)....Потому что опять же не понятно, что, когда и куда было записано.... 

1. Возьми бумажку и напиши алгоритм
2. Запрограммируй его, используя адекватные имена и не используя 10 описаний одного и того же типа
3. Не используй смещение типа seek для поиска, лучше введи еще одно поле с уникальным ID и выборку делай по нему

З.Ы.: Типичная задача на БД, так что плюнь на типизированный файлы и возьми АДО.
З.З.Ы.: Если проект коммерческий, могу написать за долю, если проект для универа могу написать за небольшое вознаграждение (хоть с тип файлами, хоть с бд) smile 


Это сообщение отредактировал(а) ~FoX~ - 17.12.2009, 18:20


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
SnowSin
Дата 17.12.2009, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 6.12.2009

Репутация: нет
Всего: нет



Проект не БД а просто лаба по программированию для работы на типизированом файле. Все работало отлично, пока в один день я не сел ее доделать, после этого перестало

Вот я ввел 2 пользователей, ввожу 3 издания у первого он их отлично отображает и инфу с них, вот ввожу другие 3 издания у втого пользователя он отображает названия изданий в лист боксах нормально, но  информацию он мне берет не из 3 изданий второго пользователя а из 3 изданий первого
PM MAIL   Вверх
~FoX~
Дата 17.12.2009, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 5
Всего: 68



SnowSin, ИМХО, где то наколося с индексами... Или где то не переписываешь структуры qwe, qwe2



--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
SnowSin
Дата 17.12.2009, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 6.12.2009

Репутация: нет
Всего: нет



Это то я понял, но я не могу понять где ошибка....раньше работало, вроде ничего не менял
PM MAIL   Вверх
Beltar
Дата 18.12.2009, 07:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 627
Регистрация: 11.1.2006

Репутация: 0
Всего: 7



F4, F7, F8 решают.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0490 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.