1 / 1 / 2
Регистрация: 26.08.2013
Сообщений: 381
1

Перенести байты с конца файла в его начало

03.07.2015, 12:05. Показов 1141. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть код :
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
  FSrc := TFileStream.Create('221.exe', fmOpenRead);
  try
    FDst := TFileStream.Create('221.exe.new', fmCreate);
    try
      FSrc.Position := 8;
      FDst.CopyFrom(FSrc, FSrc.Size - 8);
      FSrc.Position := 0;
      FDst.CopyFrom(FSrc, 8);
    finally
      FDst.Free;
    end;
  finally
    FSrc.Free;
  end;
он переносит 8 байтов в конец, но вот как перенести потом обратно их в начало ? как не пытался чет не выходит ... можете подсказать ?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.07.2015, 12:05
Ответы с готовыми решениями:

Перенести последний элемент списка в его начало
Привет всем! Помогите выполнить задание на си: Создать список, содержащий целые числа. Перенести...

Перенести в начало массива А (n) все его отрицательные
Перенести в начало массива A(n) все его отрицательные элементы,затем-нулевые и в конце-все...

Перенести в начало списка его последний элемент
итак, мне нужно перенести на начало списка его последний элемент. во-первых, я не понял, как...

Все отрицательные элементы целочисленного файла перенести в начало файла
Все отрицательные элементы целочисленного файла перенести в начало файла (дополнительного файла не...

4
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
03.07.2015, 12:40 2
Цитата Сообщение от vuasya Посмотреть сообщение
потом обратно их в начало
Результатом очевидно будет точная копия файла 221.exe.
Просто удали 221.exe.new и сделай копию 221.exe под именем 221.exe.new - и всего делов-то)
0
1 / 1 / 2
Регистрация: 26.08.2013
Сообщений: 381
03.07.2015, 12:47  [ТС] 3
Цитата Сообщение от mss Посмотреть сообщение
Просто удали 221.exe.new и сделай копию 221.exe под именем 221.exe.new - и всего делов-то)
проблема в том, что файл 221(оригинал ) удаляется (в коде просто не указал ) . Нужно из 221.exe.new восстановить 221.exe, тобишь перенести обратно байты.
0
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
03.07.2015, 13:06 4
Лучший ответ Сообщение было отмечено vuasya как решение

Решение

Цитата Сообщение от vuasya Посмотреть сообщение
проблема в том, что ..оригинал .. удаляется
И что тут проблемного ?

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
  FSrc := TFileStream.Create('221.exe.new', fmOpenRead);
  try
    FDst := TFileStream.Create('221.exe', fmCreate);
    try
      FSrc.Position := FSrc.Size - 8;
      FDst.CopyFrom(FSrc, 8);
      FSrc.Position := 0;
      FDst.CopyFrom(FSrc, FSrc.Size - 8);
    finally
      FDst.Free;
    end;
  finally
    FSrc.Free;
  end;
0
1 / 1 / 2
Регистрация: 26.08.2013
Сообщений: 381
03.07.2015, 13:28  [ТС] 5
Цитата Сообщение от mss Посмотреть сообщение
И что тут проблемного ?
спасибо. Я примерно так и делал , но не полностью . Спасибо

Добавлено через 59 секунд
пойду подучу лучше delphi )
0
03.07.2015, 13:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.07.2015, 13:28
Помогаю со студенческими работами здесь

Все отрицательные элементы массива перенести в его начало, а все остальные в его конец
Задана последовательность из N целых чисел. Все отрицательные элементы массива перенести в его...

Перенести в начало непустого списка его последний элемент
Используйте линейные списки для хранения последовательности чисел. Опишите процедуру или функцию,...

Все отрицательные элементы массива перенести в его начало
Все отрицательные элементы массива перенести в его начало , а все остальные в его конец , сохраняя...

Перенести в начало непустого списка его последний элемент
Используя линейные списки для хранения последовательности описать процедуры или функции для решения...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru