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

Чтение бинарных файлов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ работа с файлами http://www.cyberforum.ru/cpp-beginners/thread12535.html
Здравствуйте!прошу помогите пожалуйста написать программу на С++... Даны два файла(путь к файлам ввести с консоли).Надо найти сколько раз содержимое файла1 встречается в файле 2. Заранее спасибо))
C++ Как удалить символ Вот код проги, на экан выводит кол-во числ, затем <(скобки); перечисляет числа через запятую и наконец >(скобки)....... Как убрать после последнего числа и перед скобками запятую?? Допустим я ввёл 1 3 Прога пишет 3 <1,2,3,) Мне после 3 запятая не нужна Спасибо большое! #include <iostream> using namespace std; http://www.cyberforum.ru/cpp-beginners/thread12525.html
C++ Народ ПОБЛЕМА С Экраном на Borland C++ 5.02
Я вот решил попробывать Borland C++ 5.02 Написал программу (самую простую #include <iostream.h> int main() { *** cout << "Hello C++\n" ; *** return 0; } ) но экран просто бликаетю. Я думаю что нужна Задержка Экрана но незнаю как!Помогите Советом
C++ Widows приложения...
В чём отличия писать прогу на виндоуз приложения (например виндоускоке-окно) на 6 Visual и на 2005-ом
C++ Матрица в динамической памяти http://www.cyberforum.ru/cpp-beginners/thread12490.html
Здраствуйте,начал проходить динамическую память ,так немогу зделать 2-х мерный массив,помогите пожалуисто разобраться ,ии какие ошибки тут . void main() { int* mas=new int(5,10); srand(time(0)); for (int i=0;i<5;i++) { for(int j=0;j<10;j++) { *(mas+i+10+j)=rand()%100;
C++ Font Доброе утро!!!!!! Ребята подскажите, пожалуйста, у меня есть калькуляторный шрифт и хочу его использовать в компоненте Label1, но я не хочу копировать этот шрифт в общую папку со шрифтами Windows, а хочу чтобы этот шрифт тягался вместе с программой отдельно. Но я не знаю как в коде сделать ссылку на этот калькуляторный шрифт, чтобы компонент Label1 изменился. Помогите, пожалуйста или... подробнее

Показать сообщение отдельно
qwone
8 / 8 / 1
Регистрация: 18.08.2008
Сообщений: 129
29.09.2008, 17:43     Чтение бинарных файлов
1) открываешь компилятор с IDE(у меня визуал студио) и ставишь для програм в консольном режиме .
2) добавляешь файл main.cpp и копируешь туда это
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// main.cpp
#include <iostream>
#include <fstream>
using namespace std;
#include "data.h"
 
int const Dlina_File =766/2; // здесь поставишь длину файла деленую на 2
 
int main(){
    char *p="icon1.ico";  // имя файла для считывания 
    char *p2="icon2.ico"; // имя файла для записи
    Data A(Dlina_File);
    load(p,A);
    save(p2,A);
    for (int i=0;i<10;i++)
        cout<<i<<"\t"<<(int)A.GetI(i)/256<<"\t"<<A.GetI(i)%256 <<endl;
        // а здесь побайтовый вывод .
    return 0;
}
3) создаешь файл data.h и копируешь это
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
//data.h
class Data {
private:
    unsigned short *Data_p;
    unsigned int Len;
public:
    Data ();
    Data (unsigned short);
    ~Data ();
    friend void save(char *NameFile,Data & AA); // записать файл с диска в память
    friend void load(char *NameFile,Data & AA);// считать файл с диска в память
    void SetLen(unsigned short len);   // установить длину рабочего места в памяти
    unsigned short GetI(unsigned int I){return Data_p[I];}; // получить слово(2байта) из памяти
    void SetI(unsigned int I,unsigned short D){Data_p[I]=D;};// записать в память
};// ---- конец описания
Data::Data(){
    Len=0;
    Data_p=0;
}
Data::Data(unsigned short len){
    Len=len;Data_p=new unsigned short[Len];
}
void Data::SetLen(unsigned short len){
    delete[]Data_p;
    Len=len;Data_p=new unsigned short[Len];
    }    
Data::~Data(){
    delete[]Data_p;
    }
void save(char *NameFile,Data & AA){
    ofstream out(NameFile,ios::out |ios::binary);
    if(!out)
        cout <<"files don't open "<<endl;
    else{
        out.write((char*)AA.Data_p,(sizeof(unsigned short)*AA.Len));
        out.close();
        }
};
 
void load(char *NameFile,Data & AA){
    ifstream in(NameFile,ios::in |ios::binary);
    if(!in)
        cout <<"files don't open "<<endl;
    else {
        in.read((char*)AA.Data_p,(sizeof(unsigned short)*AA.Len));
        cout<<"READ OK" <<endl;
        in.close();
        }
};
4) находишь какойто бинарный файл . я взял иконку icon1.ico. но ты можешь взять любой и кидаешь туда где будет создаваться .ехе файл . потом меняешь название в программе с icon1.ico. на то что там будет .A icon2.ico на то что ты хочешь получить.
Затем в проводнике Windows находишь размер файла который у тебя будет вместо
icon1.ico. и смотришь свойства файла .там есть размер .
меняешь в main.cpp 766 на этот размер
int const Dlina_File =766/2;
Запускаешь и смотришь . Если образовался файл который ты заменил с icon2.ico .
то считывание и запись прошли успешно
C++
1
2
for (int i=0;i<10;i++)
        cout<<i<<"\t"<<(int)A.GetI(i)/256<<"\t"<<A.GetI(i)%256 <<endl;
В этом месте ты смотришь начало файла , здесь ты можешь менять их .
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru