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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.09.2014, 18:25   #11
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

саша40, У меня столько текст. информации каждые 2 минуты записывается и разбивается по 4 гб.
Человек_Борща вне форума Ответить с цитированием
Старый 17.09.2014, 18:29   #12
prog32bit
 
Регистрация: 16.09.2014
Сообщений: 5
По умолчанию

либо я тупой, либо лыжи не едут.
что-то не получается даже не изменяя ничего. кракозябры сохраняет
Код:
var fss,fssl:TFileStream;
begin
fss:=TFileStream.Create(OpenDialog1.FileName,fmOpenRead,fmShareExclusive);
fssl:=TFileStream.Create(OpenDialog1.FileName+'.tmp',fmCreate,fmShareExclusive);
fssl.Write(fss,fss.Size);
fssl.Free;
fss.Free;
prog32bit вне форума Ответить с цитированием
Старый 17.09.2014, 19:01   #13
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Код:
fssl.Write(fss,fss.Size); // Harry Potter detected!!! :)
Пишешь в файл значение указателя (4 байта) плюс следующий в памяти за ним мусор (Size - 4 байт). Красота!
А покурить маны как всегда влом, погонять в танчики важнее!
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...

Последний раз редактировалось min@y™; 17.09.2014 в 19:06.
min@y™ вне форума Ответить с цитированием
Старый 17.09.2014, 19:20   #14
prog32bit
 
Регистрация: 16.09.2014
Сообщений: 5
По умолчанию

спасибо. теперь остается 1 вопрос: как узнать позицию символа #13 (переноса строки) в потоке.
пока код таков
Код:
var fss,fssl:TFileStream;
begin
fss:=TFileStream.Create(OpenDialog1.FileName,fmOpenRead,fmShareExclusive);
fssl:=TFileStream.Create(OpenDialog1.FileName+'.tmp',fmCreate,fmShareExclusive);
fss.Position:=4; //к примеру
fssl.CopyFrom(fss,fss.Size-fss.Position);
fssl.Free;
fss.Free;
prog32bit вне форума Ответить с цитированием
Старый 17.09.2014, 19:29   #15
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
как узнать позицию символа #13 (переноса строки) в потоке.
Найти байт в потоке - эт чо, проблема?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 18.09.2014, 00:04   #16
prog32bit
 
Регистрация: 16.09.2014
Сообщений: 5
По умолчанию

подскажите, пожалуйста, в чем я не прав (ругается следующим образом: Stream Read Error)
Код:
var fss,fssl:TFileStream; s:string;
begin
fss:=TFileStream.Create(OpenDialog1.FileName,fmOpenRead,fmShareExclusive);
fssl:=TFileStream.Create(OpenDialog1.FileName+'.tmp',fmCreate,fmShareExclusive);
fss.Position:=0;
while true do
begin
  fss.Position:=fss.Position+1;
  if fss.Position>fss.Size then begin fss.Position:=fss.Size; exit; end;
  SetLength(s,fss.Position);
  fss.ReadBuffer(s[1],fss.Position);
  if pos(chr($0D),s)>0 then exit;
end;
fssl.CopyFrom(fss,fss.Size-fss.Position);
fssl.Free;
fss.Free;
end;

Последний раз редактировалось prog32bit; 18.09.2014 в 00:08. Причина: дополнение
prog32bit вне форума Ответить с цитированием
Старый 18.09.2014, 00:12   #17
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Ну, в отладчике прогони, сразу поймёшь, в чём дело и где ошибка.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 18.09.2014, 01:56   #18
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,926
По умолчанию

Цитата:
Сообщение от indexx Посмотреть сообщение
Думаю, что 4gb, это запас прочности. Явно не бинар. Если в бинаре тупо снести первую строку, то он умрёт, будь то программа, или медиафайл.
Сначала умрёт программист-троешник при попытке найти первую строку в "программе или медиафайле".
northener вне форума Ответить с цитированием
Старый 18.09.2014, 02:02   #19
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,926
По умолчанию

Цитата:
Сообщение от prog32bit Посмотреть сообщение
Доброго времени суток. Интересует вопрос по следующей теме:
Как удалить первую строку из файла. При этом файл может быть любого размера (например, 4 ГБ). А 4 ГБ подгружать в память не айс.
Хм. Вот уже прошло более суток с момента опубликования сего вопроса. А никто так и не озаботился спросить автора - А Нафига Это Нужно?
Может неозвученную автором задачу можно решить гораздо проще и элегантнее?
northener вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
УДаление строки из файла методом создания временного файла. dykatob Общие вопросы C/C++ 3 28.05.2011 01:46
Удаление строки из файла Flippp Общие вопросы C/C++ 10 12.11.2009 19:36
Удаление строки из файла. Arhe Общие вопросы .NET 4 03.11.2009 12:12
Удаление строки из файла Македонский Общие вопросы Delphi 5 29.08.2007 15:40