Всем привет!!! У меня такая проблемма вернее их даже 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;
Admin: Пользуемся тегами!
тут вроде всё просто список файлов берётся с 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е изображение и скалько байт должно быть прочитанно. как это узнать. заранее благодарен всем.
Также хотклось бы прочитать ваши комментарии по моей функции плохие и хорошие.
