Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
293 / 199 / 6
Регистрация: 23.10.2010
Сообщений: 1,173
Записей в блоге: 1
1

Неизвестная ошибка или очередной глюк в билдере

06.09.2011, 11:39. Показов 2181. Ответов 27
Метки нет (Все метки)

Вообще пишу игру и на этапе рисовании канвы столкнулся с ошибкой вот скрин

C++
1
2
3
4
5
6
7
8
9
10
11
void __fastcall TForm1::FormPaint(TObject *Sender)
{
for(int j=0;j<1;j++)
{
    for(int i=0;i<21;i++) //вот тут  останавливается
    {
        a[i][j]=fgetc(f);
        if(a[i][j]=='1') Canvas->Draw(i*26,j*14,Bmp);
    }
}
}
Миниатюры
Неизвестная ошибка или очередной глюк в билдере  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.09.2011, 11:39
Ответы с готовыми решениями:

Очередной глюк или все так плохо?
Решил добавить с сайты страницы в Яндекс http://webmaster.yandex.ru/ плохо индексировался хотя...

Непонятный глюк в билдере
Всем привет!! Пишу прогу в bcb 6, понадобился доступ к дбф табличке, кинул Table с вкладки bde,...

Неизвестная ошибка или неисправность!
Здравствуйте! Собрал такой вот себе пк, msi z170 gaming m7, i7 6700k, 16gb ddr4 2666mhz corsair...

очередной глюк яши с индексацией
урл сайта по известным причинам показывать не буду :) купил домен 18 декабря 2006, прогнал по...

27
293 / 199 / 6
Регистрация: 23.10.2010
Сообщений: 1,173
Записей в блоге: 1
06.09.2011, 11:48  [ТС] 2
Я так думаю это итпо в памяти что то застряло, когда нажимаешь контину выходит ошибка типо мемори, если прога для полной очистки оперативки?
0
117 / 114 / 10
Регистрация: 02.06.2011
Сообщений: 280
06.09.2011, 16:59 3
ет значит что ты где-то используешь не установленый указатель.
где именно ошибка, в какой строке?
с оператвой все норм
0
LK
Заблокирован
06.09.2011, 17:16 4
Цитата Сообщение от GoldDragon Посмотреть сообщение
Я так думаю это итпо в памяти что то застряло, когда нажимаешь контину выходит ошибка типо мемори, если прога для полной очистки оперативки?
- вот почитал эти шедевры ( и это не первый случай в вашем случае) , и всякая охота думать пропала
1. пока вы не научитесь четко формулировать мысль, и не менее четко излагать ее "на бумаге", дела не будет.
2. вторая постоянная ваша проблема - это то, что вы ломитесь либо в закрытую дверь, либо пытаесь достать то, чего еще или уже нет, постоянно получая это самое гламурное AV.
3. вы поймите наконец, что всем глубоко фиолетово ваши что то и типо - пока не будет внятного описания проблемы и последовательности действий, ее вызвавших, вам сюда обращаться за помощью как бы и смысла нет, увы .
4. поставить значение меньше 21 попыток не было, "типо" 19 , или 10, и посмотреть результат ?
0
293 / 199 / 6
Регистрация: 23.10.2010
Сообщений: 1,173
Записей в блоге: 1
06.09.2011, 17:53  [ТС] 5
Цитата Сообщение от SalterOk Посмотреть сообщение
ет значит что ты где-то используешь не установленый указатель.
где именно ошибка, в какой строке?
с оператвой все норм
Вот я написал
C++
1
2
3
4
5
6
7
8
9
10
11
void __fastcall TForm1::FormPaint(TObject *Sender)
{
for(int j=0;j<1;j++)
{
        for(int i=0;i<21;i++)[B] //вот тут  останавливается[/B]
        {
                a[i][j]=fgetc(f);
                if(a[i][j]=='1') Canvas->Draw(i*26,j*14,Bmp);
        }
}
}

LK а что там сформулировать, если ничего не понятно, ошибка появилась я кинул сюда всё что можно было, А насчёт цифр я эксперементировал, до 16 норм
0
LK
Заблокирован
06.09.2011, 18:11 6
ошибка типо мемори - это что ? то, что на рисунке ?

Добавлено через 2 минуты
int j=0;j<1; - не кажется ли вам эта фраза странной ? может,
C++
1
2
3
4
if (j==0) {
  ...
  j++;
}
,
0
293 / 199 / 6
Регистрация: 23.10.2010
Сообщений: 1,173
Записей в блоге: 1
06.09.2011, 18:23  [ТС] 7
Цитата Сообщение от LK Посмотреть сообщение
ошибка типо мемори - это что ? то, что на рисунке ?
Незнаю херню какую то написал

Не по теме:

я торопился когда тему создавал, по делам надо было съездить



"Я так думаю это памяти что то застряло, когда нажимаешь контину выходит ошибка на рисунке, если прога для полной очистки оперативки?"

Цитата Сообщение от LK Посмотреть сообщение
if (j==0) {
* ...
* j++;
}
попробовал поменять не получилось, странно конечно что до цифры 16 всё работает, а после нет....
0
22 / 22 / 1
Регистрация: 04.01.2011
Сообщений: 67
06.09.2011, 18:23 8
В общем вот решение проблемы:
Измени там где вылетает ошибка типо мемори что-то на что-то другое, может мемори вылетать не станет.

А по делу - как заметил LK, без внятной формулировки Вашего вопроса, невозможно Вам помочь. "Что-то где-то не работает". Как тут поможешь? Не говоря уже о том, что здесь люди не обязаны никому ничем и просто делятся своим опытом. А смотря на Ваши сообщения
"Ну блин 36 просмотров и что никто не знает чтоли???"
отбивает любое желание Вам помогать.
0
293 / 199 / 6
Регистрация: 23.10.2010
Сообщений: 1,173
Записей в блоге: 1
06.09.2011, 18:25  [ТС] 9
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
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
#include "stdio.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
bool LeftK,RightK;
FILE *f;
char a[1][20];
Graphics::TBitmap *Bmp;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
if(LeftK){Shape1->Left-=10;}
if(RightK){Shape1->Left+=10;}
if(Shape1->Left<0) Shape1->Left=0;
if(Shape1->Left>639) Shape1->Left=639;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift)
 
