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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.02.2013, 18:07   #1
Alex2009
Proger Man
Форумчанин
 
Аватар для Alex2009
 
Регистрация: 07.03.2009
Сообщений: 584
По умолчанию Сохранение файла + ошибка

Ребят где я что упустил? Вызывается ошибка exception class eaccessviolation with message после нажатия в SaveForm1 кнопки "Сохранить"

В массиве music[ListBox1.itemindex].url; у меня хранятся ссылки.

Вот код:

Код:
var
  donws: string;
  LoadStream: TMemoryStream;
begin
    LoadStream := TMemoryStream.Create;
    donws:=music[ListBox1.itemindex].url;
    if SaveDialog1.Execute then
    begin
      Form1.idHTTP1.Get(donws, LoadStream);
      LoadStream.SaveToFile(SaveDialog1.FileName + '.mp3');
      LoadStream.Free;
   end;
end;
ShowMessage('Добро пожаловать!');
Alex2009 вне форума Ответить с цитированием
Старый 19.02.2013, 18:13   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Ошибка точно на SaveToFile? А так?
Код:
LoadStream.Position:=0;
LoadStream.SaveToFile(SaveDialog1.FileName + '.mp3');
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 19.02.2013, 18:25   #3
Alex2009
Proger Man
Форумчанин
 
Аватар для Alex2009
 
Регистрация: 07.03.2009
Сообщений: 584
По умолчанию

Так тоже не работает.
При ошибке выделяет синим текстом в idHTTP такую строку, indy обновлен до последней версии.

Код:
DoRequest(Id_HTTPMethodGet, AURL, nil, AResponseContent, AIgnoreReplies);
ShowMessage('Добро пожаловать!');
Alex2009 вне форума Ответить с цитированием
Старый 19.02.2013, 19:58   #4
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

во первых последовательность

Код:
var
  donws: string;
  LoadStream: TMemoryStream;
begin
    if SaveDialog1.Execute then
    begin
      LoadStream := TMemoryStream.Create;
      try
        donws:=music[ListBox1.itemindex].url;
        Form1.idHTTP1.Get(donws, LoadStream);
        LoadStream.SaveToFile(SaveDialog1.FileName + '.mp3');
      finally
        LoadStream.Free;
      end;
   end;
end;
а во вторых URL точно правильный?
Не стесняемся, плюсуем!
Slym вне форума Ответить с цитированием
Старый 19.02.2013, 21:27   #5
Alex2009
Proger Man
Форумчанин
 
Аватар для Alex2009
 
Регистрация: 07.03.2009
Сообщений: 584
По умолчанию

url правильный 100%

Не работает.
ShowMessage('Добро пожаловать!');
Alex2009 вне форума Ответить с цитированием
Старый 19.02.2013, 21:28   #6
Alex2009
Proger Man
Форумчанин
 
Аватар для Alex2009
 
Регистрация: 07.03.2009
Сообщений: 584
По умолчанию

подставил уже url с другого сайта, такая же проблема.
ShowMessage('Добро пожаловать!');

Последний раз редактировалось Alex2009; 19.02.2013 в 21:31.
Alex2009 вне форума Ответить с цитированием
Старый 19.02.2013, 22:10   #7
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

А полный текст ошибки можно зачитать?
Вы вероятно в пустую ячейку стучитесь, включайте отладчик и смотрите.
Человек_Борща вне форума Ответить с цитированием
Старый 19.02.2013, 22:18   #8
Alex2009
Proger Man
Форумчанин
 
Аватар для Alex2009
 
Регистрация: 07.03.2009
Сообщений: 584
По умолчанию

Всем спасибо, разобрался.
Так и не понял в чем было дело, но вот сделал так, заработало.

Код:
var
  donws: string;
  Stream:TMemoryStream;
begin
    if SaveDialog1.Execute then
    begin
      Stream:=TMemoryStream.Create;
      try
        donws:=music[ListBox1.itemindex].url;
        IdHTTP1.Get(donws,Stream);
        Stream.SaveToFile(SaveDialog1.FileName + '.mp3');
      except
        on e:Exception do
        Stream.Free;
      end;
   end;
end;
ShowMessage('Добро пожаловать!');
Alex2009 вне форума Ответить с цитированием
Старый 19.02.2013, 22:22   #9
Alex2009
Proger Man
Форумчанин
 
Аватар для Alex2009
 
Регистрация: 07.03.2009
Сообщений: 584
По умолчанию

Ребят еще вопрос, в LisxBox у меня ссылки на песни, как мне сделать так что бы выделенные Index`ы с ссылками по очереди закачивались?
Качаю сейчас потоками. Дайте пример или хоть какую нибудь инфу.
ShowMessage('Добро пожаловать!');
Alex2009 вне форума Ответить с цитированием
Старый 19.02.2013, 22:32   #10
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Свойство Selected - True для выделенных. И цикл. Да, и правильнее
Код:
      try
        try
          donws:=music[ListBox1.itemindex].url;
          IdHTTP1.Get(donws,Stream);
          Stream.SaveToFile(SaveDialog1.FileName + '.mp3');
        except
          on e:Exception do ...
        end;
      finally
        Stream.Free;
      end;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 19.02.2013 в 22:37.
Аватар вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сохранение файла RemiJK Помощь студентам 7 23.11.2011 16:53
сохранение файла... evlampus76 Паскаль, Turbo Pascal, PascalABC.NET 2 15.01.2011 15:17
сохранение файла Dimarik PHP 5 16.07.2010 19:37
Сохранение файла KREGI Помощь студентам 4 30.03.2009 21:09
Сохранение файла Македонский Общие вопросы Delphi 7 17.08.2007 08:35