Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
18 / 15 / 1
Регистрация: 10.01.2010
Сообщений: 252
1

При запуске выдает ошибку

24.03.2011, 18:00. Показов 984. Ответов 8
Метки нет (Все метки)

Вот код:
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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
#include <string>
#include <stdio.h>
#define filename "avtopark.dat"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
void TForm1::OutPutTbl(void)
{
    StringGrid1->Cells[0][Kol+1]=mas[Kol].FName;
    StringGrid1->Cells[1][Kol+1]=mas[Kol].Mark;
    StringGrid1->Cells[2][Kol+1]=mas[Kol].Data;
    StringGrid1->Cells[3][Kol+1]=mas[Kol].Dn;
    StringGrid1->Cells[4][Kol+1]=mas[Kol].Mesto;
    StringGrid1->Cells[5][Kol+1]="hm..";
    StringGrid1->Cells[5][Kol+1]=mas[Kol].Summa;
}
void __fastcall TForm1::FormShow(TObject *Sender)
{
    StringGrid1->Cells[0][0]="Ф.И.О";
    StringGrid1->Cells[1][0]="Марка";
    StringGrid1->Cells[2][0]="Въезд";
    StringGrid1->Cells[3][0]="Оплата до";
    StringGrid1->Cells[4][0]="Место";
    //StringGrid1->Cells[5][0]="Ф.И.О";
    StringGrid1->Cells[6][0]="Сумма";
    SizeSt=sizeof(struct avto);
    Kol=0;
    if((Aut=fopen(filename,"r"))==NULL)
    {
        fopen(filename,"w");
        fclose(Aut);
    }
    else
    {
        for(;;)
        {
            fread(&mas[Kol],SizeSt,1,Aut);
            if(feof(Aut)) break;
            else OutPutTbl();
            Kol++;
        }
        fclose(Aut);
    }
    if (Kol==0)
        Panel1->Caption="1";
    else Panel1->Caption=IntToStr(Kol+1);
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::SpeedButton4Click(TObject *Sender)
{
    if((Aut=fopen(filename,"a"))==NULL)
    {
         MessageDlg("Невозможно открыть файл",
                    mtInformation, TMsgDlgButtons()<<mbOK, 0);
        return;
    }
    //Проверка не пусты ли поля ввода...
    if ((Ed_SName->Text).Length()==0 || (Ed_FName->Text).Length()==0 ||
        (Ed_TName->Text).Length()==0 || (Ed_Land->Text).Length()==0 ||
        (Ed_Town->Text).Length()==0 || (Ed_Street->Text).Length()==0 ||
        (Ed_House->Text).Length()==0 || (Ed_GosNom->Text).Length()==0 ||
        (Ed_Vid->Text).Length()==0 ||(Ed_Mark->Text).Length()==0 ||
        (Ed_Col->Text).Length()==0 || (Ed_Dn->Text).Length()==0 ||
        (Ed_NombPassp->Text).Length()==0)
            return;
    //Считывание сведений о владельце
    mas[Kol].SName=Ed_SName->Text;
    mas[Kol].FName=Ed_FName->Text;
    mas[Kol].TName=Ed_TName->Text;
    mas[Kol].NombPassp=Ed_NombPassp->Text;
    //Считывание сведений о месте жительства
    mas[Kol].Land=Ed_Land->Text;
    mas[Kol].Town=Ed_Town->Text;
    mas[Kol].Street=Ed_Street->Text;
    mas[Kol].House=Ed_House->Text;
    //Считывание сведений о ТС
    mas[Kol].GosNom=Ed_GosNom->Text;
    mas[Kol].Mark=Ed_Mark->Text;
    mas[Kol].Col=Ed_Col->Text;
    //Считывание сведений квитанции
    mas[Kol].NombCheck=Panel1->Caption;
    mas[Kol].Data="1";//Panel5->Caption;
    mas[Kol].VidRas="1";//Ed_GosNom->Text;
    mas[Kol].Dn="1";//Panel4->Caption;
    mas[Kol].Summa="1";//Panel2->Caption;
    mas[Kol].Mesto="1";//Panel3->Caption;
    mas[Kol].Summa="1";
    //Если количество строк в таблице меньше введенных пользователей
    //тогда увеличим их на 1
    if (Kol+1>StringGrid1->RowCount)
          StringGrid1->RowCount++;
    //Вывод данных в таблицу
    OutPutTbl();
    fwrite(&mas[Kol],SizeSt,1,Aut); //Запись данных в файл
    fclose(Aut);
    Kol++;
    //Очистка полей ввода
    Ed_SName->Clear();
    Ed_FName->Clear();
    Ed_TName->Clear();
    Ed_Land->Clear();
    Ed_Town->Clear();
    Ed_Street->Clear();
    Ed_House->Clear();
    Ed_GosNom->Clear();
    Ed_Vid->Clear();
    Ed_Mark->Clear();
    Ed_Col->Clear();
    Ed_Dn->Clear();
    Ed_NombPassp->Clear();
    Ed_SName->SetFocus();
}
//---------------------------------------------------------------------------
Проблема в том что при запуске программы выдает ошибку access violation at address in module rtl120.bpl, если в файле что-то записано, а если я его удалю все норм.
В чем проблема???
0
Заказывайте контрольные, курсовые и дипломы здесь.
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.03.2011, 18:00
Ответы с готовыми решениями:

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

При компиляции выдает ошибку:
При компиляции выдает ошибку: Unit1.cpp(20): E2015 Ambiguity between '_fastcall IntToStr(unsigned...

Функция выдает ошибку при автозапуске
Всем добрый вечер, а кто с Зимбабве доброе утро!:senor: Вот так я записываю и в txt важную...

При попытке компилировать выдает ошибку
Помогите, пожалуйста... Не получается запустить программу на C++ Builder 6.0 При попытке...

8
iama
24.03.2011, 18:10
  #2

Не по теме:

почитайте про китайский код (у вас - строка 71-78)

0
18 / 15 / 1
Регистрация: 10.01.2010
Сообщений: 252
24.03.2011, 18:13  [ТС] 3
Меня щас не волнует написание. Это так набросок. Меня интересует причина ошибки....
И как ты предложишь заменить этот "китайский код"?
0
1335 / 986 / 119
Регистрация: 30.07.2010
Сообщений: 5,297
24.03.2011, 18:17 4
PodOnoK, да хоть бы пробежкой по всем компонентам формы с статичным тагом, который ты задашь этим эдитам. а если вдруг тебе хочется узнать причину ошибки, я не вижу причин, по которым ты скрываешь то, что тебе говорит отладчик
0
LK
Заблокирован
24.03.2011, 18:54 5
Цитата Сообщение от iama Посмотреть сообщение
пробежкой по всем компонентам формы с статичным тагом
это как?
0
1335 / 986 / 119
Регистрация: 30.07.2010
Сообщений: 5,297
24.03.2011, 19:14 6
LK, проставляете нужным эдитам таг (скажем, от 1 до 10), в цикле для каждого Form1.Components, если его таг входит в границы, приводим TComponent к TEdit да и делаем всё, что нужно
0
18 / 15 / 1
Регистрация: 10.01.2010
Сообщений: 252
24.03.2011, 21:39  [ТС] 7
А может программа ругаться из-за того, что переменные в массиве структур типа String??
0
LK
Заблокирован
24.03.2011, 22:01 8
Цитата Сообщение от iama Посмотреть сообщение
LK, проставляете нужным эдитам таг (скажем, от 1 до 10), в цикле для каждого Form1.Components, если его таг входит в границы, приводим TComponent к TEdit да и делаем всё, что нужно
я про "статичный" тег не понял , спасибо.
0
1335 / 986 / 119
Регистрация: 30.07.2010
Сообщений: 5,297
24.03.2011, 22:07 9
LK, я имел в виду, что он проставляется один раз и не изменяется
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.03.2011, 22:07

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

Выдает ошибку при формировании формы
//--------------------------------------------------------------------------- #include &lt;vcl.h&gt; ...

Выдает ошибку при заполнении матрицы
Добрый день! Есть задание Среди тех столбцов целочисленной матрицы размером NхM, которые содержат...

Почему выдает ошибку при выводе в мэмо запись?
Memo1-&gt;Lines-&gt;Append(myways.way); struct TWayBits { String way; String...

Вложенный switch выдает ошибку при компиляции Duplicate Case
int q; char v; //... switch(q){ case 0: { switch(v){ case '0'||'1'||'2': {}...

При компиляции выдает ошибку!Программа должна писать число словами.
Начала делать курсовой(еще не закончен, программа готава на четверть), все шло нормально, а потом...

выдает ошибку при переключении radioBatton и как сделать связь в БД многие к одному
Есть 3 radiobatton 2 DBGrida то есть мне нужно сделать так, чтобы при переключениях баттонов в...


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

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

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