Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.02.13;
Скачать: [xml.tar.bz2];

Вниз

Как   Найти похожие ветки 

 
Sergey_la   (2004-01-29 00:40) [0]

Проблема заключается в следующем:
Есть файл длиной где-то в 300 Мб, в конце этого файла -
50 Мб нулей. Как можно получить файл длиной в 250 Мб, не прибегая к копированию даных в новый файл?


 
Palladin   (2004-01-29 00:47) [1]

Truncate + F1


 
Slym   (2004-01-29 03:58) [2]

SetEndOfFile


 
8ung   (2004-01-29 11:43) [3]

Работай с Tmemorystream.
При загрузке файла Tmemorystream грузит файл в память. Таким образом ты можешь изменять файл, открытый Tmemorystream, а затем записать его поверх старого.


 
jack128   (2004-01-29 11:49) [4]


> 8ung © (29.01.04 11:43) [3]
ну да и 300 мешков памяти занимаешь, просто так..


 
8ung   (2004-01-29 11:54) [5]

Допустим нули начинаются с байта по адресу $20.
Пример:
var
tm1,tm2 : TMemoryStream;
begin
tm1 := TMemoryStream.Create;
tm2 := TMemoryStream.Create;
tm1.LoadFromFile("C:\file.EXE");//загрузить в tm1 файл "C:\file.EXE"
tm1.Seek(0,soFromBeginning);//прейти в позицию 0 в файле
tm2.CopyFrom(tm1,$20);//скопировать из tm1 в tm2 20h байт
tm1.Free;
tm2.SaveToFile("C:\file.EXE");//сохранить полученный файл в "C:\file.EXE"
tm2.Free;
end;


 
Vit@ly   (2004-01-29 11:58) [6]

> Sergey_la (29.01.04 00:40)
читай Palladin © (29.01.04 00:47) [1]
Assign
Reset( ,1)
Seek()
Truncate
Close


 
Palladin   (2004-01-29 11:58) [7]


> 8ung © (29.01.04 11:54) [5]

более идиотского решения придумать нельзя...


 
pasha_golub   (2004-01-29 12:56) [8]

Palladin © (29.01.04 11:58) [7]

Можно. :-)

for i:= FileSize(F) downto DeletePos do
begin
Seek(F,i);
Truncate(F);
end;


 
Sergey_la   (2004-02-04 00:44) [9]

Ребят, спасибо большое!



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.02.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.018 c
14-39010
Stilgar
2004-01-26 20:08
2004.02.13
Подскажите бесплатный хостинг


1-38920
ss300
2004-02-04 13:21
2004.02.13
проверка на цифру


1-38771
WebErr
2004-02-03 18:05
2004.02.13
Как сделать TForm у внука?


1-38912
Olivka
2004-02-04 12:21
2004.02.13
Параметры запроса в FIBdataset.UpdateSQL


1-38778
MadGhost
2004-02-04 21:58
2004.02.13
можно ли создать свой курсор мыши, и включить его в приложение?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский