Форум программистов, компьютерный форум, киберфорум
Наши страницы

Delphi для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.68
AET
1 / 1 / 0
Регистрация: 27.04.2008
Сообщений: 64
#1

Считывать из файла по 2 байта, и менять старший байт с младшим местами - Delphi

28.06.2011, 17:50. Просмотров 2621. Ответов 18
Метки нет (Все метки)

подскожите как зделать чтобы из файла считывать по 2 баита и менять их местами младши бать с старшим баитом и сложить их НЕХ значения со следуюшим 2 баитами поменяв их местами старши баит с младчим баитом и так до конца файла
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.06.2011, 17:50
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Считывать из файла по 2 байта, и менять старший байт с младшим местами (Delphi):

Старший бит старшего байта поменять местами с младшим битом младшего байта - C (СИ)
Ребят помогите прогу доработать. Задача такая: В одномерном массиве чисел целого типа (16 бит) выполнить следующую двоичную обработку с...

Для целого числа А выделить старший байт и поставить его на место младшего байта. старший байт при этом обнулить. - C++
Помогите пожалуйста, вообще не могу понять как делать следующее...Еще и в программе CODE BLOCKS препод почему именно эту программу...

Программа, которая считывает 8 байт из созданного файла MyFile.dat, начиная с 7-го байта, относительно начала, и 10 байт от конца файла - Assembler
Привет, вот задание собсно Напишите программу, которая считывает 8 байт из созданного ранее файла MyFile.dat, начиная с 7-го байта,...

Как в четырехбайтовом числе поменять местами старший и младший байт? - PascalABC.NET
Помогите пожалуйста! Как в четырехбайтовом числе поменять местами старший и младший байт

Считывать из файла по 512 байт и записывать их в новый файл - C#
Надо считывать из файла по 512 байт и записывать их в новый файл. Так как я написал, при копировании больших файлов, не хватает величины...

Закодировать файл. Взять 7 байт. Первый бит каждого байта переместить в 8 байт - C++
Нужно открыть бинарный файл и закодировать следующим образом. Взять 7 байт. Первый бит каждого байта переместить в 8 байт. То есть,...

18
MikkiMouse
19 / 19 / 2
Регистрация: 26.05.2011
Сообщений: 65
29.06.2011, 15:17 #16
под переменной Buffer подразумевается строка string, а ты что используешь?
Если хочешь использовать TFileStream, попробуй так (правда сам не проверял)
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
procedure TForm1.Button3Click(Sender: TObject);
var
crc: Word; Buffer: String;
fs: TFileStream;
begin
  fs:=TFileStream.Create(OpenDialog1.FileName,fmOpenRead);
  SetLength(Buffer, fs.Size);
  fs.Read(Buffer[1], fs.Size);
  fs.Free;
  crc := CRC16(PChar(Buffer),Length(Buffer));
  Memo1.Text :=IntToHex(crc, 2);
end;
0
AET
1 / 1 / 0
Регистрация: 27.04.2008
Сообщений: 64
29.06.2011, 17:23  [ТС] #17
программа работает но вычисляет не правельно к примеру в фаиле НЕХ значения 24 4Е + 4В 46 = 6F 94 а программа выдает другое C785
вот насчел на РНР
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
for ($i=0;$i<($razm_nkf-2);$i++)
{
$b = $checksumm{$i}; 
$i++;
$c = $checksumm{$i}; 
$p = (ord($b) << 8); 
$p = $p & 0xff00; 
$e = ord($c); 
$e = $e & 0x00ff;
$w = ($p + $e );
$crc = ($crc + $w);
}
$xx = 0;
for($ss=0; $ss < 65535; $ss++){
 $xx = ($crc+$ss)&0xffff;
 if ($xx == 42405){
 echo "<p> Checksums16 found : <font color=green> $ss dec </font>"; 
 $vv = $ss;
 }
}
помагите его преобразавать в делфи
0
murderer
3309 / 1456 / 80
Регистрация: 06.10.2010
Сообщений: 3,203
29.06.2011, 19:22 #18
блогодарен но мне надо их складывать не первые два баит а с 3 и 4 пример НЕХ значении 47 3C 24 5A переварачиваем первые 2 байта 3С 47 переворачиваем вторые 2 баита 5А 24 и их складываем 3С 47 + 5А 24 = 966В
Функция swap с 2 байтным операндом как раз делает то, что тебе надо.
Delphi
1
2
3
read(f,a);          //считывем 473C
read(f,b);          //считываем 245A
c:=swap(a)+swap(b); //c:=3С47+5А24
0
AET
1 / 1 / 0
Регистрация: 27.04.2008
Сообщений: 64
29.06.2011, 20:44  [ТС] #19
все зделал всем огромное спосиба:dance3:
0
29.06.2011, 20:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.06.2011, 20:44
Привет! Вот еще темы с ответами:

функция изменяет старший байт числа на заданное значение не изменяя младший байт - C++
функция изменяет старший байт числа на заданное значение не изменяя младший байт. как можно проще

Удалить из каждого байта строки первый (старший) бит. - C++
Здравствуйте. Суть задачи в общем-то и отображена в названии задачи. Есть строка: unsigned char str; Необходимо в каждом...

Считать старший байт числа - C++
Добрый день подскажите пожалуйста! Как в переменную записать число 3 числа 35, или 6 числа 69?

Строку с описанием каждого байта в массив байт - C#
Имеется строка в ASCII (такого вида &quot;0A3948DE&quot;), каждые 2 символа которой нужно превратить в байт массива байт согласно их значениям,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru