В этой статье я расскажу только теоретические представления о файлах, потому что их важно понять, чтобы успешно работать с файлами в HiAsm.
Любой файл, по сути, бинарный, потому что содержит двоичные данные. Даже текстовые файлы - и те содержат двоичные данные.
Возможно, это нарушит ваши представления о файлах, но даже текстовые файлы - и те бинарные! Что же это означает? Для этого нужно понять, что такое файл вообще. Файл - это просто набор байт независимо от содержания: графический, звуковой, текстовый или архив. Более того - не от набора байт зависит, картинка ли в файле или звук! Чтобы вы всё поняли, копнём глубже.
Байт - это единица измерения информации, состоящая из 8 бит. А что же такое бит? Бит - это тоже единица измерения информации, но у неё всего два возможных варианта, которые она может принимать. Это обусловлено тем, что физически бит представлен мельчайшим участком диска, который может быть либо намагничен, либо размагничен (условно). В одном случае бит считается равным 1, в другом – 0. Третьего не дано.
Расположенные рядом 8 бит и составляют 1 байт. Всего возможных комбинаций бит в байте - 256 (2^8). Следовательно, числовое значение байта может быть равно от 0 до 255 включительно.
Разумеется, текстовые файлы также являются набором байт со своими значениями, и никаких символов в этом наборе нет. Да и как символ можно записать на диск физически? Но как же из байт получаются символы? А вот как.
Интерпретация байт в файле зависит только от программы, в которой он открыт. Если это текстовый редактор, то он считывает каждый байт, в специальной таблице находит соответствие графического изображения символа значению байта и выводит символ на экран.
Если это звуковая программа, то она берёт обычно сразу два байта и находит их общее значение (16 бит - это 65 536 возможных значений!), а затем подаёт соответствующий сигнал на звуковую карту.
Графическая программа обычно берёт сразу 3 байта (24 бита = 16 777 216 значений!), находит по их значению соответствующий оттенок цвета и выдаёт его на экран (1 пиксель).
Что это значит? А то, что если графический файл открыть в Блокноте, то вы увидите символьное представление его байт. Разумеется, прочесть текст невозможно, но не для того и файл создан.
А если открыть текстовый файл в звуковой программе (GoldWave позволяет это сделать), то вы услышите просто шипение и писк. Сигнал подаётся правильно, в соответствии со значениями байт в файле, но именно такой набор значений и является писком и шипением...
А почему, если в проигрывателе открыть текстовый файл, он не проиграется, проигрыватель выдаст ошибку? Дело в том, что при записи записывающая программа добавляет к файлу в самом начале несколько байт. Значение этих байт - число - содержит размер "звуковых" байт, некоторую другую служебную информацию, в том числе и небольшую специфическую последовательность байт, по которой проигрыватель и понимает, что в файле - звук (такая комбинация станадртна для стандартных форматов типа WAV, MP3). А без этого он откажется воспроизводить файл.
Всё вышесказанное важно для работы с файлами в HiAsm. Вы теперь знаете, что файл - это набор байт. И работать будете либо с одним определённым байтом, либо с группой байт. Вы сможете создать "свой" формат файла, который будет содержать, например, картинку и звук, байты которых следуют друг за другом. При открытии такого файла в вашей программе она сможет извлечь байты, принадлежащие картинке, и вывести картинку, а также проиграть звук.
Также вы сможете эффективно работать с файлами известных форматов и многое другое.
Удалить татуировку или сделать фотоомоложение поможет лазерная медицина и косметология от компании LINLINE. Наносекундные лазерные импульсы.
Юридическая компания в Екатеринбурге поможет решить проблему в бизнесе. В компании "Оптима" есть и юристы, и бухгалтеры, и аудиторы, и оценщики, которые рассмотрят проблему комплексно и найдут выход.
Хотите купить автомобиль? Автомобили с пробегом, покупка автомобиля, автомобили по городам. Можете также подать объявление по продаже автомобиля.
понедельник, 16 ноября 2009 г.
Подписаться на:
Комментарии к сообщению (Atom)
Все ясно но мне нужно увидеть именно любой файл в бинарном виде , тоесть отдельно каждый байт в двоичной системе . А у меня открывается по 4 байта в блоке (тоесть interger). Да еще и количество бит в каждом блоке разное. Не знаю как вставить исходник в коментарий , может показали бы где у меня косяк. Попробую через почту
ОтветитьУдалитьНет черз почту тоже не получается (больше 300 знаков).
ОтветитьУдалитьЧтобы вставить исходник, выделите схему, скопируйте и вставьте в комментарий.
ОтветитьУдалитьЭта статья - просто вводная, сегодня я напишу конкретно про работу с файлами в HiAsm.
А как сделать в HiAsm чтоб открывались ехе или флеш файлы, тоесть у меня есть флеш файлы в ехе формате как их запхать в HiAsm для исполнения.
ОтветитьУдалитьзаранее спасибо, лучше схемку, так как я полный дундук.
Флэш можно так.
ОтветитьУдалитьExe по тому же принципу, но только после создания временного файла применять комопнент WinExec. что на вкладке "Система".
Спасибо большое, все получилось.
ОтветитьУдалитьГдето находил в интернете схемки для запуска внешнего файла, они все большие и у меня не работали. А эта супер, схемка простая, все работает. еще раз Спасибо...