win шутит наверно
От: R1K0 Россия  
Дата: 30.11.09 13:38
Оценка: :))
Всем привет. Столкнулся сегодня с такой проблемой. Есть 2 компа. На каждом из них полностью одинаковая версия винды.
Есть моя прога, которая создает файл на основе отработанной информации. Убедился, что создаваемый файл различается размером почти 2 раза при поностью идентичных начальных условиях. Вследствие этого на 2м компе программа работает не правильно.

ОТ чего это может зависеть ??
ЗЫ для работы с файлами использую std::fstream
Re: win шутит наверно
От: SaZ  
Дата: 30.11.09 14:18
Оценка:
Здравствуйте, R1K0, Вы писали:

RK>Всем привет. Столкнулся сегодня с такой проблемой. Есть 2 компа. На каждом из них полностью одинаковая версия винды.

RK>Есть моя прога, которая создает файл на основе отработанной информации. Убедился, что создаваемый файл различается размером почти 2 раза при поностью идентичных начальных условиях. Вследствие этого на 2м компе программа работает не правильно.

RK>ОТ чего это может зависеть ??

RK>ЗЫ для работы с файлами использую std::fstream

Код "сбора" информации в студию
Re[2]: win шутит наверно
От: R1K0 Россия  
Дата: 30.11.09 14:23
Оценка:
Здравствуйте, SaZ, Вы писали:

SaZ>Код "сбора" информации в студию


Попробую

Эта функция пишет информацию в файл. Ничего страшного нет — все четко по правилам. Указатель на момент записи не нулевой и не битый. Соответственно проверка на актуальность записи проходит (если строка больше пустой). Какой еще код кинуть — хз, ибо его реально много. Могу пояснить, что файл представляет собой метаинформацию о кэшированных файлах. Думаю идея понятна.

void cCacheSystem::Write( cCacheRecord * val_ )
{
    fstream f(_pathToMetaFile.c_str(), ios::binary | ios::app | ios::out);
    if (! f.is_open())
        printf("");

    {
        UINT len = val_->fileSize;
        f.write((char *) & len, sizeof(UINT));
    }

    if (val_->ETag.length())
    {
        UINT len = val_->ETag.length();
        f.write((char *) & len, sizeof(UINT));
        f.write(val_->ETag.c_str(), len);
    }
    else
    {
        UINT len = 0;
        f.write((char *) & len, sizeof(UINT));
    }

    if (val_->url.length())
    {
        UINT len = val_->url.length();
        f.write((char *) & len, sizeof(UINT));
        f.write(val_->url.c_str(), len);
    }
    else
    {
        UINT len = 0;
        f.write((char *) & len, sizeof(UINT));
    }

    if (val_->fileName.length())
    {
        UINT len = val_->fileName.length();
        f.write((char *) & len, sizeof(UINT));
        f.write(val_->fileName.c_str(), len);
    }
    else
    {
        UINT len = 0;
        f.write((char *) & len, sizeof(UINT));
    }

    if (val_->fullPathToFile.length())
    {
        UINT len = val_->fullPathToFile.length();
        f.write((char *) & len, sizeof(UINT));
        f.write(val_->fullPathToFile.c_str(), len);
    }
    else
    {
        UINT len = 0;
        f.write((char *) & len, sizeof(UINT));
    }

    if (val_->lastModified.length())
    {
        UINT len = val_->lastModified.length();
        f.write((char *) & len, sizeof(UINT));
        f.write(val_->lastModified.c_str(), len);
    }
    else
    {
        UINT len = 0;
        f.write((char *) & len, sizeof(UINT));
    }

    f.close();
}
Re[3]: win шутит наверно
От: SaZ  
Дата: 30.11.09 14:32
Оценка:
Здравствуйте, R1K0, Вы писали:
...

А собираемая информация эквивалентна? А размер кластера у файловой системы? :-P
Re: win шутит наверно
От: blackhearted Украина  
Дата: 30.11.09 14:36
Оценка:
Здравствуйте, R1K0, Вы писали:

RK>ОТ чего это может зависеть ??

RK>ЗЫ для работы с файлами использую std::fstream

От фазы луны?
Re[2]: win шутит наверно
От: R1K0 Россия  
Дата: 30.11.09 14:42
Оценка:
Все проблема решена
Как всегда виноват злой понедельник
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.