Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.01.2015, 08:36   #1
rzawm
Пользователь
 
Аватар для rzawm
 
Регистрация: 06.04.2009
Сообщений: 80
По умолчанию Вопрос по ZipForge

Всем доброго времени суток!
Уважаемые комрады, требуется помощ, ответ думаю элементарен, но никак я сам его не найду.
Суть вопроса
Есть форма, на форме TMemo, TButton, TSaveDialog, TZipForge.
В процессе работы приложения Memo заполняется различными данными и в некоторый момент времени нам надо щелкнув Button содержимое Memo сохранить в zip архив задав имя архива через savedialog.

Чего я смог добится:
Получился вот такой код
Код:
procedure TForm1.Button11Click(Sender: TObject);
begin
with SaveDialog2, Memo3 do
       if Execute then
         begin
            Lines.SaveToFile(FileName);
            ZipForge1.FileName:=Savedialog2.FileName;
            zipforge1.OpenArchive(fmcreate);
            ZipForge1.AddFiles(filename);
            ZipForge1.CloseArchive();
            saveDialog2.FileName:=FileName;
         end;
end;
Результатом его работы стало создание zip файла, но абсолютно пустого, а нужен внутри зип файлик с содержимым из memo

Заранее всем благодарен

Последний раз редактировалось Stilet; 22.01.2015 в 09:35.
rzawm вне форума Ответить с цитированием
Старый 22.01.2015, 09:09   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

FileName в данном контексте и будет saveDialog2.FileName. И что получится в результате? with убери
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 22.01.2015, 09:20   #3
rzawm
Пользователь
 
Аватар для rzawm
 
Регистрация: 06.04.2009
Сообщений: 80
По умолчанию

т.е. убираю with и Lines.SaveToFile(FileName); - это меняю на Lines.SaveToFile(saveDialog2.FileNa me)

Получается
Код:
procedure TForm1.Button11Click(Sender: TObject);
 begin
 SaveDialog2, Memo3 do
 if Execute then
 begin
 Lines.SaveToFile(saveDialog2.FileName);
 ZipForge1.FileName:=Savedialog2.FileName;
 zipforge1.OpenArchive(fmcreate);
 ZipForge1.AddFiles(aveDialog2.FileName);
 ZipForge1.CloseArchive();
// saveDialog2.FileName:=FileName;
 end;
 end;
Так получается, правильно понял?

Последний раз редактировалось Stilet; 23.01.2015 в 10:10.
rzawm вне форума Ответить с цитированием
Старый 22.01.2015, 09:27   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Вообще-то из мемо должно выгружаться в один файл, архив создаваться в другой. И with так не убирается
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 22.01.2015, 09:34   #5
rzawm
Пользователь
 
Аватар для rzawm
 
Регистрация: 06.04.2009
Сообщений: 80
По умолчанию

Аватар, да всё так. Изначально на форме была одна кнопочка, по которой содержимое мемо сохранялось в файл, имя и путь пользователь сам указвает, сейчас появилась задача сохранять содержимое мемо еще и в zip архив.
А нельзя на примере моего куска кода показать понагляднее, очень буду благодарен?

Уважаемы, ну очень надо, подскажите наглядно на моем примере

Последний раз редактировалось Stilet; 23.01.2015 в 10:11.
rzawm вне форума Ответить с цитированием
Старый 23.01.2015, 10:48   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Ну примерно так. С ZipForge не работал, методов не знаю
Код:
procedure TForm1.Button11Click(Sender: TObject);
var TempPath,TempFileName: String;
    i: Integer;
begin
  if SaveDialog2.Execute then begin
    SetLength(TempPath,MAX_PATH);
    i:=GetTempPath(Length(TempPath),PChar(TempPath));
    SetLength(TempPath,i);
    SetLength(TempFileName,MAX_PATH);
    i:=GetTempFileName(PChar(TempPath),'myf',0,PChar(TempFileName));
    SetLength(TempFileName,i);
    TempFileName:=TempFileName+'.txt';
    try
      Memo3.Lines.SaveToFile(TempFileName);
    except
      ShowMessage('Ошибка выгрузки из memo');
      Exit;
    end;
    try
      try
        ZipForge1.FileName:=Savedialog2.FileName;
        ZipForge1.OpenArchive(fmcreate);
        ZipForge1.AddFiles(TempFileName);
        ZipForge1.CloseArchive();
      except
        ShowMessage('Ошибка создания архива');
        Exit;
      end;
    finally
      DeleteFile(TempFileName);
    end;
  end;
end;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 23.01.2015, 11:53   #7
rzawm
Пользователь
 
Аватар для rzawm
 
Регистрация: 06.04.2009
Сообщений: 80
По умолчанию

Аватар, спасибо большое! Вечером испытаю. Ваша помощ неоценима!

Аватар, попробовал, какбы получилось но отчасти.
Архив создался, именно в том месте куда я указал savedialog ом, но содержимое архива, дежит ещё в нескольких папках, а необходимо чтобы бло в корне и расширение почемуто *.tmp

Вот скрин



Файлик zip я создал под именем 963.zip
мне надо чтобы открыл созданный зип архив и внем сразу файлик с расширением например *.txt без каких либо папок.

Что то никак не получается разобраться с путем по которому создается архив и откуда расширение *.tmp берется, надо файл с архивом создать выбрав в savedialog путь и имя, а файл из memo должен лежать в корне созданного архива, а не в пяти папках как получилось. Подскажите пожалуйста

Всем спасибо, разобрался, тему можно закрывать

Последний раз редактировалось Stilet; 20.03.2015 в 13:52.
rzawm вне форума Ответить с цитированием
Старый 19.03.2015, 12:08   #8
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

Чтобы не плодить новые тему, спрошу здесь. Тем более название темы соответсвует.
Скачал я ZipForge v.6.50 - Personal Edition с сайта http://www.componentace.com/
Этот компонент вроде бесплатный. Но вот собственно вопрос. Могу ли я распространять свою программу, использующую этот компонент? Что-то ничего не нашёл по этому поводу.
FaTaL вне форума Ответить с цитированием
Старый 19.03.2015, 13:50   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

FaTaL, простите, а с чего Вы решили, что это БЕСПЛАТНЫЙ компонент?!

по вашей же ссылке -
http://www.componentace.com/order/or...oduct.php?id=2
Serge_Bliznykov вне форума Ответить с цитированием
Старый 19.03.2015, 15:20   #10
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
простите, а с чего Вы решили, что это БЕСПЛАТНЫЙ компонент?!
Потому что он скачивается бесплатно и не имеет триального периода. Или это не так? Он у меня стоит в среде уже несколько месяцев и работает нормально, без каких либо запросов на оплату этого продукта.
FaTaL вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Глобальная блокировка файлов в ZipForge Jekerterim Общие вопросы Delphi 4 17.08.2013 18:45
ZipForge brain22 Общие вопросы Delphi 1 28.04.2012 18:23
имя файла запакованного ZipForge brain22 Компоненты Delphi 2 27.04.2012 23:26
ZipForge lezgin Компоненты Delphi 2 03.04.2012 09:11
ZipForge Добавление файлов в подкаталог phphel Общие вопросы Delphi 2 29.04.2011 18:07