Главная страница
    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.45 MB
Время: 0.011 c
3-38718
Vi0let
2004-01-22 07:13
2004.02.13
Почему везде в примерах по локалкам используют Paradox?


3-38690
Gorlum
2004-01-23 16:39
2004.02.13
Восстановление после упаковки


1-38842
CTAPbIi
2004-01-29 11:49
2004.02.13
Эмуляция раскрытия списка в DBGrid


3-38727
koks
2004-01-19 11:54
2004.02.13
Update с параметром - не пашет :((


3-38692
VID
2004-01-21 21:24
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский