Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

"Двоичная" проблема

8.3K
09 апреля 2005 года
Eddie P.
8 / / 14.02.2005
Здравствуйте, порыскал в Инете, очень мало что нашел насчет Работы с Двоичными Файлами, были примеры, но Они мне не помогли, у меня такой Вопрос :

1- Как можно прочесть из Бинарного Файла данные, например с середины, с 500 по 550, (т.е. всего 50 символов ) и если возможно "превратить" их в char или AnsiString;

и еще Один если не возражаете :

2- Возможно ли такое чтобы превратить Эти Символы в "100110" (двоичную систему) ?
301
09 апреля 2005 года
lord Kelvin
897 / / 08.11.2004
Цитата:
Originally posted by Eddie P.
Здравствуйте, порыскал в Инете, очень мало что нашел насчет Работы с Двоичными Файлами, были примеры, но Они мне не помогли, у меня такой Вопрос :

1- Как можно прочесть из Бинарного Файла данные, например с середины, с 500 по 550, (т.е. всего 50 символов ) и если возможно "превратить" их в char или AnsiString;

и еще Один если не возражаете :

2- Возможно ли такое чтобы превратить Эти Символы в "100110" (двоичную систему) ?


1 - TFileStream.
2 - Да. IntToBin, хотя и самому не сложно.

8.3K
13 апреля 2005 года
Eddie P.
8 / / 14.02.2005
Цитата:
Originally posted by lord Kelvin
1 - TFileStream.
2 - Да. IntToBin, хотя и самому не сложно.



1 - Спасибо ОГРОМНОЕ
2 - А Как самому Можно ?

4
13 апреля 2005 года
mike
3.7K / / 01.10.2002
Небольшое отсупление.

Все файлы двоичные. Текстовые файлы тоже, просто существует такая договореность, что каждая строка заканичвается кодом 10 и/или 13. Текстовые символы - это один байт, от 32 (пробел) до 255 (русская "я" в кодировке windows-1251)

В разных кодировках символам соотвествуют разные коды.

Символы с кодом до 127 неизменны в любых кодировках.

Кодировки бывают многобайтовые, например Unicode, UTF-8, JIS, Shift-JIS, EUC.

Даже в многобайтовых кодировках символы с кодами до 127 неизмены.

Работать с двоичными данными просто. Можно, например, считывать их в определенный участок памяти и там работать как с массивом. Вот пример:

(набран прямо тут, могут быть ошибки)

Код:
include <stdio.h>

char *mem=(char*)malloc(256);

FILE *f=fopen("filename.exe","rb");
if (f) {
    fread(mem,1,256,f);
    fclose(f);

    for (int i=0;i<256;i++) {
        printf("0x%X\n",mem);
        }
    }
free(mem)


Пример выводит первые 256 байт файла filename.exe
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог