Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка при создании файла, Помогите понять в чём причина 
:(
    Опции темы
Zero
  Дата 11.10.2005, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

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



САБЖ.
Собственно, вот тут у меня курсавая работа в прикреплённом файле, и там
когда откомпилируете, нажмите кнопки "Добавить вопрос", а потом кнопку "Добавить вариант ответа", а потом при нажатии на кнопку "сохранить в файле", прога зависает...
Я в пошаговом режиме нашёл тут строку при которой она зависает, это в функции члене, когда выполняется строка для создания файла
Код

FILE* f = fopen(buf,"wt");

выдаётся какоето сообщение, типа нельзя чёто гдето в ОП прочитать или типа того.
Только я не пойму что нужно то сделать чтобы было всё нормально... smile

Присоединённый файл ( Кол-во скачиваний: 16 )
Присоединённый файл  Test.zip 7,99 Kb
PM MAIL ICQ   Вверх
Zero
Дата 12.10.2005, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

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



Поднимаю тему, всё ещё не разобрался с этим вопросом. smile
PM MAIL ICQ   Вверх
_hunter
Дата 12.10.2005, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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



Цитата
выдаётся какоето сообщение, типа нельзя чёто гдето в ОП прочитать или типа того.

значит нужно дать ему чёто гдето в ОП прочитать и все будет пучком или типа того


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Zero
Дата 12.10.2005, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

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



Я понял, место ошибки, дело оказывается не в файле, но всё равно не могу понять что всё таки нужно исправить...
Вот например:
Код

void TEST::AddQuest()
{
   Test.Nanswer = 0;

   N = N + 3;
   Test.TekstVoprosa = "";
   while (Memo[N] != '¶') Test.TekstVoprosa = Test.TekstVoprosa + Memo[N++];
   
   Test.answers.reserve(Test.Nquest);
   Test.answers.resize(Test.Nquest);
   Test.answers[Test.Nquest-1].qust = Test.TekstVoprosa;  //при выполнении этой строки чего то нехватает, хотя содержимое Test.TekstVoprosa записывается нормально
   string str;
   str = Test.answers[Test.Nquest-1].qust; // Здесть в пошаговом режиме всё присваивается нормально
   ShowMessage(Test.answers[0].qust.c_str()); //А после выполнения этой строки выдаются таже ошибка что и в начале
} 

Видемо при выводе чтото, здесь не хватает, не выводится не в файл ни на экран... smile smile
PM MAIL ICQ   Вверх
Дрон
Дата 12.10.2005, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java-ненавистник :)
****


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

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



Какая ошибка-то????

А компилятор, как я понимаю, C++Builder?

Это сообщение отредактировал(а) Дрон - 12.10.2005, 16:36


--------------------
Да. Именно так.
PM   Вверх
Zero
Дата 12.10.2005, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

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



Цитата
И какой компилятор?

Я не знаю какой компилятор, но язык С++6 Builder
Цитата
Какая ошибка-то????

при записи вроде...
Добавлено @ 16:42
Даже если последний ShowMessage, сделать так:
Код

ShowMessage(str.c_str());  //перед эти str у меня определён...

Всё равно выдаётся ошибка... smile
PM MAIL ICQ   Вверх
_hunter
Дата 12.10.2005, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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



Цитата
Я не знаю какой компилятор, но язык С++6 Builder

smile
язык, как раз, С++, а вот компилятор -- С++ Builder

Цитата(Zero @ 12.10.2005, 16:37)
Цитата
Какая ошибка-то????

при записи вроде...

ну прямо как маленький -- что за ошибка не знаю, но она есть...
приведи полностью текст сообщения об ошибке.
+ ShowMessage() -- это хорошо, но дебаггер -- тоже вещь полезная...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Zero
Дата 12.10.2005, 21:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

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



Цитата(_hunter @ 12.10.2005, 16:53)
приведи полностью текст сообщения об ошибке.

Оно выдаётся не компилятором, а во время исполнения... И я в начале прикрепил файл, а так я сомневаюсь, что телепатическими способностями сможет кто-нибудь, найти ошибку...
Но на всякий случай:
"Project C:\Program files\borland\CBuilder6\Projects\CreateTest.exe faulted with message: 'acess violation at 0x40009729: write of address 0x00030d14'. Rocess Stopped. Use Step or Run to continue"
PM MAIL ICQ   Вверх
BreakPointMAN
Дата 12.10.2005, 22:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



в функции BitBtn3Click:
Цитата

Memo = new char[strlen(Memo1->Lines->Text.c_str())+1];

место не выделил под нуль-символ '\0'...

Это сообщение отредактировал(а) BreakPointMAN - 12.10.2005, 22:17


--------------------
"Разруха не в клозетах, а в головах." © Ф.Ф. Преображенский (М.Булгаков, "Собачье сердце")
PM WWW ICQ   Вверх
WERITAS
Дата 12.10.2005, 22:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


********
**


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

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



Какой-то чертоманский курсач... smile

Цитата
FILE* f = fopen(buf,"wt");

