Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.11.2010, 01:44   #1
Bernarditto
Пользователь
 
Регистрация: 15.06.2010
Сообщений: 11
По умолчанию Access violation при выполнении

Всем доброго времени суток. Возникла следующая проблемма: при выполнении программы в Builder 6 возникает окно Information вместе с CPU.
Часть кода, которая выполняется:
Код:
OpenDialog1->Execute();
char *k=new char[OpenDialog1->FileName.Length()];
strcpy(k,OpenDialog1->FileName.c_str());
char buff;
int w=0,v;
AnsiString z;
for(i=0;i<OpenDialog1->FileName.Length();i++) z+=k[i];
Edit1->Text=z;
FILE * pFile;
fpos_t position;
pFile=fopen(k,"r");
if (pFile)
  {
    fgetpos (pFile, &position);
    while(!feof(pFile))
    {
     buff=fgetc(pFile);
     if(buff=='j') w++;
    }
    v=(-1+sqrt(1+4*w))/2;
    if(v%1!=0 || v==0) ShowMessage("data is not correct");
    StringGrid1->ColCount=v; StringGrid1->RowCount=v;
    StringGrid2->RowCount=v;
    fsetpos (pFile, &position);
    for(i=0;i<v;i++)
    for(j=0;j<v;j++)
    {
     z.Delete(1,999);
     do
     {
       buff = fgetc (pFile);
       if(buff=='/')
        {
         do buff = fgetc (pFile);
         while(buff!='/');
        }
       else z+=buff;
     }
     while (buff != 'j');
     StringGrid1->Cells[j][i]=z;
    }
    for(i=0;i<v;i++)
    {
     z.Delete(1,999);
     do
     {
      buff = fgetc (pFile);
      if(buff=='/')
       {
        do buff = fgetc (pFile);
        while(buff!='/');
       }
      else z+=buff;
     }
     while(buff!='j');
     StringGrid2->Cells[0][i]=z;
    }
  }
else ShowMessage("Error opening file");
Что это может означать и как можно исправить, скажите если не затруднит.. Явно что проблема с записью, но точно не в стринггрид а скорее что то с потоками я так думаю нно что незнаю.. Очень надеюсь на ваш ответ. Заранее большое спасибо.
Изображения
Тип файла: gif scrn.GIF (36.1 Кб, 139 просмотров)

Последний раз редактировалось AlDelta; 04.11.2010 в 11:16. Причина: [code][/code]
Bernarditto вне форума Ответить с цитированием
Старый 04.11.2010, 02:03   #2
Bernarditto
Пользователь
 
Регистрация: 15.06.2010
Сообщений: 11
По умолчанию Не тот скрин

Простите не тот скрин
Изображения
Тип файла: gif скрн2.GIF (33.6 Кб, 138 просмотров)
Bernarditto вне форума Ответить с цитированием
Старый 04.11.2010, 07:42   #3
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

А...так это просто что-то неправильно.
На самом деле, нужно сам проект смотреть. Выложите его сюда в архиве.
_-Re@l-_ вне форума Ответить с цитированием
Старый 04.11.2010, 09:38   #4
Bernarditto
Пользователь
 
Регистрация: 15.06.2010
Сообщений: 11
По умолчанию Re

Вот проект, там же и текстовый файл к нему..
А в чем соль, не могли бы пояснить?
Спасибо
Вложения
Тип файла: rar kp,vcl.rar (418.6 Кб, 10 просмотров)
Bernarditto вне форума Ответить с цитированием
Старый 04.11.2010, 11:04   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Код:
char *k=new char[OpenDialog1->FileName.Length()];
А завершающий 0 куда записывать будете?
p51x вне форума Ответить с цитированием
Старый 04.11.2010, 14:25   #6
Bernarditto
Пользователь
 
Регистрация: 15.06.2010
Сообщений: 11
По умолчанию Re

Насчет того что +1 так тогда просто в конце названия файла будет какой-нибудь завалявшийся в памяти символ и в итоге файл не откроет изза неправильного пути. Просто я char использую только как название файла, чтобы открыть его через fopen, который символа конца строки не требует, а из ансистринг в чар переписывает без \0.
Кстати если программу запустить из компилятора, то выдает это сообщение, а если просто как готовое екзе то нет и работает как в коде заложено, нормально.
Bernarditto вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как убрать Access Violation при Destroy компонента? ZuBy Компоненты Delphi 11 01.09.2010 19:44
Access violation at address при использовании DLL spamer Общие вопросы Delphi 4 27.08.2009 22:19
Access Violation при Form1.ListView.Clear Hottabych Общие вопросы Delphi 7 11.08.2009 17:13
Access violation at address при выполнении end elsin Общие вопросы Delphi 5 30.01.2009 10:29
access violation при создании обьекта goog Общие вопросы Delphi 12 11.01.2009 20:33