|
#1
|
|||
|
|||
Запись файлов
Всем привет!!! У меня такая проблемма вернее их даже 3 надеюсь поможите или дадите совет. Так вот написал я функцию записи нескольких файлов разных форматов в один и запихнул её в dll вот эта функция:
Код:
function WriteBase(ListBox: TListBox; OutFile: String): Boolean; var I: Integer; begin try Memory := TMemoryStream.Create; for I := 0 to ListBox.Count - 1 do begin InputFile := TFileStream.Create(ListBox.Items.Strings[i], fmOpenRead); Memory.Seek(0, soFromEnd); Memory.CopyFrom(InputFile, InputFile.Size); InputFile.Free; end; finally Memory.SaveToFile(OutFile); Memory.Free; Result := True; end; end; тут вроде всё просто список файлов берётся с ListBoxа затем поочереди файлы открываются для чтения и копируются в память затем содержимое памяти сохраняется в файл. И так вопросы после сохранения памити выводится такая фигня "Project D:\Программирование\Маiп Project [Delphi]\Write_basefile.exe faulted with message: "access violation at 0x003359b1: write of address 0x00030d04l. Process Stopped. Use Step or Run to continue." хотелось бы знать что это за ошибка ипочему она возникает? Второй вопрос как в этот же файл сохранить ещё и текст скажем из Мемо? И третий вопрос вот если я не ошибаюсь функция чтения этого файла должна иметь такой вид [позиция чтения] [колличество байт которые будут считываться] [файл куда это будет сохранено] Пример! Записали в файл 3 изображения. Теперь изображение 2 необходимо вытащить из этого файла как узнать позицию с которой начинается 2е изображение и скалько байт должно быть прочитанно. как это узнать. заранее благодарен всем. Также хотклось бы прочитать ваши комментарии по моей функции плохие и хорошие. Последний раз редактировалось Admin, 14.10.2010 в 21:05. |