Ффф... указатель на поток в Си Билдере? ....ну не знаю, просто сам визуалку юзаю, но меня это строчка почему-то смутила smile


--------------------
Арт-менеджер клуба, разрешивший концерт Алексея Глызина, уволен с формулировкой "Мудак"
PM MAIL   Вверх
BreakPointMAN
Дата 12.10.2005, 22:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(WERITAS @ 12.10.2005, 22:23)
но меня это строчка почему-то смутила

чем?


--------------------
"Разруха не в клозетах, а в головах." © Ф.Ф. Преображенский (М.Булгаков, "Собачье сердце")
PM WWW ICQ   Вверх
Zero
Дата 12.10.2005, 22:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

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



Цитата(BreakPointMAN @ 12.10.2005, 22:16)
место не выделил под нуль-символ '\0'...

smile smile smile Обана, супер!!!!!!!!!!!!!!!! Спасибо большое, я с этой ошибкой уже 2 дня мучаюсь, ни как не мог понять, чё за ерунда..... smile smile smile smile smile smile
PM MAIL ICQ   Вверх
BreakPointMAN
Дата 12.10.2005, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Zero smile


--------------------
"Разруха не в клозетах, а в головах." © Ф.Ф. Преображенский (М.Булгаков, "Собачье сердце")
PM WWW ICQ   Вверх
_hunter
Дата 13.10.2005, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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



таки я глянул этот код... это ж кошмар... ты в делфях тоже всместо строк PChar-ами пользуешся? и strcat-ами их плюсуеш?..

Это сообщение отредактировал(а) _hunter - 13.10.2005, 11:56


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Zero
Дата 13.10.2005, 18:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

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



Цитата(_hunter @ 13.10.2005, 11:46)
это ж кошмар...

Ясен красен, этож курсач... smile
Цитата(_hunter @ 13.10.2005, 11:46)
ты в делфях тоже всместо строк PChar-ами пользуешся? и strcat-ами их плюсуеш?..

Неа... в делфях там всё просто, и без глюков, там стринг поставил и нормал... А strcat, я в делфях пока не пробовал не разу, там и так всё с помощью оператора "+" работает...
Просто тут препод задал, такое задание, составить программу тестирования, чтобы обязательно был один класс, и чтобы он включал в себя инкапсуляцию и т.д. А в делфи я б эту прогу за 3 часа написал, и на форум не одного вопроса бы не задал... А в Си я только начинающий...
PM MAIL ICQ   Вверх
_hunter
Дата 13.10.2005, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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



Цитата
Ясен красен, этож курсач.

значит можно левой ногой правое ухо чесать?..
Цитата
Неа... в делфях там всё просто, и без глюков, там стринг поставил и нормал... А strcat, я в делфях пока не пробовал не разу, там и так всё с помощью оператора "+" работает...

дык кто тут мешает AnsiString использовать ( именно так тут называется делфийская строка )
Цитата
Просто тут препод задал, такое задание, составить программу тестирования, чтобы обязательно был один класс, и чтобы он включал в себя инкапсуляцию и т.д.

и это значит так код уродовать нужно?
Цитата
А в делфи я б эту прогу за 3 часа написал, и на форум не одного вопроса бы не задал... А в Си я только
начинающий...

при минимальном знании синтаксиса сей проет такого размера переносится из делфей в билдер за час максимум...

P.S.
с файлами в делфях ты тоже через CRT работаеш?
Добавлено @ 18:16
P.P.S.
тут тоже все без глюков ( если с умом подходить ( т.е. знать что именно ты делаеш) )...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Void
Дата 13.10.2005, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

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



Цитата(Zero @ 13.10.2005, 20:01)
Неа... в делфях там всё просто, и без глюков, там стринг поставил и нормал... А strcat, я в делфях пока не пробовал не разу, там и так всё с помощью оператора "+" работает...

Думаю, это был тонкий намек со стороны _hunter на полезность повсеместного использования std::string smile

Добавлено @ 18:22
Упс... пардон: пока печатал ответ, уже все разъяснили smile


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
Zero
Дата 13.10.2005, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

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



Цитата(_hunter @ 13.10.2005, 18:15)
Цитата 
Ясен красен, этож курсач.

значит можно левой ногой правое ухо чесать?..

Нет, просто, когда ставят условия в задание... то не всё делается напрямую.
А так, я бы и класс не использовал, на прямую бы в тескстовый файл всё загнал, а другой прогой считал... всё просто ─ 1 класс.
Цитата(_hunter @ 13.10.2005, 18:15)
кто тут мешает AnsiString использовать

Блин... smile А сразу чё не сказал... smile Ладно, видимо код можно немного переделать...
Цитата(_hunter @ 13.10.2005, 18:15)
Цитата 
А в делфи я б эту прогу за 3 часа написал, и на форум не одного вопроса бы не задал... А в Си я только
начинающий...

при минимальном знании синтаксиса сей проет такого размера переносится из делфей в билдер за час максимум...

