Форум программистов, компьютерный форум, киберфорум
Delphi: FireMonkey
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
 Аватар для Razmir
3 / 2 / 1
Регистрация: 04.03.2013
Сообщений: 145

Ошибка загрузки и сохранения файла

24.03.2016, 17:32. Показов 1289. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Возникла проблема, надеюсь поможете разобраться.

При запуске приложения, отправляется get запрос для получения данных:

Delphi
1
2
      s:=IdHTTP1.Get('http://new.com/files.php');
      listbox1.Items.Text:=s;
В listbox построчно выводится список файлов, далее на каждом итеме листбокса, создается кнопка, в tagstring которой помещается имя файла, а в onclick следующее:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
   url:string;
   Fstream:TFileStream;
begin
  url:=(sender as timage).TagString;
  try
     FStream := TFileStream.Create(TPath.Combine(TPath.GetDocumentsPath,url),fmCreate);
 
     try
        IdHTTP1.Get('http://new.com/'+url,FStream);
     except
      on E : Exception do
        begin
          showmessage('Ошибка ' +E.Message)
        end;
     end;
вот тут вылетает ошибка - access violation at address a04ca808, при чем на windows работает все на ура, проблема только с андроидом. Пробовал загрузить содержимое файла в memo, все отлично, но вот при сохранении мемо в файл, ошибка снова. Т.е. проблема при сохранение. Как ее решить? Спасибо.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.03.2016, 17:32
Ответы с готовыми решениями:

Ошибка сохранения/загрузки объекта с файла
Привет всем. Столкнулся с проблемой сохранения/загрузки объекта в/из файла. Вытащил из моего проекта куски кода, и создал новый проект,...

Программа на PERL для загрузки и сохранения файла на сервер
помогите, нужна программа на PERL для загрузки и сохранения файла на сервер(фото, текстовые данные). Заранее благодарен.

Ошибка сохранения файла
После сохранения файла выскакивает окно "Прекращена работа программы..." import sys from PyQt5.QtWidgets import (QMainWindow,...

9
 Аватар для krapotkin
6849 / 4676 / 1464
Регистрация: 14.04.2014
Сообщений: 20,671
Записей в блоге: 21
24.03.2016, 21:46
OnClick чего тут представлен?
0
 Аватар для Razmir
3 / 2 / 1
Регистрация: 04.03.2013
Сообщений: 145
25.03.2016, 05:59  [ТС]
Image, но это не важно. На button то же самое происходит.
0
 Аватар для krapotkin
6849 / 4676 / 1464
Регистрация: 14.04.2014
Сообщений: 20,671
Записей в блоге: 21
25.03.2016, 07:36
эта проблема давненько обсуждалась не помню где уже
там, где есть ARC (Automatic Reference Count), веками проверенная техника
Delphi
1
list.AddObject('item text', MyLinkedObject);
не работает.
Ссылка на MyLinkedObject не подсчитывается и он удаляется сборщиком мусора.
Нужно хранить данные отдельно, а listview создавать по этим данным

Либо использовать новую фичу

Delphi
1
2
ListItem.Data['someKeyString'] := 'SomeData';
ListItem.Data['anotherKeyString'] := 18;
0
 Аватар для Razmir
3 / 2 / 1
Регистрация: 04.03.2013
Сообщений: 145
25.03.2016, 10:39  [ТС]
Блин вообще не понимаю. Заменил:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
   url:string;
   Fstream:TFileStream;
begin
  url:=(sender as timage).TagString;
  try
     FStream := TFileStream.Create(TPath.Combine(TPath.GetDocumentsPath,url),fmCreate);
 
     try
        IdHTTP1.Get('http://new.com/'+url,FStream);
     except
      on E : Exception do
        begin
          showmessage('Ошибка ' +E.Message);
        end;
     end;
на

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
     url:=(sender as timage).TagString;
 
     try
 
        memo1.Text:=IdHTTP1.Get('http://new.com/'+url);
        memo1.Lines.SaveToFile(TPath.Combine(TPath.GetDocumentsPath,url));
     except
      on E : Exception do
        begin
          showmessage('Ошибка ' +E.Message);
        end;
     end;
теперь в андроиде все нормально, зато в windows при дальнейшем использовании файла:

Delphi
1
2
       
memo1.Lines.LoadFromFile(TPath.Combine(TPath.GetDocumentsPath,url));
вылетает ошибка, что файл занят другой программой. Да и как то коряво кажется использовать memo как промежуточный контейнер.
0
 Аватар для krapotkin
6849 / 4676 / 1464
Регистрация: 14.04.2014
Сообщений: 20,671
Записей в блоге: 21
25.03.2016, 12:37
т.е. вариант
ListItem.Data['someKeyString'] := 'SomeData'
не был услышан?
0
 Аватар для Razmir
3 / 2 / 1
Регистрация: 04.03.2013
Сообщений: 145
25.03.2016, 12:47  [ТС]
Честно говоря я его не понял. Что дает мне этот код? Как он сохраняет файл?
0
 Аватар для krapotkin
6849 / 4676 / 1464
Регистрация: 14.04.2014
Сообщений: 20,671
Записей в блоге: 21
25.03.2016, 14:20
файл код не сохраняет, имя файла сохраняет
там должно получиться что-то типа
url := item.Data['filename'];
0
 Аватар для Razmir
3 / 2 / 1
Регистрация: 04.03.2013
Сообщений: 145
25.03.2016, 19:05  [ТС]
Чет я все равно не соображу. Для чего это? Если я вместо get запроса, пишу просто вывод имени в label.text имя выводится правильно, значит я так понимаю, хранится имя правильно.

Добавлено через 1 час 37 минут
Нашел проблему, алгоритм ошибки:

1. Качаем файл
2. Сохраняем
3. Обращаемся к файлу - нормально
4. Обращаемся второй раз - ошибка
0
 Аватар для krapotkin
6849 / 4676 / 1464
Регистрация: 14.04.2014
Сообщений: 20,671
Записей в блоге: 21
25.03.2016, 21:24
вот даже покоцанный дебаггер в андродиде все равно сообщает, где конкретно ошибка
как мы тут отгадаем по куску кода?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.03.2016, 21:24
Помогаю со студенческими работами здесь

Ошибка после сохранения файла
Привет. Версия Delphi7. procedure TForm6.BitBtn3Click(Sender: TObject); Begin if OpenDialog1.Execute then Begin ...

Скачивание файла WebClient с отображением процентов загрузки файла, progressBar, скоростью загрузки файла
Приветствую! Нужна Ваша помощь... Имеется такой кодик, слепленный из готовых примеров System.Net.WebClient webClient =...

Ошибка сохранения .mat файла в MATLAb
Выдает ошибку при сохранении .mat файла. Подскажите что это может быть-делаю все как в книжке(скрин из книги ниже): >> savefile =...

Ошибка открытия файла в RichEdit и сохранения
Здравствуйте форумчане программеры =) У меня возникла проблема, при при открытии или сохранении файла выдает ошибку "list index out of...

Ошибка при отмене сохранения файла
private void button2_Click(object sender, EventArgs e) { var sfd = new SaveFileDialog(); sfd.Filter =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru