Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> проблемы с созданием бинарного файла 
:(
    Опции темы
COOLHack
Дата 26.3.2009, 20:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 281
Регистрация: 8.2.2008

Репутация: 1
Всего: 0



Имеется переменная, a:='asd'. 
Подскажите как эту переменную записать в бинарный файл побайтно, при этом прибавляя к каждому байту определённо число? (например 4).
PM MAIL   Вверх
SlaUr
Дата 27.3.2009, 09:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 408
Регистрация: 18.9.2003

Репутация: 1
Всего: 5



Код

var F1:Text;St1:string;i1:integer;b1:integer;

begin
St1:='wew';
AssignFile(F1,'C:\1.bin');
Rewrite(F1);
For i1:=1 to Length(St1) do
begin
  B1:=Ord(St1[i1]);
  B1:=B1+4;
  if B1>255 then B1:=b1-255;
  Write(F1,Chr(b1));
end;
CloseFile(F1);
end;



Это сообщение отредактировал(а) SlaUr - 27.3.2009, 09:48
PM MAIL   Вверх
THandle
Дата 27.3.2009, 10:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 50
Всего: 372



Или как-то так.

Код

//магическое число
const
  M_C = 4;

//запись
procedure TForm2.Button1Click(Sender: TObject);
var
  a: String;
  I: Integer;
  Len: Integer;
  W: Byte;
begin
  a := 'asd';
  with TFileStream.Create('E:\PSBFT', fmCreate) do
  try
    Len := Length(a);
    Write(Len, SizeOf(Integer));
    for I := 1 to Len do
    begin
      W := Ord(a[I]);
      Inc(W, M_C);
      Write(W, SizeOf(Byte));
    end;
  finally
    Free;
  end;
end;

//чтение
procedure TForm2.Button2Click(Sender: TObject);
var
  a: String;
  I: Integer;
  Len: Integer;
  W: Byte;
begin
  with TFileStream.Create('E:\PSBFT', fmOpenRead) do
  try
    Read(Len, SizeOf(Integer));
    SetLength(a, Len);
    for I := 1 to Len do
    begin
      Read(W, SizeOf(Byte));
      Dec(W, M_C);
      a[I] := Chr(W);
    end;
  finally
    Free;
  end;
  ShowMessage(a);
end;


ЗЫ: написано в блокноте, Delphi не стоит. Но работать должно)
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0434 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.