Форум программистов, компьютерный форум CyberForum.ru

В файл скопировать информацию из дочерних файлов с заменой - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Exe2Com http://www.cyberforum.ru/cpp-beginners/thread640300.html
Привет всем. Сегодня мне потребовалось сконвертировать один EXE файл в *.com формат. Я скачал два "переводчика", но оба не работают. Один пишет has relocatable file, can't convert. Другой: INCORECT IP. Вопрос: что мне сделать, что "переводчик" работал. Пишу на Borland C++ 3.1
C++ Как сделать что бы программа не завершалась И тут написал простую программу вот ее код #include <iostream> using namespace std; int main() { int a =0; cout << "Enter number: "; cin >> a; int b =a*a; http://www.cyberforum.ru/cpp-beginners/thread640294.html
Можно ли пронести шкаф сквозь дверь, если проносить его разрешается так, чтобы каждое ребро шкафа было параллельно или перпендикулярно стороне двери. C++
Здравствуйте, решаю задачку и вот написал лобовое (простое решение и решил проверить что будет), но удивился что при прохождении тестирования выдало что все ответы не верны, и решил отправить тот же код только на Pascalе, и уже 40% прошло, что не так с сишным кодом, и как в подобного рода задач можно достичь найбольшей эффективности? #include <iostream> using namespace std; int main() { ...
Считывание и подсчет информации C++
Я ввожу в консоль, допустим 5+6 или 45-15 и программа должна в зависимости от знака подсчитать результат. Помогите пожалуйста в реализации
C++ Об указателях http://www.cyberforum.ru/cpp-beginners/thread640272.html
В чем разница между этими двумя строчками? int* x; int *x;
C++ Указатели Для чего нужны указатели? Можно же и одними переменными обойтись. Зачем нужны адреса переменных? подробнее

Показать сообщение отдельно
ZaMaZaN4iK
Мой лучший друг-отладчик!
 Аватар для ZaMaZaN4iK
163 / 163 / 9
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
Завершенные тесты: 1
20.08.2012, 23:24     В файл скопировать информацию из дочерних файлов с заменой
Здравствуйте.тут понадобилось накляпать прогу для работы с бинарными файлами, а в частности вот для чего нужна программа: дан главный бинарный файл, в определенным адресам в этот файл надо скопировать информацию из дочерних файлов с заменой.

вот код проги

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
// blja.cpp: главный файл проекта.
 
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <string>
 
using namespace std;
 
long long hextodec(char hex16[],short int leng)
{
    long long dec10 = 0,st16=16;
    short int i,j,k,temp=0;
    for(i=0,j=leng-1;i<leng;i++,j--)
    {
        switch(hex16[j])
        {
        case 'A':
            temp=10;
            break;
        case 'B':
            temp=11;
            break;
        case 'C':
            temp=12;
            break;
        case 'D':
            temp=13;
            break;
        case 'E':
            temp=14;
            break;
        case 'F':
            temp=15;
            break;
        default:
            temp=hex16[j]-'0';
        }
        if(i==0)
            dec10+=temp;
        else if(i==1)
            dec10+=temp*16;
        else
        {
            for(k=1;k<i;k++)
                st16*=16;
            dec10+=temp*st16;
            st16=16;
        }
    }
    return dec10;
}
 
void hren()
{
    system("chcp 1251");
    system("cls");
    cout<<"                 Программа для работы с бинарными файлами v1.0"<<endl<<"                                by ZaMaZaN4iK"<<endl;
    cout<<endl<<endl<<endl<<"Введите кол-во файлов, которые Вы хотите скопировать в главный файл : ";
}
 
int main()
{
    char hex16[9],file[256],symb;
    short int leng=0;
    long long temp=0,decas=0,decaf=0,raz=0,j=0,dig=0;
    int kol;
    hren();
    cin>>kol;
    cout<<"Пожалуйста ждите..."<<endl;
    ifstream adr("адреса.txt");
    ifstream files("files.txt");
    ifstream main("main.txt",ios::binary);
    fstream vrem("vrem.txt",ios::binary|ios::trunc|ios::in|ios::out);
    for(temp=0;temp<kol;temp++)
    {
        adr>>hex16;
        leng=strlen(hex16);
        decas=hextodec(hex16,leng);
        adr.seekg(2,ios::cur);
        adr>>hex16;
        leng=strlen(hex16);
        decaf=hextodec(hex16,leng);
        files>>file;
        ifstream other(file,ios::binary);
        if(temp==0)
        {
            
            for(j=0;j<decas;j++)
            {
                symb=main.get();
                vrem<<symb;
            }
        }
        else
        {
            for(j=0;j<decas-dig-1;j++)
            {
                symb=main.get();
                vrem<<symb;
            }
        }
        for(j=0;j<decaf-decas+1;j++)
        {
            symb=other.get();
            vrem<<symb;
        }
        dig=decaf;
        main.seekg(decaf+1);
    }
    if(!main.eof())
    {
        while(!main.eof())
        {
            if((symb=main.get()) != 'я')
            vrem<<symb;
        }
    }
    files.close();
    adr.close();
    vrem.close();
    main.close();
    system("pause");
}
Скажите пожалуйста, нормально ли он написан?

и ещё вопрос - после того, как все файлы скопированы в главный, оставшаяся часть главного файла копируется в выходной файл.И тут проблема - я копирую, пока не встертится конец файла.Но если я так копирую, то выводится символ 'я'.Я написал грубую проверку на символ "я", но мне такое не нравится.Как сделать по другому?

P.S не смотрите на имена файлов, мол расширение не bin а txt - я потом изменю.это тестовая версия проги.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 09:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru