Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Access violation при заполнении StringGrida, access violation at address 21514D8d in  
V
    Опции темы
XPyCT
Дата 28.2.2015, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Зравствуйте!

на главной форме есть StringGrid

Я создал отдельный юнит  создал там класс

в классе в разделе паблик есть метод в качестве параметра принимающий TStringGrid *Grid

Код

class TDataFile
{

    public:
        ...
               void FillTableData(TStringGrid *Grid);
            ...
};


реализация
Код

void TDataFile::FillTableData(TStringGrid *Grid)
{
 int type =0;
  switch(type)
  {
      case 0:
      {
          Grid->ColCount = 19 + 1;
          Grid->RowCount = Face.size()+1;
                // ТУТ ошибка     access violation at address 21514D8d in module BORLNDMM.DLL
          Grid->Cells[0][0] = "N";   //<--                  
/*        
  for(int i=1; i< Face.size(); i++)
          {
            int b = Face[i-1].Header.index;
            Grid->Cells[1][i] = IntToStr(b);
//            Grid->Cells[2][i+1] = IntToStr(Face[i].Header.ID);
//            Grid->Cells[3][i+1] = Face[i].Header.Name;
//            Grid->Cells[4][i+1] = IntToStr(Face[i].Header.Texture);
//            Grid->Cells[5][i+1] = IntToStr(Face[i].Header.Sprite);
            int c =6;
            for(int a=0; a<14; a++)
            {
             Grid->Cells[c][i+1] = Face[i].Tag[a].Tag;
             c++;
            }

          }
*/
      }break;
  }
}


в главном юните в конструкторе формы

Код

TDataFile *DataFile;
TForm1 *Form1;
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
  DataFile = new TDataFile();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ListBox1Click(TObject *Sender)
{
   if(ListBox1->ItemIndex > -1)
   {

       DataFile->FillTableData(StringGrid1);
   }
}
//---------------------------------------------------------------------------


уже все хидеры переподключал с главной формы
помогите плз раздуплится
PM MAIL Skype   Вверх
feodorv
Дата 2.3.2015, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

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



Как создан StringGrid1?


--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
XPyCT
Дата 3.3.2015, 09:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(feodorv @ 2.3.2015,  14:10)
Как создан StringGrid1?

Сорри за опаздание!
на главной форме в Unit1 он тупо лежит на форме не динамически с панелей компонентов поставил
PM MAIL Skype   Вверх
xvr
Дата 3.3.2015, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

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



Модуль BORLNDMM.DLL - это менеджер динамической памяти. У вас куча случайно не порушена?

PM MAIL   Вверх
XPyCT
Дата 4.3.2015, 09:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Да черт ее знает!
в другом проекте все работает на ура.

в общем сама программа создается для чтения игрового дат файла который содержит много листов
в классе я открываю файл читаю в вектор структур

после того как вектора заполнены  файл прочтен вот и пытаюсь вывести в таблицу но даже элементарно ="" не хочет 

в общем выкладываю весь код
unit1.cpp
Код

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#include "ItemEdf.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
 AnsiString dir = ExtractFilePath(Application->ExeName);