{
    switch(Key)
    {
        case 37: LeftK=TRUE; break;
        case 39: RightK=TRUE; break;
    }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormKeyUp(TObject *Sender, WORD &Key, TShiftState Shift)
{
    switch(Key)
    {
        case 37: LeftK=FALSE; break;
        case 39: RightK=FALSE; break;
    }
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Bmp=new Graphics::TBitmap();
Bmp->LoadFromFile("block.bmp");
f=fopen("1.txt","r");
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
fclose(f);
Bmp=NULL;
delete Bmp;
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::FormPaint(TObject *Sender)
{
for(int j=0;j<1;j++)
{
    for(int i=0;i<21;i++)
    {
        a[i][j]=fgetc(f);
        if(a[i][j]=='1') Canvas->Draw(i*26,j*14,Bmp);
    }
}
}
вот что написано в файле

11111111111111111111


Может так что то прояснится, кому не трудно попробуйте у себя вот код
0
LK
Заблокирован
06.09.2011, 18:56 10
попробуйте у себя вот код
- для этого надо создавать проект и прописывать процедуры, не проще вам было выложить свой готовый проект для тестирования ?
херню какую то написал
- ага , а вы разбирайтесь
0
293 / 199 / 6
Регистрация: 23.10.2010
Сообщений: 1,173
Записей в блоге: 1
06.09.2011, 19:05  [ТС] 11
Вот сам проект...
Вложения
Тип файла: rar Арканоид.rar (86.1 Кб, 9 просмотров)
0
117 / 114 / 10
Регистрация: 02.06.2011
Сообщений: 280
06.09.2011, 19:11 12
ну так лучше
ошибка вот где:
у тебя массив объявлен как
C++
1
char a[1][20];
а используется так
C++
1
2
3
4
5
6
7
8
for(int j=0;j<1;j++)
{
        for(int i=0;i<21;i++)
        {
                a[i][j]=fgetc(f);
                if(a[i][j]=='1') Canvas->Draw(i*26,j*14,Bmp);
        }
}
тоесть на второй раз исполнения цикла у тебя i=1 а в описании совсем другое(может местами перепутал??)
и зачем именно char a[1][20] а не char a[20];
0
LK
Заблокирован
06.09.2011, 19:15 13
case 37: LeftK=TRUE; break;
- 37,39 - это что ?
0
117 / 114 / 10
Регистрация: 02.06.2011
Сообщений: 280
06.09.2011, 19:23 14
и еще тут за граници вылазит тоже
C++
1
for(int i=0;i<21;i++)
там до 20 надо
1
LK
Заблокирован
06.09.2011, 19:24 15
ошибка таки тут:
C++
1
2
3
4
5
6
  for(int j=0;j<1;j++) {
    for(int i=0;i<=21;i++) {
      a[i][j]=fgetc(f);
      if(a[i][j]=='1') Canvas->Draw(i*21,j*14,Bmp);
    }
  }
я предлагал в самом начале (#6) :
C++
1
2
3
4
5
6
7
8
9
10
11
12
void __fastcall TForm1::FormPaint(TObject *Sender)
{
//  for(int j=0;j<1;j++) {
  int j;
  if (j==0) {
    for(int i=0;i<=21;i++) {
      a[i][j]=fgetc(f);
      if(a[i][j]=='1') Canvas->Draw(i*21,j*14,Bmp);
    }
  j++;
  }
}
- AV нет

вы из принципа слушаете только себя, любимого ?
2
wtf!?
750 / 281 / 25
Регистрация: 21.05.2010
Сообщений: 732
06.09.2011, 19:30 16
Как сказал SalterOk, должно быть a[j][i], а не a[i][j]
Также, какой смысл в a[1][20] ?
И в цикле разве не i<20 или i=19 должно быть? Элементов какбэ 20, не ? а цикл выполнится 21 раз
1
LK
Заблокирован
06.09.2011, 19:34 17
без АВ
Вложения
Тип файла: zip arc.zip (607.5 Кб, 6 просмотров)
0
LK
Заблокирован
06.09.2011, 20:13 18
да, не все так просто
хочется знать : block.bmp должна двигаться, или постепенно рисоваться ? хорошо бы код комментировать...
FGETC-FGETCHAR , для чего оно там ?
0
117 / 114 / 10
Регистрация: 02.06.2011
Сообщений: 280
06.09.2011, 20:22 19
Цитата Сообщение от LK Посмотреть сообщение
хочется знать : block.bmp должна двигаться, или постепенно рисоваться ? хорошо бы код комментировать...
так завтра он новую тему создаст с таким вопросом - там и обсудим
0
293 / 199 / 6
Регистрация: 23.10.2010
Сообщений: 1,173
Записей в блоге: 1
06.09.2011, 22:41  [ТС] 20
Всё я нашёл ошибку всем Спасибо

Цитата Сообщение от SalterOk Посмотреть сообщение
Код C++
1
for(int i=0;i<21;i++)
там до 20 надо
Не забывайте про последний символ в строке

Добавлено через 2 минуты
Цитата Сообщение от LK Посмотреть сообщение
да, не все так просто
хочется знать : block.bmp должна двигаться, или постепенно рисоваться ? хорошо бы код комментировать...
FGETC-FGETCHAR , для чего оно там ?
блок это просто для визуализации как бы задний фон, но в дальнейшем он будет преврашён в объект, со своими координатами
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.09.2011, 22:41

Неизвестная ошибка или авторизация через cookie
Люди почему у меня не работает COOKIE авторизация???? &lt;?php if(isset($_COOKIE)){ echo(&quot;HELLO...

Ошибка или глюк gdi?
Решил изучить gdi. Написал пример, по экспериментировал, но не обошлось без глюков)) В архиве...

Глюк эмулятора или ошибка в программе?
Здравствуйте. Делаю лабораторную работу на эмуляторе процессора К580 ВМ80. Задание:произвести...

Глюк Cisco packet tracer или ошибка в настройке?
Существует две сети: роутеры DIR, BUH, PTO -сеть один, интернет поступает на DIR и 2 сеть - Router...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru