На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Qraizer, Hsilgos
Страницы: (2) 1 [2]  все  ( Перейти к последнему сообщению )  
> Странные ошибки , Помогите, уже 3ий день мучаюсь
    По хорошему делай так:

    void TDataSet::ReadRec(){
    char *s;
    char c=' ';
    int k;

    s=(char*)malloc(FCount);
    fread(s,sizeof(char),FCount,DataFile);

    // Из буфера s переноси данные куда тебе надо.

    free(s);
    }
    Будет работать быстрее т.к. не надо в цикле читать файл по одному байту
    Сообщение отредактировано: DrUnkard -
      а лучше вообще от alloc и stdio избавиться. smile.gif

      На MSVC, например, ето практически сразу вылетит, на певом же созданном объекте smile.gif
        Visitor, т.е new вызывает конструктор, а calloc нет?
          Да. Там ного всего происходит, но и ето в том числе.
            Visitor, да мне именно в Bc3.1 надо smile.gif Это без вариантов.
              Цитата (Visitor @ 24.11.03, 18:58)
              а лучше вообще от alloc и stdio избавиться. smile.gif

              На MSVC, например, ето практически сразу вылетит, на певом же созданном объекте smile.gif

              А я не знаю Вашего С++ и MSVC tongue.gif
              biggrin.gif

              Я смотрю, что он использует СИ-шные ф-ии типа fread() и пишу ему ответ в том же духе.
                А в BC вылетит тогда, когда ты уже допишешь до того места, хде потом с ужасом обнаружишь, что надцать кб кода надо переписывать smile.gif
                  s=(char*)malloc(FCount);
                  FCount - кол-во полей в записи
                  Наверное ты имел ввиду:
                  s=(char *)malloc(L); //L=50 - длинна моей строки по дефолту
                    To Visitor
                    У меня не забалУешь! biggrin.gif
                    Я С++ (в смысле ООП) не использую, поэтому отслеживаю всё ручками. tongue.gif

                    To EnvOder
                    Может и так, я не разбирался в твоей проге.
                    Мой тебе совет:
                    Раз работаешь с БД - лучше поменьше файловых операций в теле цикла. Это существенно ускорит работу и не будет раздражать пользователя. Так что читай в буфер столько сколько возможно, а потом ужЕ ковыряйся циклами в памяти.
                    Сообщение отредактировано: DrUnkard -
                      Откуда я знаю, fread() сишная или с++сная? smile.gif В хелпе не написано rolleyes.gif
                        дык я ж говорю -- нада книжку хорошую... или две smile.gif
                          Drunkard, по поводу файловых операций я знаю. Только вот ВС3 под виндой сам жрет свою же кучу, и остается ее около 60 кб smile.gif Мы это пару недель назад, здесь, на форуме выяснили.
                          Так шо с буффером тут не шибко разгуляешься. dry.gif
                          Сообщение отредактировано: Env0der -
                            И правда ведь заработало laugh.gif
                            Сердечно благодарю, а то я думал, что пришел звиздец моему курсачу.
                            1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                            0 пользователей:


                            Рейтинг@Mail.ru
                            [ Script execution time: 0,0275 ]   [ 15 queries used ]   [ Generated: 18.07.25, 01:34 GMT ]