TDataFile *DataFile;
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
  DataFile = new TDataFile();
  ListBox1->Items->Clear();
  ListBox1->Items->LoadFromFile(dir+"conf\\ListName.txt");

}
//---------------------------------------------------------------------------
void __fastcall TForm1::mmExitClick(TObject *Sender)
{
 delete DataFile;
 Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::mmOpenClick(TObject *Sender)
{
    int Len = OpenDialog1->FileName.Length();

    char* fName = new char[Len];
      if(OpenDialog1->Execute())
      {
        strcpy(fName,AnsiString(OpenDialog1->FileName).c_str());
        DataFile->Load(fName);
      }
    delete fName;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::mmSaveClick(TObject *Sender)
{
  //
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
delete DataFile;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ListBox1Click(TObject *Sender)
{
   if(ListBox1->ItemIndex > -1)
   {

       DataFile->FillTableData(StringGrid1);
   }
}
//---------------------------------------------------------------------------



unit1.h
Код

//---------------------------------------------------------------------------

#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ComCtrls.hpp>
#include <Grids.hpp>
#include <ImgList.hpp>
#include <Menus.hpp>
#include <ToolWin.hpp>
#include <Dialogs.hpp>
#include <ExtCtrls.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:    // IDE-managed Components
    TStringGrid *StringGrid1;
    TStatusBar *StatusBar1;
    TMainMenu *MainMenu1;
    TMenuItem *F1;
    TToolBar *ToolBar1;
    TToolButton *ToolButton1;
    TToolButton *ToolButton2;
    TToolButton *ToolButton3;
    TToolButton *ToolButton4;
    TToolButton *ToolButton5;
    TImageList *iTools;
    TListBox *ListBox1;
    TMenuItem *mmOpen;
    TMenuItem *mmSave;
    TMenuItem *N1;
    TMenuItem *mmExit;
    TOpenDialog *OpenDialog1;
    TSaveDialog *SaveDialog1;
    TPanel *Panel1;
    TPanel *Panel2;
    void __fastcall mmExitClick(TObject *Sender);
    void __fastcall mmOpenClick(TObject *Sender);
    void __fastcall mmSaveClick(TObject *Sender);
    void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
    void __fastcall ListBox1Click(TObject *Sender);
private:    // User declarations
public:        // User declarations
    __fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif


vectors.h
Код

//---------------------------------------------------------------------------
#include <vector>
#ifndef VectorsH
#define VectorsH
#include <SysUtils.hpp>
//---------------------------------------------------------------------------
using namespace std;
typedef unsigned int u32;
typedef int x32;
typedef  byte u8;
typedef  WORD u16;
typedef char cstr;
typedef AnsiString astr;
//---------------------------------------------------------------------------
struct HeaderStruct
{
u32 index;
x32 ID;
cstr Name[64];
x32 Texture;
u32 Sprite;
};
struct TagStruct
{
  u32 Tag;
};
struct sFace
{
HeaderStruct Header;
TagStruct Tag[14];
};
vector<sFace> Face;
//---------------------------------------------------------------------------
struct sArmor
{
HeaderStruct Header;
TagStruct Tag[35];
};
vector<sArmor> Armor;
//---------------------------------------------------------------------------
struct sLower
{
HeaderStruct Header;
TagStruct Tag[35];
};
vector<sLower> Lower;
//---------------------------------------------------------------------------
struct sGloves
{
HeaderStruct Header;
TagStruct Tag[35];
};
vector<sGloves> Gloves;
//---------------------------------------------------------------------------
struct sShoes
{
HeaderStruct Header;
TagStruct Tag[35];
};
vector<sShoes> Shoes;
//---------------------------------------------------------------------------
struct sHelmet
{
HeaderStruct Header;
TagStruct Tag[35];
};
vector<sHelmet> Helmet;
//---------------------------------------------------------------------------
struct sWeapon
{
HeaderStruct Header;
TagStruct Tag[43];

};
vector<sWeapon> Weapon;
//---------------------------------------------------------------------------
struct sShield
{
HeaderStruct Header;
TagStruct Tag[35];
};
vector<sShield> Shield;
//---------------------------------------------------------------------------
struct sCloak
{
HeaderStruct Header;
TagStruct Tag[36];
};
vector<sCloak> Cloak;
//---------------------------------------------------------------------------
struct sRing
{
HeaderStruct Header;
TagStruct Tag[23];
float Tag24;
float Tag25;
float Tag26;
float Tag27;
TagStruct Tag28[5];
};
vector<sRing> Ring;
//---------------------------------------------------------------------------
struct sAmulet
{
HeaderStruct Header;
TagStruct Tag23[23];
float Tag24;
float Tag25;
float Tag26;
float Tag27;
TagStruct Tag28[5];
};
vector<sAmulet> Amulet;
//---------------------------------------------------------------------------
struct sAmmo
{
HeaderStruct Header;
TagStruct Tag[31];
};
vector<sAmmo> Ammo;
//---------------------------------------------------------------------------
struct sTools
{
HeaderStruct Header;
TagStruct Tag[14];
};
vector<sTools> Tools;
//---------------------------------------------------------------------------
struct sPotion
{
HeaderStruct Header;
TagStruct Tag[24];
};
vector<sPotion> Potion;
//---------------------------------------------------------------------------
struct sBag
{
HeaderStruct Header;
TagStruct Tag[14];
};
vector<sBag> Bag;
//---------------------------------------------------------------------------
struct sMining
{
HeaderStruct Header;
TagStruct Tag[15];
};
vector<sMining> Mining;
//---------------------------------------------------------------------------
struct sOre
{
HeaderStruct Header;
TagStruct Tag[16];
};
vector<sOre> Ore;
//---------------------------------------------------------------------------
struct sResource
{
HeaderStruct Header;
TagStruct Tag34[34];
float Tag35;
float Tag36;
float Tag37;
float Tag38;
float Tag39;
float Tag40;
float Tag41;
TagStruct Tag42[2];
};
vector<sResource> Resource;
//---------------------------------------------------------------------------
struct sForce
{
HeaderStruct Header;
TagStruct Tag[15];
};
vector<sForce> Force;
//---------------------------------------------------------------------------
struct sUnitKey
{
HeaderStruct Header;
TagStruct Tag[28];
};
vector<sUnitKey> UnitKey;
//---------------------------------------------------------------------------
struct sBooty
{
HeaderStruct Header;
TagStruct Tag[14];
};
vector<sBooty> Booty;
//---------------------------------------------------------------------------
struct sMap
{
HeaderStruct Header;
TagStruct Tag[13];
cstr TPDest[32];
u32 Tag13;
};
vector<sMap> Map;
//---------------------------------------------------------------------------
struct sTeleport
{
HeaderStruct Header;
TagStruct Tag1[13];
cstr TPStart[32];
cstr TPEnd[32];
TagStruct Tag2[2];
};
vector<sTeleport> Teleport;
//---------------------------------------------------------------------------
struct sDungeon
{
HeaderStruct Header;
TagStruct Tag[23];
};
vector<sDungeon> Dungeon;
//---------------------------------------------------------------------------
struct sAnimus
{
HeaderStruct Header;
TagStruct Tag[14];
};
vector<sAnimus> Animus;
//---------------------------------------------------------------------------
struct sTower
{
HeaderStruct Header;
TagStruct Tag[49];

};
vector<sTower> Tower;
//---------------------------------------------------------------------------
struct sTrap
{
HeaderStruct Header;
TagStruct Tag[23];
};
vector<sTrap> Trap;
//---------------------------------------------------------------------------
struct sSiege
{
HeaderStruct Header;
TagStruct Tag[35];
};
vector<sSiege> Siege;
//---------------------------------------------------------------------------
struct sTicket
{
HeaderStruct Header;
TagStruct Tag[13];
cstr TPStart[32];
u8 Tag14;
cstr TPEnd[32];
u8 Tag15;
u8 Tag16;
u8 Tag17;
u32 Tag18;
};
vector<sTicket> Ticket;
//---------------------------------------------------------------------------
struct sQuestItem
{
HeaderStruct Header;
TagStruct Tag[14];
};
vector<sQuestItem> QuestItem;
//---------------------------------------------------------------------------
struct sRecovery
{
HeaderStruct Header;
TagStruct Tag[77];
};
vector<sRecovery> Recovery;
//---------------------------------------------------------------------------
struct sBox
{
HeaderStruct Header;
TagStruct Tag[75];
};
vector<sBox> Box;
//---------------------------------------------------------------------------
struct sFireCrack
{
HeaderStruct Header;
TagStruct Tag[80];
};
vector<sFireCrack> FireCrack;
//---------------------------------------------------------------------------
struct sUMT
{
HeaderStruct Header;
TagStruct Tag[22];
};
vector<sUMT> UMT;
//---------------------------------------------------------------------------
struct sRadar
{
HeaderStruct Header;
TagStruct Tag[26];
};
vector<sRadar> Radar;
//---------------------------------------------------------------------------
struct sPager
{
HeaderStruct Header;
TagStruct Tag[20];
};
vector<sPager> Pager;
//---------------------------------------------------------------------------
struct sUnitHead
{
HeaderStruct Header;
TagStruct Tag[25];
u8 LVL;
u8  unk;
u16 unk1;
TagStruct Tag1[5];;
};
vector<sUnitHead> UnitHead;
//---------------------------------------------------------------------------
struct sUnitUpper
{
HeaderStruct Header;
TagStruct Tag[25];
u8 LVL;
u8  unk;
u16 unk1;
TagStruct Tag1[5];;
};
vector<sUnitUpper> UnitUpper;
//---------------------------------------------------------------------------
struct sUnitLower
{
HeaderStruct Header;
TagStruct Tag[25];
u8 LVL;
u8  unk;
u16 unk1;
TagStruct Tag1[5];;
};
vector<sUnitLower> UnitLower;
//---------------------------------------------------------------------------
struct sUnitArms
{
HeaderStruct Header;
TagStruct Tag[25];
u8 lvl;
u8 unk1;
u16 unk2;
TagStruct Tag1[13];
};
vector<sUnitArms> UnitArms;
//---------------------------------------------------------------------------
struct sUnitArms2
{
HeaderStruct Header;
TagStruct Tag[25];
u8 lvl;
u8 unk1;
u16 unk2;
TagStruct Tag1[13];
};
vector<sUnitArms2> UnitArms2;
//---------------------------------------------------------------------------
struct sUnitBoost
{
HeaderStruct Header;
TagStruct Tag[25];
u8 lvl;
u8 unk1;
u16 unk2;
TagStruct Tag1[5];
u8 Speed;
u8 unk3;
u16 unk4;
u32 Tag2;
};
vector<sUnitBoost> UnitBoost;
//---------------------------------------------------------------------------
struct sUnitBullet
{
HeaderStruct Header;
TagStruct Tag[35];
};
vector<sUnitBullet> UnitBullet;
//---------------------------------------------------------------------------
#endif

itemedf.h
Код

//---------------------------------------------------------------------------

#include <SysUtils.hpp>
#include <stdio.h>
#include <stdlib.h>
#include "Vectors.h"



//---------------------------------------------------------------------------
#ifndef ItemEdfH
#define ItemEdfH
//---------------------------------------------------------------------------
struct sFldCount
{
    int Blocs;
    int Columns;
    sFldCount()
    {
        ZeroMemory(this, sizeof(sFldCount));
    }
};

class TDataFile
{
    private:
//       int Blocs;
//       int Columns;
//       int BlocSize;
       int unk;
       int FileNum;


    public:
        void SGridColName(TStringGrid *StringGrid,int SGridNumber);

        void GetFileNumber(int num);
        int SetFileNumber();
        void Load(char* FileName);
        void FillTableData(TStringGrid *Grid);
        sFldCount FldCount[43];
};
//---------------------------------------------------------------------------

#endif


itemedf.cpp
Код

//---------------------------------------------------------------------------
#pragma hdrstop
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ComCtrls.hpp>
#include <Grids.hpp>
#include <ExtCtrls.hpp>

#include "Unit1.h"
#include "ItemEdf.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

//---------------------------------------------------------------------------
void TDataFile::Load(char* FileName)
{
    int iterat =0;
    FILE *F = fopen(FileName, "rb");
#pragma region Faces
    fread(&this->FldCount[iterat].Blocs, sizeof(int), 1, F);
    fread(&this->FldCount[iterat].Columns, sizeof(int), 1, F);
    Face.resize(this->FldCount[iterat].Blocs);
    for(int i=0; i<this->FldCount[iterat].Blocs; i++)
    {fread(&Face[i], sizeof(sFace), 1, F);}
    iterat++;
#pragma end_region
#pragma region Armor
    fread(&this->FldCount[iterat].Blocs, sizeof(int), 1, F);
    fread(&this->FldCount[iterat].Columns, sizeof(int), 1, F);
    Armor.resize(this->FldCount[iterat].Blocs);
    for(int i=0; i<this->FldCount[iterat].Blocs; i++)
    {fread(&Armor[i], sizeof(sArmor), 1, F);}
    iterat++;
#pragma end_region
#pragma region Lower
    fread(&this->FldCount[iterat].Blocs, sizeof(int), 1, F);
    fread(&this->FldCount[iterat].Columns, sizeof(int), 1, F);
    Lower.resize(this->FldCount[iterat].Blocs);
    for(int i=0; i<this->FldCount[iterat].Blocs; i++)
    {fread(&Lower[i], sizeof(sLower), 1, F);}
    iterat++;
#pragma end_region
#pragma region  Gloves
    fread(&this->FldCount[iterat].Blocs, sizeof(int), 1, F);
    fread(&this->FldCount[iterat].Columns, sizeof(int), 1, F);
    Gloves.resize(this->FldCount[iterat].Blocs);
    for(int i=0; i<this->FldCount[iterat].Blocs; i++)
    {fread(&Gloves[i], sizeof(sGloves), 1, F);}
    iterat++;
#pragma end_region
#pragma region  Shoes
    fread(&this->FldCount[iterat].Blocs, sizeof(int), 1, F);
    fread(&this->FldCount[iterat].Columns, sizeof(int), 1, F);
    Shoes.resize(this->FldCount[iterat].Blocs);
    for(int i=0; i<this->FldCount[iterat].Blocs; i++)
    {fread(&Shoes[i], sizeof(sShoes), 1, F);}
    iterat++;
#pragma end_region
#pragma region  Helmet
    fread(&this->FldCount[iterat].Blocs, sizeof(int), 1, F);
    fread(&this->FldCount[iterat].Columns, sizeof(int), 1, F);
    Helmet.resize(this->FldCount[iterat].Blocs);
    for(int i=0; i<this->FldCount[iterat].Blocs; i++)
    {fread(&Helmet[i], sizeof(sHelmet), 1, F);}
    iterat++;
#pragma end_region
#pragma region  Weapon
    fread(&this->FldCount[iterat].Blocs, sizeof(int), 1, F);
    fread(&this->FldCount[iterat].Columns, sizeof(int), 1, F);
    Weapon.resize(this->FldCount[iterat].Blocs);
    for(int i=0; i<this->FldCount[iterat].Blocs; i++)
    {fread(&Weapon[i], sizeof(sWeapon), 1, F);}
    iterat++;
#pragma end_region
#pragma region  Shield
    fread(&this->FldCount[iterat].Blocs, sizeof(int), 1, F);
    fread(&this->FldCount[iterat].Columns, sizeof(int), 1, F);
    Shield.resize(this->FldCount[iterat].Blocs);
    for(int i=0; i<this->FldCount[iterat].Blocs; i++)
    {fread(&Shield[i], sizeof(sShield), 1, F);}
    iterat++;
#pragma end_region
#pragma region  Cloak
    fread(&this->FldCount[iterat].Blocs, sizeof(int), 1, F);
    fread(&this->FldCount[iterat].Columns, sizeof(int), 1, F);
    Cloak.resize(this->FldCount[iterat].Blocs);
    for(int i=0; i<this->FldCount[iterat].Blocs; i++)
    {fread(&Cloak[i], sizeof(sCloak), 1, F);}
    iterat++;
#pragma end_region
#pragma region  Ring
    fread(&this->FldCount[iterat].Blocs, sizeof(int), 1, F);
    fread(&this->FldCount[iterat].Columns, sizeof(int), 1, F);
    Ring.resize(this->FldCount[iterat].Blocs);
    for(int i=0; i<this->FldCount[iterat].Blocs; i++)
    {fread(&Ring[i], sizeof(sRing), 1, F);}
    iterat++;
#pragma end_region
#pragma region  Amulet
    fread(&this->FldCount[iterat].Blocs, sizeof(int), 1, F);
    fread(&this->FldCount[iterat].Columns, sizeof(int), 1, F);
    Amulet.resize(this->FldCount[iterat].Blocs);
    for(int i=0; i<this->FldCount[iterat].Blocs; i++)
    {fread(&Amulet[i], sizeof(sAmulet), 1, F);}
    iterat++;
#pragma end_region
#pragma region  Ammo
    fread(&this->FldCount[iterat].Blocs, sizeof(int), 1, F);
    fread(&this->FldCount[iterat].Columns, sizeof(int), 1, F);
    Ammo.resize(this->FldCount[iterat].Blocs);
    for(int i=0; i<this->FldCount[iterat].Blocs; i++)
    {fread(&Ammo[i], sizeof(sAmmo), 1, F);}
    iterat++;
#pragma end_region
#pragma region  Tools
    fread(&this->FldCount[iterat].Blocs, sizeof(int), 1, F);
    fread(&this->FldCount[iterat].Columns, sizeof(int), 1, F);
    Tools.resize(this->FldCount[iterat].Blocs);
    for(int i=0; i<this->FldCount[iterat].Blocs; i++)
    {fread(&Tools[i], sizeof(sTools), 1, F);}
    iterat++;
#pragma end_region
#pragma region  Potion
    fread(&this->FldCount[iterat].Blocs, sizeof(int), 1, F);
    fread(&this->FldCount[iterat].Columns, sizeof(int), 1, F);
    Potion.resize(this->FldCount[iterat].Blocs);
    for(int i=0; i<this->FldCount[iterat].Blocs; i++)
    {fread(&Potion[i], sizeof(sPotion), 1, F);}
    iterat++;
#pragma end_region
#pragma region  Bag
    fread(&this->FldCount[iterat].Blocs, sizeof(int), 1, F);
    fread(&this->FldCount[iterat].Columns, sizeof(int), 1, F);
    Bag.resize(this->FldCount[iterat].Blocs);
    for(int i=0; i<this->FldCount[iterat].Blocs; i++)
    {fread(&Bag[i], sizeof(sBag), 1, F);}
    iterat++;
#pragma end_region
#pragma region  Mining
    fread(&this->FldCount[iterat].Blocs, sizeof(int), 1, F);
    fread(&this->FldCount[iterat].Columns, sizeof(int), 1, F);
    Mining.resize(this->FldCount[iterat].Blocs);
    for(int i=0; i<this->FldCount[iterat].Blocs; i++)
    {fread(&Mining[i], sizeof(sMining), 1, F);}
    iterat++;
#pragma end_region
#pragma region  Ore
    fread(&this->FldCount[iterat].Blocs, sizeof(int), 1, F);
    fread(&this->FldCount[iterat].Columns, sizeof(int), 1, F);
    Ore.resize(this->FldCount[iterat].Blocs);
    for(int i=0; i<this->FldCount[iterat].Blocs; i++)
    {fread(&Ore[i], sizeof(sOre), 1, F);}
    iterat++;
#pragma end_region
#pragma region  Resource
    fread(&this->FldCount[iterat].Blocs, sizeof(int), 1, F);
    fread(&this->FldCount[iterat].Columns, sizeof(int), 1, F);
    Resource.resize(this->FldCount[iterat].Blocs);
    for(int i=0; i<this->FldCount[iterat].Blocs; i++)
    {fread(&Resource[i], sizeof(sResource), 1, F);}
    iterat++;
#pragma end_region
#pragma region  Force
    fread(&this->FldCount[iterat].Blocs, sizeof(int), 1, F);
    fread(&this->FldCount[iterat].Columns, sizeof(int), 1, F);
    Force.resize(this->FldCount[iterat].Blocs);
    for(int i=0; i<this->FldCount[iterat].Blocs; i++)
    {fread(&Force[i], sizeof(sForce), 1, F);}
    iterat++;
#pragma end_region
#pragma region  UnitKey
    fread(&this->FldCount[iterat].Blocs, sizeof(int), 1, F);
    fread(&this->FldCount[iterat].Columns, sizeof(int), 1, F);
    UnitKey.resize(this->FldCount[iterat].Blocs);
    for(int i=0; i<this->FldCount[iterat].Blocs; i++)
    {fread(&UnitKey[i], sizeof(sUnitKey), 1, F);}
    iterat++;
#pragma end_region
#pragma region  Booty
    fread(&this->FldCount[iterat].Blocs, sizeof(int), 1, F);
    fread(&this->FldCount[iterat].Columns, sizeof(int), 1, F);
    Booty.resize(this->FldCount[iterat].Blocs);
    for(int i=0; i<this->FldCount[iterat].Blocs; i++)
    {fread(&Booty[i], sizeof(sBooty), 1, F);}
    iterat++;
#pragma end_region
#pragma region  Map
    fread(&this->FldCount[iterat].Blocs, sizeof(int), 1, F);
    fread(&this->FldCount[iterat].Columns, sizeof(int), 1, F);
    Map.resize(this->FldCount[iterat].Blocs);
    for(int i=0; i<this->FldCount[iterat].Blocs; i++)
    {fread(&Map[i], sizeof(sMap), 1, F);}
    iterat++;
#pragma end_region
#pragma region  Teleport
    fread(&this->FldCount[iterat].Blocs, sizeof(int), 1, F);
    fread(&this->FldCount[iterat].Columns, sizeof(int), 1, F);
    Teleport.resize(this->FldCount[iterat].Blocs);
    for(int i=0; i<this->FldCount[iterat].Blocs; i++)
    {fread(&Teleport[i], sizeof(sTeleport), 1, F);}
    iterat++;
#pragma end_region
#pragma region  Dungeon
    fread(&this->FldCount[iterat].Blocs, sizeof(int), 1, F);
    fread(&this->FldCount[iterat].Columns, sizeof(int), 1, F);
    Dungeon.resize(this->FldCount[iterat].Blocs);
    for(int i=0; i<this->FldCount[iterat].Blocs; i++)
    {fread(&Dungeon[i], sizeof(sDungeon), 1, F);}
    iterat++;
#pragma end_region
#pragma region  Animus
    fread(&this->FldCount[iterat].Blocs, sizeof(int), 1, F);
    fread(&this->FldCount[iterat].Columns, sizeof(int), 1, F);
    Animus.resize(this->FldCount[iterat].Blocs);
    for(int i=0; i<this->FldCount[iterat].Blocs; i++)
    {fread(&Animus[i], sizeof(sAnimus), 1, F);}
    iterat++;
#pragma end_region
#pragma region  Tower
    fread(&this->FldCount[iterat].Blocs, sizeof(int), 1, F);
    fread(&this->FldCount[iterat].Columns, sizeof(int), 1, F);
    Tower.resize(this->FldCount[iterat].Blocs);
    for(int i=0; i<this->FldCount[iterat].Blocs; i++)
    {fread(&Tower[i], sizeof(sTower), 1, F);}
    iterat++;
#pragma end_region
#pragma region  Trap
    fread(&this->FldCount[iterat].Blocs, sizeof(int), 1, F);
    fread(&this->FldCount[iterat].Columns, sizeof(int), 1, F);
    Trap.resize(this->FldCount[iterat].Blocs);
    for(int i=0; i<this->FldCount[iterat].Blocs; i++)
    {fread(&Trap[i], sizeof(sTrap), 1, F);}
    iterat++;
#pragma end_region
#pragma region  SiegeKit
    fread(&this->FldCount[iterat].Blocs, sizeof(int), 1, F);
    fread(&this->FldCount[iterat].Columns, sizeof(int), 1, F);
    Siege.resize(this->FldCount[iterat].Blocs);
    for(int i=0; i<this->FldCount[iterat].Blocs; i++)
    {fread(&Siege[i], sizeof(sSiege), 1, F);}
    iterat++;
#pragma end_region
#pragma region  Ticket
    fread(&this->FldCount[iterat].Blocs, sizeof(int), 1, F);
    fread(&this->FldCount[iterat].Columns, sizeof(int), 1, F);
    Ticket.resize(this->FldCount[iterat].Blocs);
    for(int i=0; i<this->FldCount[iterat].Blocs; i++)
    {fread(&Ticket[i], sizeof(sTicket), 1, F);}
    iterat++;
#pragma end_region
#pragma region  QuestItem
    fread(&this->FldCount[iterat].Blocs, sizeof(int), 1, F);
    fread(&this->FldCount[iterat].Columns, sizeof(int), 1, F);
    QuestItem.resize(this->FldCount[iterat].Blocs);
    for(int i=0; i<this->FldCount[iterat].Blocs; i++)
    {fread(&QuestItem[i], sizeof(sQuestItem), 1, F);}
    iterat++;
#pragma end_region
#pragma region  Recovery
    fread(&this->FldCount[iterat].Blocs, sizeof(int), 1, F);
    fread(&this->FldCount[iterat].Columns, sizeof(int), 1, F);
    Recovery.resize(this->FldCount[iterat].Blocs);
    for(int i=0; i<this->FldCount[iterat].Blocs; i++)
    {fread(&Recovery[i], sizeof(sRecovery), 1, F);}
    iterat++;
#pragma end_region
#pragma region  Box
    fread(&this->FldCount[iterat].Blocs, sizeof(int), 1, F);
    fread(&this->FldCount[iterat].Columns, sizeof(int), 1, F);
    Box.resize(this->FldCount[iterat].Blocs);
    for(int i=0; i<this->FldCount[iterat].Blocs; i++)
    {fread(&Box[i], sizeof(sBox), 1, F);}
    iterat++;
#pragma end_region
#pragma region  FireCrack
    fread(&this->FldCount[iterat].Blocs, sizeof(int), 1, F);
    fread(&this->FldCount[iterat].Columns, sizeof(int), 1, F);
    FireCrack.resize(this->FldCount[iterat].Blocs);
    for(int i=0; i<this->FldCount[iterat].Blocs; i++)
    {fread(&FireCrack[i], sizeof(sFireCrack), 1, F);}
    iterat++;
#pragma end_region
#pragma region  UMT
    fread(&this->FldCount[iterat].Blocs, sizeof(int), 1, F);
    fread(&this->FldCount[iterat].Columns, sizeof(int), 1, F);
    UMT.resize(this->FldCount[iterat].Blocs);
    for(int i=0; i<this->FldCount[iterat].Blocs; i++)
    {fread(&UMT[i], sizeof(sUMT), 1, F);}
    iterat++;
#pragma end_region
#pragma region  Radar
    fread(&this->FldCount[iterat].Blocs, sizeof(int), 1, F);
    fread(&this->FldCount[iterat].Columns, sizeof(int), 1, F);
    Radar.resize(this->FldCount[iterat].Blocs);
    for(int i=0; i<this->FldCount[iterat].Blocs; i++)
    {fread(&Radar[i], sizeof(sRadar), 1, F);}
    iterat++;
#pragma end_region
#pragma region  Pager
    fread(&this->FldCount[iterat].Blocs, sizeof(int), 1, F);
    fread(&this->FldCount[iterat].Columns, sizeof(int), 1, F);
    Pager.resize(this->FldCount[iterat].Blocs);
    for(int i=0; i<this->FldCount[iterat].Blocs; i++)
    {fread(&Pager[i], sizeof(sPager), 1, F);}
    iterat++;
#pragma end_region
#pragma region  UnitHead
    fread(&this->FldCount[iterat].Blocs, sizeof(int), 1, F);
    fread(&this->FldCount[iterat].Columns, sizeof(int), 1, F);
    UnitHead.resize(this->FldCount[iterat].Blocs);
    for(int i=0; i<this->FldCount[iterat].Blocs; i++)
    {fread(&UnitHead[i], sizeof(sUnitHead), 1, F);}
    iterat++;
#pragma end_region
#pragma region  UnitUpper
    fread(&this->FldCount[iterat].Blocs, sizeof(int), 1, F);
    fread(&this->FldCount[iterat].Columns, sizeof(int), 1, F);
    UnitUpper.resize(this->FldCount[iterat].Blocs);
    for(int i=0; i<this->FldCount[iterat].Blocs; i++)
    {fread(&UnitUpper[i], sizeof(sUnitUpper), 1, F);}
    iterat++;
#pragma end_region
#pragma region  UnitLower
    fread(&this->FldCount[iterat].Blocs, sizeof(int), 1, F);
    fread(&this->FldCount[iterat].Columns, sizeof(int), 1, F);
    UnitLower.resize(this->FldCount[iterat].Blocs);
    for(int i=0; i<this->FldCount[iterat].Blocs; i++)
    {fread(&UnitLower[i], sizeof(sUnitLower), 1, F);}
    iterat++;
#pragma end_region
#pragma region  UnitArms
    fread(&this->FldCount[iterat].Blocs, sizeof(int), 1, F);
    fread(&this->FldCount[iterat].Columns, sizeof(int), 1, F);
    UnitArms.resize(this->FldCount[iterat].Blocs);
    for(int i=0; i<this->FldCount[iterat].Blocs; i++)
    {fread(&UnitArms[i], sizeof(sUnitArms), 1, F);}
    iterat++;
#pragma end_region
#pragma region  UnitArms2
    fread(&this->FldCount[iterat].Blocs, sizeof(int), 1, F);
    fread(&this->FldCount[iterat].Columns, sizeof(int), 1, F);
    UnitArms2.resize(this->FldCount[iterat].Blocs);
    for(int i=0; i<this->FldCount[iterat].Blocs; i++)
    {fread(&UnitArms2[i], sizeof(sUnitArms2), 1, F);}
    iterat++;
#pragma end_region
#pragma region  UnitBoost
    fread(&this->FldCount[iterat].Blocs, sizeof(int), 1, F);
    fread(&this->FldCount[iterat].Columns, sizeof(int), 1, F);
    UnitBoost.resize(this->FldCount[iterat].Blocs);
    for(int i=0; i<this->FldCount[iterat].Blocs; i++)
    {fread(&UnitBoost[i], sizeof(sUnitBoost), 1, F);}
    iterat++;
#pragma end_region
#pragma region  UnitBullet
    fread(&this->FldCount[iterat].Blocs, sizeof(int), 1, F);
    fread(&this->FldCount[iterat].Columns, sizeof(int), 1, F);
    UnitBullet.resize(this->FldCount[iterat].Blocs);
    for(int i=0; i<this->FldCount[iterat].Blocs; i++)
    {fread(&UnitBullet[i], sizeof(sUnitBullet), 1, F);}
#pragma end_region
    iterat = 0;

    u32 a = UnitBullet[1].Header.index;
    astr b =  "$"+ IntToHex(UnitBullet[1].Header.ID, 4);
    astr _Name = UnitBullet[1].Header.Name;

    fclose(F);
    //FillTableData(int type)
}
//---------------------------------------------------------------------------
void TDataFile::FillTableData(TStringGrid *Grid)
{
 int type =0;
  switch(type)
  {
      case 0:
      {
          Grid->ColCount = 19 + 1;
          Grid->RowCount = Face.size()+1;
          Grid->Cells[0][0] = L"N";
          for(int i=1; i< Face.size(); i++)
          {
            int b = Face[i-1].Header.index;
            Grid->Cells[1][i] = IntToStr(b);
//            Grid->Cells[2][i+1] = IntToStr(Face[i].Header.ID);
//            Grid->Cells[3][i+1] = Face[i].Header.Name;
//            Grid->Cells[4][i+1] = IntToStr(Face[i].Header.Texture);
//            Grid->Cells[5][i+1] = IntToStr(Face[i].Header.Sprite);
            int c =6;
            for(int a=0; a<14; a++)
            {
             Grid->Cells[c][i+1] = Face[i].Tag[a].Tag;
             c++;
            }
          }
      }break;
  }
}

PM MAIL Skype   Вверх
XPyCT
Дата 4.3.2015, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



в общем нашел почему критует но как исправить хз

если не открывать файл а просто нажать на лист бокс вызвав метод
Код

FillTableData(TStringGrid *SG)


и в SG присвоить 
Код

   SG->RowCount = 3;
  SG->Cells[1][1] = "ok";


так работает
а если сначала открыть файл заполнить вектора то  появляется описанная выше ошибка
PM MAIL Skype   Вверх
xvr
Дата 4.3.2015, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

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



Ваш TDataFile::Load где то убил память. Где именно мне искать в этой портянке как то не хочется  smile 
В частности проверьте не переполнился ли FldCount

PM MAIL   Вверх
feodorv
Дата 4.3.2015, 20:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

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



Уже здесь непонятки:
Цитата(XPyCT @  4.3.2015,  09:37 Найти цитируемый пост)
    int Len = OpenDialog1->FileName.Length();
    char* fName = new char[Len];
      if(OpenDialog1->Execute())
      {
        strcpy(fName,AnsiString(OpenDialog1->FileName).c_str());

На завершающий '\0' память не выделена. Да и насколько коррелирует FileName.Length() с strlen(AnsiString(FileName).c_str())?

Добавлено через 2 минуты и 16 секунд
Есть ли у Вас в наличии функция, которая проверяет корректность кучи? Типа HeapValidate()


--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
XPyCT
Дата 4.3.2015, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(feodorv @ 4.3.2015,  20:24)
Уже здесь непонятки:
Цитата(XPyCT @  4.3.2015,  09:37 Найти цитируемый пост)
    int Len = OpenDialog1->FileName.Length();
    char* fName = new char[Len];
      if(OpenDialog1->Execute())
      {
        strcpy(fName,AnsiString(OpenDialog1->FileName).c_str());

На завершающий '\0' память не выделена. Да и насколько коррелирует FileName.Length() с strlen(AnsiString(FileName).c_str())?

Добавлено @ 20:26
Есть ли у Вас в наличии функция, которая проверяет корректность кучи? Типа HeapValidate()

функция, которая проверяет корректность кучи нет.
Завтра все корректно проверю согласно ваших рекомендаций.
спс 
PM MAIL Skype   Вверх
XPyCT
Дата 5.3.2015, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Ребята всем спс все оказалось как вы и сказали в  выделении памяти для массива чар завершающий ноль /0
PM MAIL Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

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

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

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

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


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

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


 




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


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

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