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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обработка текстового файла, Изменить функцию 
:(
    Опции темы
vladko
Дата 2.4.2009, 20:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Есть функция в dll, которая обрабатывает текстовый файл и записывает результат в другой. Формат файла:

1.3446 11
1.325 876
1.3567 32
1.325 112

    
Код

#include <stdio.h>
#include <map>
using namespace std;
typedef map<double, int> Map;
extern "C"
{
void __stdcall proc1(const char* fileName)
{
    FILE* f = fopen(fileName, "r");
    if(!f)
    {
        printf("file not found\n");
        return;
    }
    Map m;
    for(;;)
    {
        double a;
        int b;
        if(fscanf(f, "%lf %d", &a, &b) < 2)
            break;
        pair<Map::iterator, bool> result = m.insert(pair<double, int>(a, b));
        if(!result.second)
            (result.first)->second += b;
    }
    fclose(f);
    char outFileName[264];
    strcpy(outFileName, fileName);
    strcat(outFileName, ".out");
    f = fopen(outFileName, "w");
    for(Map::iterator it = m.begin(); it != m.end(); ++it)
        fprintf(f, "%f %d\n", it->first, it->second);
    fclose(f);
}
}



Формат текстового файла изменился:

20090320 010013;1.3666;1
20090320 010017;1.3667;1
20090320 010017;1.3668;2
20090320 010021;1.3666;1
20090320 010027;1.3667;1
20090320 010057;1.3667;1
Как изменить функцию и добавить вычисления не по всему файлу а по куску ограниченному датой и временем (1 и 2 поля)? 
PM MAIL   Вверх
zim22
Дата 2.4.2009, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


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

Репутация: 29
Всего: 69



ваша тема есть в центре помощи
http://forum.vingrad.ru/topic-253578.html
не нужно их дублировать.


--------------------
PM MAIL   Вверх
vladko
Дата 2.4.2009, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Хорошо, а так: помогите решить за вознаграждение...
PM MAIL   Вверх
shara
Дата 2.4.2009, 21:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



если есть исходники библиотеки то просто взять и переписать РУЦЯМИ код функции
и по моему там не функция а клас

в чем проблема то?  smile 


--------------------
   с точки зрения аэродинамики шмель не может летать  
PM MAIL   Вверх
vladko
Дата 2.4.2009, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



так здесь и есть весь исходник... просто я си почти не знаю... пишу прогу на VB...
PM MAIL   Вверх
shara
Дата 2.4.2009, 21:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



если у тебя нет исходников этой библиотечной функции то у тебя два варианта:
1) писать функцию заново самому
2) декомпилировать библиотеку 

я склоняюсь к первому варианту, так как второй очень трудоемкий


--------------------
   с точки зрения аэродинамики шмель не может летать  
PM MAIL   Вверх
zim22
Дата 2.4.2009, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


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

Репутация: 29
Всего: 69



Цитата(vladko @  2.4.2009,  20:57 Найти цитируемый пост)
Хорошо, а так: помогите решить за вознаграждение...

smile держите
Код
#include <stdio.h>
#include <map>
using namespace std;
typedef map<int, int> Map;
extern "C"
{
void __stdcall proc1(const char* fileName)
{
    FILE* f = fopen(fileName, "r");
    if(!f)
    {
        printf("file not found\n");
        return;
    }
    Map m;
    for(;;)
    {
        int a;
        int b;
        double dummy1;
        int dummy2;
        if(fscanf(f, "%d %d;%lf;%d", &a, &b, &dummy1, &dummy2) < 4)
            break;
        pair<Map::iterator, bool> result = m.insert(pair<int, int>(a, b));
        if(!result.second)
            (result.first)->second += b;
    }
    fclose(f);
    char outFileName[264];
    strcpy(outFileName, fileName);
    strcat(outFileName, ".out");
    f = fopen(outFileName, "w");
    for(Map::iterator it = m.begin(); it != m.end(); ++it)
        fprintf(f, "%d %d\n", it->first, it->second);
    fclose(f);
}
}





--------------------
PM MAIL   Вверх
vladko
Дата 2.4.2009, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



ты не понял, у меня есть готовая dll  и ее исходник (он весь в первом посте)... исходник нужно изменить под новые условия, а ее откомпилю...
PM MAIL   Вверх
zim22
Дата 2.4.2009, 21:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


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

Репутация: 29
Всего: 69



vladko, ...
присматрися вниматильний к маиму кодду


--------------------
PM MAIL   Вверх
vladko
Дата 2.4.2009, 21:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



присмотрелся... а почему думми2 инт, там же может быть 235959? и как сделать ограничение по 1 и 2 полям?
PM MAIL   Вверх
zim22
Дата 2.4.2009, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


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

Репутация: 29
Всего: 69



vladko, рекомендую вам пересобрать dll. если она будет работать неправильно - потом и поспрашиваете.


--------------------
PM MAIL   Вверх
Anikmar
Дата 2.4.2009, 21:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

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



vladko, И вознаграждение для zim22 не забудьте!  smile 
PM MAIL ICQ   Вверх
zim22
Дата 3.4.2009, 07:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


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

Репутация: 29
Всего: 69



Цитата(Anikmar @  2.4.2009,  21:51 Найти цитируемый пост)
 И вознаграждение для zim22 не забудьте! 

vladko, я надеюсь вы слов на ветер не бросаете.  smile 



--------------------
PM MAIL   Вверх
vladko
Дата 3.4.2009, 09:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



А вот это не выполнено - "добавить вычисления не по всему файлу а по куску ограниченному датой и временем"....
PM MAIL   Вверх
Anikmar
Дата 3.4.2009, 09:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

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



Цитата(vladko @  3.4.2009,  09:21 Найти цитируемый пост)
А вот это не выполнено - "добавить вычисления не по всему файлу а по куску ограниченному датой и временем".... 

Ну настоящий полковник. Тьфу - заказчик  smile 

Если у вас DLL принимает только один параметр - имя файла, уточните каким образом организовать интерфейс.
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


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

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


 




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


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

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