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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как дописать некоторую строку в начало TFileStream, перечитал доки по TFileStream, TMemorySt 
V
    Опции темы
WDeveloper
Дата 1.2.2007, 00:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Побегал по поиску так и не нашёл ничего дельного, хотя тем просто уйма.
Не понимаю как в файловый поток подписать некоторое кол-во символов вначало?
Я пытался сделать это так:
Код
  FStream := TFileStream.Create( 'file1.txt', fmOpenReadWrite );
  FStream.Seek( 0, soFromBeginning );
  FStream.Write ( 'abc', 3 );

Но 3 первых символа просто перезаписались, а мне необходимо добавить.
Потом попробовать создать поток в памяти записать в начале нужный мне префикс, а затем только всё содержимое из файлового.. но MemoryStream так и осталась пустой, перебросить в него почему-то не удалось..

И ещё. Почему вот это не срабатывает:
Код

var Stream : TMemoryStream;
....
  Stream := TMemoryStream.Create;
  Str := '35643';
  Stream.WriteBuffer ( Str[1], SizeOf ( String ) );

Почему поток пуст?

PM MAIL   Вверх
Snowy
Дата 1.2.2007, 00:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Код

var
  ms: TMemoryStream;
  fs: TFileStream;
  s:  string;
begin
  ms := TMemoryStream.Create;
  try
    fs := TFileStream.Create('file.txt', fmOpenRead);
    s := 'строка';
    ms.Write(s[1], Length(s));
    ms.CopyFrom(fs, fs.Size);
    fs.Free;
    ms.SaveToFile('file.txt');
  finally
    ms.Free;
  end;

PM MAIL   Вверх
WDeveloper
Дата 1.2.2007, 00:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Ахренеть smile
Я убил на это полтора часа так и не добравшись до результата. Спасибо большое!
PM MAIL   Вверх
Romikgy
Дата 1.2.2007, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146



А че не заюзать TStringList ?
Код

var 
sl: TStringList;
s: string;
begin
 sl:=TStringList.Create;
s := 'строка';
sl.LoadFromFile('file.txt');
sl.Text:=s+sl.Text;
sl.SaveToFile('file.txt');
sl.Free;
end;



--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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