Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 11.10.2012
Сообщений: 8
1

Исправление ошибок. Файлы. Структура

23.02.2013, 01:44. Просмотров 603. Ответов 1
Метки нет (Все метки)

Прошу, помогите найти ошибки. Первые попытка ваяния на билдере. Записывает криво, считывает криво в чем дело не пойму.

Условие задачи:
Для книг, хранящихся в библиотеке, задаются: регистрационный номер книги, автор, название, год издания, издательство, количество страниц. Вывести список книг с фамилиями авторов в алфавитном порядке(к этой части еще не приступал), изданных после заданного года. Требование: все через файлы, данные в структуре.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
#include "stdio.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
typedef struct {
        int reg;
        char avtor[15];
        char name[15];
        int  year;
        char isdat[10];
        int kolstr;
    } Tlib;
Tlib lib[100];
String FNam,FName2;
FILE *L;
FILE *N;
int nzap=0;
bool flag;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 
 
ListView1->Items->Add()->Caption=Edit2->Text.t_str();
ListView1->Items->Item[nzap]->SubItems->Add(StrToInt(Edit1->Text));
ListView1->Items->Item[nzap]->SubItems->Add(Edit3->Text.t_str());
ListView1->Items->Item[nzap]->SubItems->Add(StrToInt(Edit4->Text));
ListView1->Items->Item[nzap]->SubItems->Add(Edit5->Text.t_str());
ListView1->Items->Item[nzap]->SubItems->Add(StrToInt(Edit6->Text));
 
nzap++;
 
lib[nzap].reg=StrToInt(Edit1->Text);
strcpy(lib[nzap].avtor,Edit2->Text.t_str());
strcpy(lib[nzap].name,Edit3->Text.t_str());
lib[nzap].year=StrToInt(Edit4->Text);
strcpy(lib[nzap].isdat,Edit5->Text.t_str());
lib[nzap].kolstr=StrToInt(Edit6->Text);
 
 
 
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
 
if (OpenDialog1->Execute())
{
FNam=OpenDialog1->FileName;
L=fopen(FNam.t_str(),"r");
if(!L) return;
nzap=0;
while (!feof(L))
  {
fread(&lib[nzap],sizeof(lib),1,L);
 
ListView1->Items->Add()->Caption=lib[nzap].avtor;
ListView1->Items->Item[nzap]->SubItems->Add(IntToStr(lib[nzap].reg));
ListView1->Items->Item[nzap]->SubItems->Add(lib[nzap].name);
ListView1->Items->Item[nzap]->SubItems->Add(IntToStr(lib[nzap].year));
ListView1->Items->Item[nzap]->SubItems->Add(lib[nzap].isdat);
ListView1->Items->Item[nzap]->SubItems->Add(IntToStr(lib[nzap].kolstr));
 
nzap++;
 
  }
fclose(L);
 }
 
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
if(SaveDialog1->Execute())
   {
FName2=SaveDialog1->FileName;
  N=fopen(FName2.t_str(),"w");
 
for(int i=1;i<nzap+1;i++)
{
fwrite(&lib[nzap],sizeof(lib),1,N);
}
fclose(N);
}
 
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button5Click(TObject *Sender)
 
{
 
FNam=OpenDialog1->FileName;
  N=fopen(FNam.t_str(),"w");
if(!L) return;
for(int i=0;i<nzap;i++)
{
fwrite(&lib[nzap],sizeof(lib),1,L);
}
fclose(L);
 
}
//---------------------------------------------------------------------------
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.02.2013, 01:44
Ответы с готовыми решениями:

Исправление ошибок
Здравствуйте.Помогите, пожалуйста,исправить ошибки. ...

Исправление ошибок с функцией
Пишу сейчас курсовую работу. Время к сдаче 2 дня а у меня не хочет работать функция для вычисления...

Пишу компонент. Исправление ошибок.
Спасите форумчани прошу... Пытаюс сделать такое, пишу обиект и класс для обиекта, но не работает...

Исправление ошибок
Помогите разобраться, в чём моя ошибка. Не хочет компилировать. #include &lt;iostream&gt; #include...

1
Эксперт С++
8341 / 6090 / 607
Регистрация: 10.12.2010
Сообщений: 28,326
Записей в блоге: 29
23.02.2013, 02:34 2
Ошибки (дословно) ?

Добавлено через 1 минуту
Цитата Сообщение от Cavil Посмотреть сообщение
C++
1
2
3
4
5
6
Tlib lib[100]; 
String FNam,FName2; 
FILE *L; 
FILE *N; 
int nzap=0; 
bool flag;
Избегай глобальных объявлений

Добавлено через 1 минуту
C++
1
 N=fopen(FName2.t_str(),"w");
Используй
C++
1
 N=fopen(AnsiString(FName2).c_str(),"w");
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.02.2013, 02:34

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Исправление ошибок в C++
Всем доброго времени суток! У меня появился такой вопрос, есть ли в Visual Studio 8 или 10 такая...

Исправление ошибок
Какие ошибки есть в следующем коде? for (int i =О: i &lt;= phrase.size(): ++i) { cout «...

Исправление ошибок
Есть задание : Во введенной строке заменить все пробелы на запятые, а запятые на точки. Посчитать...

исправление ошибок
//funkcijas1 #include &lt;iostream&gt; using namespace std; int main() { int i,...

Исправление ошибок
Пожалуйста помогите исправить ошибки!!! #include &lt;iostream h&gt; #include &lt;stdlib h&gt; int main()...

Исправление ошибок
Помогите запустить программу #include &lt;iostream.h&gt; #include &lt;stdlib.h&gt; #include &lt;fstream.h&gt; int...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.