Проблема с Tstringlist

Тема в разделе "Общие вопросы по С и С++", создана пользователем Dionis, 27 авг 2007.

  1. Dionis

    Dionis Гость

    Репутация:
    0
    Народ, помогите кто может!
    Я уже совсем голову сломал - ни фига не могу врубится что за засада!
    Вроде все просто, но вылетает AV!

    Короче ситуация такая:

    Прог-а выполняется на Windows 2003.
    В цикле вызывается функция Function.
    Код:
    int Function(void)
    {
    TStringList *Otvet = NULL;
    
    if(!FileExists(FileFor1))
    return ERR_FILE_EXT_LOCAL;
    
    Otvet = new TStringList;
    Otvet->LoadFromFile(FileFor1);
    
    ..... код ......
    
    if(Otvet != NULL) delete Otvet;
    
    };
    Так вот вроде все работает нормально, но на третьем файле (постоянно на одном и том же)
    при Otvet->LoadFromFile(FileFor1); вылетает AV.
    Файл обычный, текстовой...

    Пробовал извращаться:
    Код:
    int Function(void)
    {
    Otvet = new TStringList;
    char *File = NULL;
    int len = 0, h = 0;
    
    h = open(FileFor1.c_str(), 0);
    len = filelength(h);
    close(h);
    
    File = (char *)malloc(len+1);
    ifstream infile(FileFor1.c_str(), ios::binary);
    infile.read(File, len);
    infile.close();
    File[len] = '\0';
    
    
    Otvet->Text = String(File);
    
    ..... код ......
    
    if(Otvet != NULL) delete Otvet;
    free(File);
    
    };
    Однако, при Otvet->Text = String(File); уже на 15-ом (одном и том же файле)
    опять вылетает AV.

    Мож есть у кого какие мысли?
     
  2. mms

    mms Гость

    Репутация:
    0
    Сообщение ошибки напишите.
     
  3. shisik

    shisik Well-Known Member

    Репутация:
    0
    Регистрация:
    26 авг 2007
    Сообщения:
    154
    Симпатии:
    0
    Только что попытался смоделировать вашу ситуацию. В качестве загружаемых файлов использовал файлы проекта
    Код:
    TSearchRec R;
    FindFirst("*.*", faAnyFile, R);
    ...
    И действительно функция спотыкается об Project1.tds на Otvet->LoadFromFile(FileFor1);

    Но это лишь с запущенным билдером. Если билдер выключить и запустить программу просто так, то никаких ошибок не выдаёт. Может, у вас такая-же ситуация? Или вы читаете определённые файлы, а не лишь бы какие?
     
  4. Dionis

    Dionis Гость

    Репутация:
    0
    Ну там аксесс виалейшн при обращении к определённому адресу...

    Определённые, а не лишь бы какие... Файлы с расширением *.tmp и они в текстовом формате....

    Да ладно, забудте...

    Я уже решил (после 2-х дней мытарств), что это галюн с StringList. Ведь иначе и не может быть! Решено его уже не использовать....
    Он мне нужен был для построчного парсинга.
    Сейчас переделал проект - считываю файл в char массив, вырезаю искомые строки и далее их парсю....
    Вроде так надёжнее...
    Но ПОНМИТЕ!!! ( :unsure: ) подобный галюн с StringList возможен ;)
     
Загрузка...
Похожие Темы - Проблема Tstringlist
  1. pack
    Ответов:
    5
    Просмотров:
    60
  2. Alex1994
    Ответов:
    7
    Просмотров:
    115
  3. PingvinPingvin
    Ответов:
    10
    Просмотров:
    122
  4. Free2playman
    Ответов:
    14
    Просмотров:
    151
  5. Дмитрий17
    Ответов:
    10
    Просмотров:
    203

Поделиться этой страницей