Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.02.2013, 18:17   #1
Fakov
Пользователь
 
Регистрация: 13.12.2009
Сообщений: 85
По умолчанию Не добавляет байт

Проблема - не добавляется байт. ЯП-делфи.

Нужно чтобы на 35 позиции от конца файла добавлялся(ни в коем случае не заменялся) байт, что не так в коде?

Код:
fs.Seek($00000023, SoFromEnd);
        s:=$FF;
        fs.Write(s, 1);
Сейчас добавляется 35 пустых позиций в конце файла, 35 из которых = FF.

Последний раз редактировалось Fakov; 13.02.2013 в 21:37.
Fakov вне форума Ответить с цитированием
Старый 13.02.2013, 18:44   #2
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Что такое "добавлять", не совсем понятно.
Если подразумевается, что нужно вставить байт в 35 от конца позицию, то, значит, остальные байты нужно сдвинуть на один к концу файла. В коде этого нет.
Другими словами, Вам нужно считать последние 35 байтов из файла, а затем записать сначала вставляемый байт, а потом - считанный "хвост".
s-andriano вне форума Ответить с цитированием
Старый 13.02.2013, 18:46   #3
Fakov
Пользователь
 
Регистрация: 13.12.2009
Сообщений: 85
По умолчанию

Цитата:
Сообщение от s-andriano Посмотреть сообщение
Если подразумевается, что нужно вставить байт в 35 от конца позицию, то, значит, остальные байты нужно сдвинуть на один к концу файла.
именно! как вставить? сейчас получается замена а не вставка, а надо вставить =\ чтобы сместилось =\
Fakov вне форума Ответить с цитированием
Старый 13.02.2013, 19:03   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Отходите от конца 35 байт.
Считываете 35 байт.
Опять отходите от конца 35 байт.
Пишите 36 байт.
Профит.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 13.02.2013, 19:04   #5
Fakov
Пользователь
 
Регистрация: 13.12.2009
Сообщений: 85
По умолчанию

BDA, я не знаю какой код, чтобы вставило, а не заменило. Мне строка нужна((
Fakov вне форума Ответить с цитированием
Старый 13.02.2013, 21:35   #6
Fakov
Пользователь
 
Регистрация: 13.12.2009
Сообщений: 85
По умолчанию

Народ, помогите( что писать, чтобы байт добавило а не заменило?(
Fakov вне форума Ответить с цитированием
Старый 13.02.2013, 21:57   #7
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  fs: tfilestream;
  s: array [0 .. 255] of ansichar;
  a: ansichar;
begin
  fs := tfilestream.Create('1.txt', fmOpenReadWrite);
  fs.Seek(-4, SoFromEnd);
  fs.Read(s, 4);
  fs.Seek(-4, SoFromEnd);
  a := '0';
  fs.Write(a, 1);
  fs.Write(s, 4);
  fs.Free;
end;
Вставляет нолик (текст) перед 4 последними символами-байтами в файле.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 13.02.2013, 22:06   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Нужно запомнить все что до конца, и потом дописать после 35-го байта.
Код:
fs.Seek(35, SoFromEnd);
        char a[35];
        fs.Read(a, 35);
fs.Seek(35, SoFromEnd);
        s:=$FF;
        fs.Write(s, 1);
        fs.Write(a, 35);
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.02.2013, 07:22   #9
Fakov
Пользователь
 
Регистрация: 13.12.2009
Сообщений: 85
По умолчанию

ЬСпасибо камрады) все получилось)
Fakov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Firebird DataSourse добавляет кавычки firacat C# (си шарп) 0 06.04.2012 14:03
Найти байт максимальным количестов единиц и байт с максмальным количеством нулей и разность (ассемблер) Beren42 Помощь студентам 0 15.12.2010 20:32
PHP. Не добавляет запись Студло Помощь студентам 12 26.03.2010 10:25
Скачал скрипт цитатника, но он не добавляет цитаты antiblef PHP 1 30.09.2009 13:42