Да нуу... Я вот знаю делфи, и имею минимальные знания синтаксиса... А вот как начинаешь чёнить делать, то одно не так то другое, вот и переноси его так зачас... smile Тут не то что час, а даже несколько дней получается. smile
Цитата(_hunter @ 13.10.2005, 18:15)
с файлами в делфях ты тоже через CRT работаеш?

А причём тут CRT... И вообще я там выкладывал свой старый код, новй уже сильно изменён, и создание файлов, тут на три строки в общем случае получился...
Цитата(_hunter @ 13.10.2005, 18:15)
тут тоже все без глюков ( если с умом подходить ( т.е. знать что именно ты делаеш) )...

Ясное дело... Но ведь я же не знал до этого что вся проблема в memo, с выделением строки глюкануть могла, я вообще думал, что у меня вектор не правильно создавался, и поэтому сидел тут его проверял...
PM MAIL ICQ   Вверх
BreakPointMAN
Дата 13.10.2005, 21:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Zero
там, в принципе, можно много чего подправить и переделать...

а еще бы я советовал не оставлять имена для компонентов по умолчанию - типа Edit1, Edit2, Edit3, Button1, Button2, ... Button25
запутаться можно... лучше сразу менять имена на более осмысленные - типа EQuestion, EAnswer, BAdd, BExit и т.п.
и писать лучше не транслитом названия объектов и имена переменных, а по-англицки...


--------------------
"Разруха не в клозетах, а в головах." © Ф.Ф. Преображенский (М.Булгаков, "Собачье сердце")
PM WWW ICQ   Вверх
Zero
Дата 14.10.2005, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

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



Цитата(BreakPointMAN @ 13.10.2005, 21:58)
там, в принципе, можно много чего подправить и переделать...

Да ето я в курсе, просто моя цель не написать программу для когото или т.п. А разобратся в языке, С++... А так я там уже много всего переделал, и сейчас уже пишу прогу по просмотру тестов... С той всё... smile
PM MAIL ICQ   Вверх
_hunter
Дата 14.10.2005, 11:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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



Цитата
Да нуу... Я вот знаю делфи, и имею минимальные знания синтаксиса... А вот как начинаешь чёнить делать, то одно не так то другое, вот и переноси его так зачас... smile Тут не то что час, а даже несколько дней получается. smile

пример можно?..
Цитата
А причём тут CRT... И вообще я там выкладывал свой старый код, новй уже сильно изменён, и создание файлов, тут на три строки в общем случае получился...

при том, что TFileStream никто не отменял ( это если как в делфях писать ) да и ofstream юзать можно...
Цитата
Ясное дело... Но ведь я же не знал до этого что вся проблема в memo, с выделением строки глюкануть могла, я вообще думал, что у меня вектор не правильно создавался, и поэтому сидел тут его проверял...

я, вообще-то, имел в виду всякие if (strlen(Edit3->Text.c_str())==0) и Test.Capt = Edit1->Text.c_str();



--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Zero
Дата 14.10.2005, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

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



Цитата(_hunter @ 14.10.2005, 11:48)
я, вообще-то, имел в виду всякие if (strlen(Edit3->Text.c_str())==0) и Test.Capt = Edit1->Text.c_str();

И что тебе тут не понравилось??? smile
Цитата(_hunter @ 14.10.2005, 11:48)
при том, что TFileStream никто не отменял ( это если как в делфях писать ) да и ofstream юзать можно...

В делфях я никогда этим не пользуюсь...
Мне хватает assignfile, reset, rewrite, closefile и т.д. и т.п. ИМХО самый универсальный способ...
Цитата(_hunter @ 14.10.2005, 11:48)
пример можно?..

Я же тебе уже сказал, я знаю как на делфи это делается, а вот на С++ делаю уже несколько дней... Хотя задание для детей... smile
PM MAIL ICQ   Вверх
S.A.P.
Дата 14.10.2005, 22:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

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



Цитата(Zero @ 14.10.2005, 21:17)
if (strlen(Edit3->Text.c_str())==0)
я в билдере не работал, но судя по преобразованию c_str(), Edit3->Text является объектом класса std::string или подобного, у которого есть свой метод length() .

Хотя хз, может борманы и тут все напутали smile .

Это сообщение отредактировал(а) Perchilla - 14.10.2005, 22:29
PM MAIL   Вверх
Дрон
Дата 14.10.2005, 23:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java-ненавистник :)
****


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

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



Perchilla
Вы правы, сударь.
А вот мсье Zero, оказывется, редкостный извращенец.

Это, конечно, не std::string, а даже более навороченный класс -- так что длину свою он считать умеет smile


--------------------
Да. Именно так.
PM   Вверх
Zero
Дата 15.10.2005, 09:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

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



Цитата
А вот мсье Zero, оказывется, редкостный извращенец.

Блин, ну чё пристали... smile я же не знал, этих методов... Вот и пользуюсь универсальным строковым.
В след. раз учту, ваши коменты... smile
PM MAIL ICQ   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

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

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


 




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


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

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