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

Вниз

Обрезка файла   Найти похожие ветки 

 
allucard   (2007-04-17 15:05) [0]

Подкажите как можно удалить часть файла?

Например удалить первые 3743 байт в файла.

Спасибо.


 
Сергей М. ©   (2007-04-17 15:07) [1]

Файл-то большой ?


 
Ega23 ©   (2007-04-17 15:09) [2]

1. MemoryStream.LoadFromFile;
2. MemoryStream.Position := 3743
3. MemoryStream.Read
4. MemoryStream2.Write
5. MemoryStream2.SavetoFile;


Тупо в лоб.


 
MBo ©   (2007-04-17 15:11) [3]

Если поискать, то вполне может оказаться, что еще кого-то волнуют подобные проблемы, например:
http://delphimaster.net/view/2-1176733394/


 
allucard   (2007-04-17 16:21) [4]

Спасибки.


> Сергей М. ©   (17.04.07 15:07) [1]


12кбайт


 
Сергей М. ©   (2007-04-17 16:32) [5]


> allucard   (17.04.07 16:21) [4]


> 12кбайт


Ну эт "децл", как говорит "поколение Пепси")

Тады можно и, к примеру, так:

ms := TMemoryStream.Create;
ms.LoadFromFile(такой-то);
Move(@PByteArray(ms.Memory)[3743], ms.Memory^, ms.Size - 3743);
ms.Size := ms.Size - 3743;
ms.Position := 0;
ms.SaveToFile(оной же);
ms.Free;


 
allucard   (2007-04-18 08:16) [6]


> Сергей М. ©   (17.04.07 16:32) [5]


Всем доброе утречко.

А я могу теперь сделать так, если мне не нужно удалять физически из файла бинарный бред вначале файла, просто его как бы отбросив:

ms := TMemoryStream.Create;
ms.LoadFromFile(такой-то);
Move(@PByteArray(ms.Memory)[3743], ms.Memory^, ms.Size - 3743);
ms.Size := ms.Size - 3743;
ms.Position := 0;
StringList:= TStringList.Create;
StringList.LoadFromStream(ms);
ms.Free;
StringList.Delimiter := " ";
StringList.DelimitedText := StringList.Text;
for i := StringList.Count - 1 downto 0 do if StringList[i] = "" then StringList.Delete(i);
Memo1.Lines := StringList;
StringList.Free;
?


 
allucard   (2007-04-18 08:27) [7]


> Сергей М. ©   (17.04.07 16:32) [5]


> Move(@PByteArray(ms.Memory)[3743], ms.Memory^, ms.Size -  3743);

ms.Memory - такого нет.


 
Сергей М. ©   (2007-04-18 08:31) [8]


> ms.Memory - такого нет.
>


Как это нет ?)

А это что по-твоему (цитата из станд.справки):

Delphi Object and Component Reference
TMemoryStream properties
..

Derived from TCustomMemoryStream

Memory

Derived from TStream

Position
Size

??


 
allucard   (2007-04-18 08:34) [9]


> Сергей М. ©   (18.04.07 08:31) [8]

Его нет, когда вводишь внутри @PByteArray(ms.Memory)[3743],
пишет Variable required.


 
allucard   (2007-04-18 09:07) [10]

Что неправильного в параметрах Move, что ему не нравится?


 
Сергей М. ©   (2007-04-18 09:17) [11]

Move((@PByteArray(ms.Memory)[3743])^, ms.Memory^, ms.Size -  3743);


 
allucard   (2007-04-18 10:08) [12]


> Сергей М. ©   (18.04.07 09:17) [11]

как теперь поменять все биты $00 на $20.

for i:= 0 to ms.Size do
begin
ms.Position := i;

...и на этом мои познания закончились.
Подскажите как дальше?


 
Сергей М. ©   (2007-04-18 10:13) [13]


> allucard   (18.04.07 10:08) [12]


with ms do
for i := to Size-1 do
  if PByteArray(Memory)[i] = 0 then
    PByteArray(Memory)[i] = $20


 
allucard   (2007-04-18 10:14) [14]


> Сергей М. ©   (18.04.07 10:13) [13]

Спасибо.



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

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

Наверх




Память: 0.47 MB
Время: 0.042 c
3-1171613465
RomanH
2007-02-16 11:11
2007.05.06
Конструкция в ХП


2-1176530991
kyn66
2007-04-14 10:09
2007.05.06
Различие между двумя типами записей


2-1175695178
Romm
2007-04-04 17:59
2007.05.06
Програмное управление


15-1176130863
Loginov Dmitry
2007-04-09 19:01
2007.05.06
LDSLogger


11-1151003201
[e]Bu$ter
2006-06-22 23:06
2007.05.06
UMLI - Multi-language interface component





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