Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
1 / 1 / 0
Регистрация: 03.06.2013
Сообщений: 66

idhttp в потоке получает пустой txt файл

11.08.2013, 02:19. Показов 3664. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Пишу обновлялку для программы.
Собственно, если код вставлен в FormCreate - все работает.
Если же вставить в поток - нет.
Код unit потока
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
unit updatemodule;
 
interface
 
uses
  System.Classes,shellapi,idhttp,system.SysUtils,Dialogs,messages;
 
type
  TUpdateToolModule = class(TThread)
  protected
    procedure Execute; override;
    procedure DoWork;
  end;
 
implementation
 
{
  Important: Methods and properties of objects in visual components can only be
  used in a method called using Synchronize, for example,
 
      Synchronize(UpdateCaption);
 
  and UpdateCaption could look like,
 
    procedure Update.UpdateCaption;
    begin
      Form1.Caption := 'Updated in a thread';
    end;
 
    or
 
    Synchronize(
      procedure
      begin
        Form1.Caption := 'Updated in thread via an anonymous method'
      end
      )
    );
 
  where an anonymous method is passed.
 
  Similarly, the developer can call the Queue method with similar parameters as
  above, instead passing another TThread class as the first parameter, putting
  the calling thread in a queue with the other thread.
 
}
 
{ Update }
 
procedure TUpdateToolModule.Execute;
var TM: TMemoryStream;
    f,f2: TextFile;
    str,str2: string;
    TM2,TM3:TMemoryStream;
    request:integer;
    idhttp1:Tidhttp;
begin
  NameThreadForDebugging('UpdateTool');
  Synchronize(DoWork);
end;
 
procedure TUpdateToolModule.DoWork;
var TM: TMemoryStream;
    f,f2: TextFile;
    str,str2: string;
    TM2,TM3:TMemoryStream;
    request:integer;
    idhttp1:Tidhttp;
begin
  try
  TM:= TMemoryStream.Create;
  idhttp1.get('http://files.diskanet.ru/1/e/eebef6f6/version.txt',TM);
  finally
  TM.SavetoFile('version.txt');
  end;
  TM.Free;
  idhttp1.Free;
  AssignFile(f,ExtractFilePath(ParamStr(0))+'version.txt');
  reset(f);
  while not eof(f) do begin
                      readln(f, str);
                      end;
closefile(f);
if strtoint(str)>26 then begin
                                         showmessage('Скачивается обновление програмы');
                                         TM2:=TMemoryStream.Create;
                                         idhttp1.Get('http://files.diskanet.ru/1/6/65bcf083/file.txt',TM2);
                                         TM2.SaveToFile('file.txt');
                                         AssignFile(f2,ExtractFilePath(ParamStr(0))+'file.txt');
                                         reset(f2);
                                         while not eof(f2) do begin
                                         readln(f2, str2);
                                         end;
                                         closefile(f2);
                                         TM3:=TMemoryStream.Create;
                                         idhttp1.Get(str2,TM3);
                                         TM3.SaveToFile('update.exe');
                                         ShellExecute(0,PChar('open'),PChar(ExtractFilePath(ParamStr(0))+'update.exe'),Nil,Nil,1);
                                         end
 
 
end;
 
end.
Добавлено через 4 минуты
В папке с ПО попадает файл version.txt в котором ничего нет и размер 0
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.08.2013, 02:19
Ответы с готовыми решениями:

Создайте txt-файл с именем yandex_74592cbadf7492e5.txt с произвольным содержимым (можно пустой)
1. Создайте txt-файл с именем yandex_74592cbadf7492e5.txt с произвольным содержимым (можно пустой) 2. Загрузите его в корневой каталог...

Создать/удалить пустой файл 1.txt на html
Подскажите код кнопок чисто на html без php чтобы просто создать и удалить файл 1.txt Можно с одной кнопкой (чтобы на ней менялось...

Программа получает входные данные из файла input.txt. Файл содержит строки, содержащие математические действия
Помогите написать программу Программа получает входные данные из файла input.txt. Файл содержит строки, содержащие математические...

23
1 / 1 / 0
Регистрация: 03.06.2013
Сообщений: 66
11.08.2013, 04:18  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от northener Посмотреть сообщение
не уменьшит эти 10 секунд
без апдейта в форме загрузка меньше секунды
Цитата Сообщение от esculap_ra Посмотреть сообщение
Давай сорец.
заливаю на сервер, отправлю в ПМ очень скоро
Цитата Сообщение от cotseec Посмотреть сообщение
хозяин-барин
скорее всего синапс и подключу
0
 Аватар для esculap_ra
462 / 265 / 55
Регистрация: 22.08.2010
Сообщений: 1,204
Записей в блоге: 4
11.08.2013, 04:31
Цитата Сообщение от crystalcfg Посмотреть сообщение

заливаю на сервер, отправлю в ПМ очень скоро
скорее всего синапс и подключу
дашь ссылку на сайт - посмотрю. код серверного обработчика, ну и сорцы. тут походу как и моя закинутая тема. правда там вообще без обработки на сервере. Просто прога ищет файл с именем "годмесяцчисло.txt", который старше, чем у него уже записано в конфигуре. Ну файлы обновляшек (текстовая база данных) я сам готовлю
и вылаживаю в спец-папку.
0
1 / 1 / 0
Регистрация: 03.06.2013
Сообщений: 66
11.08.2013, 04:32  [ТС]
Цитата Сообщение от esculap_ra Посмотреть сообщение
код серверного обработчика,
никакого серверного обработчика. все делается на уровне клиента
кинул сорцы в пм
0
пофигист широкого профиля
4770 / 3206 / 862
Регистрация: 15.07.2013
Сообщений: 18,613
11.08.2013, 15:15
Цитата Сообщение от crystalcfg Посмотреть сообщение
Цитата Сообщение от northener Посмотреть сообщение
не уменьшит эти 10 секунд
без апдейта в форме загрузка меньше секунды
Но поток тут ни при чем. Загрузка выполняется не в нем, а в главном потоке приложения. Так что поток можно смело выбросить на помойку.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.08.2013, 15:15

На рабочем столе следы вируса - txt файл Youdata! и пустой диск D
На рабочем столе следы вируса - txt файл Youdata!!! и пустой диск D Пользователи с адм. правами не активны. Собрать логи не...

Записать 200 случайных чисел в файл a.txt. В файл b.txt вывести четные, а в файл c.txt нечетные
Записать 200 случайных чисел в файл a.txt. В файл b.txt вывести четные, а в файл c.txt нечетные.

Дан пустой текстовый файл 123.txt, записать в него пять строк введенных с клавиатуры
здравствуйте, помогите пожалуйста с задачей. вот задача Дан пустой текстовый файл 123.txt, записать в него пять строк введенных с...

IdHTTP->Get в потоке и прогрессом
Есть код: TIdHTTP *HTTP = new TIdHTTP(NULL); if (HTTP) { try { HTTP->ConnectTimeout = 10000; HTTP->ReadTimeout = 10000; ...

Отправка вайла в потоке idhttp
Ребят, загрузчик файлов на сервер через idhttp + idmultipartformdata работает на ура. Но есть проблема - нужно сделать загрузку в...


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

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Новые блоги и статьи
Теория всего 6. Судьба неотвратима?
anaschu 21.07.2026
Математическое доказательство Судьбы: Точка бифуркации в едином тензорном ядре Модели ВсегоСвежее обновление питоновского ядра «Soil Chemistry 2. 0» дало нам неопровержимое математическое. . .
Теория всего 5. ядро Теории Всего: Математический изоморфизм репликаторов и иллюзия свободы воли
anaschu 21.07.2026
Единое ядро Теории Всего: Математический изоморфизм репликаторов и иллюзия свободы воли Главная задача «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы» (аттракторов. . .
сукцессия 37. Внедрил дипсик в свой оркестр из ИИ. У него закончилось пространство чата, потому опубликую выводы из его работы здесь
anaschu 21.07.2026
==================================================================== КОНТЕКСТ: Моделирование микоризной сукцессии (AM → ECM) ==================================================================== . . .
сукцессия 36. Делаю прогоны модели около порога бифуркации (превращения эндо микоризы в экто микоризу)
anaschu 21.07.2026
СУКЦЕССИЯ МИКОРИЗ: КАК МАТЕМАТИКА ОБЪЯСНЯЕТ ПОДЗЕМНУЮ ВОЙНУ Мы привыкли думать, что лес — это деревья. А грибы — это то, что мы собираем в корзинку осенью. Но если заглянуть под землю, окажется,. . .
ИИ и человечность
kumehtar 21.07.2026
Забавно, что общаясь с ИИ, я замечаю, насколько он высказывается умно, и насколько верит в людей. Он умеет прощать. Он знает как отвечать не обесценивая опыт других людей, даже если сам не верит. Он. . .
Нейтральные знания ..., ... чистая наука. Пока что-то проходит модерацию на Хабре, стоит развить мысль ...
Hrethgir 20.07.2026
К таким радикальным взглядам я конечно в той публикации не приходил, но чтобы скоротать вечер, решил углубиться немного. 1. Почему показания термометра заряжены целью? Цель заложена в самом. . .
Установка нескольких штампов электронной подписи в строго определенных местах файла docx
ВладимирСамохин 19.07.2026
(В!) Работа с Электронной подписью - это неотъемлемая часть современного документооборота. Но что делать, если нужно поставить несколько штампов электронной подписи в строго определенных местах. . .
сукцессия 35. Научная статья о проделанной работе
anaschu 19.07.2026
Написал в формате латекс и пдф
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru