Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
2 / 2 / 1
Регистрация: 13.08.2011
Сообщений: 140
1
RAD XE3+

Почему файл из Интернета сохраняется не под тем именем?

27.02.2019, 05:09. Показов 570. Ответов 1
Метки нет (Все метки)

Приветствую.

Вот код:

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
procedure TfmCRL_Downloader.bStartDownloadClick(Sender: TObject);
var
  LoadStream: TMemoryStream;
  strUdCenter: string;
  strUdCenterGAS: string;
  LogFile : TextFile;
begin
  if edFolderPath.Text='' then
  begin
    MessageDlg('Не выбрана папка для сохранения CRL-ок!', mtWarning, [mbOK], 0);
    exit;
  end;
 
 
  strUdCenter:='http://rostelecom.ru/cdp/guc_gost12.crl';
  strUdCenterGAS:='http://reg1.sudrf.ru/CDP/4efd611cd8b8abe6ff127012b58d22b91061086c.crl';
 
 
    try
 
     begin
            // Скачать без прокси
          if chbUseProxy.Checked=false then
          begin
             //Загрузка аннул. серт. Головного Удостовер. Центра
             LoadStream:=TMemoryStream.Create;
             idHTTP.Get(strUdCenter, LoadStream);
             LoadStream.SaveToFile(trim(edFolderPath.Text) + '\guc_gost12.crl');
             idHTTP.Get(strUdCenterGAS, LoadStream);
             LoadStream.Free;
             //Загрузка аннул. серт. Головного Удостовер. ГАС
             LoadStream:=TMemoryStream.Create;
             idHTTP.Get(strUdCenter, LoadStream);
             LoadStream.SaveToFile(trim(edFolderPath.Text) + '\4efd611cd8b8abe6ff127012b58d22b91061086c.crl'); // *
             idHTTP.Get(strUdCenterGAS, LoadStream);
             LoadStream.Free;
          end
          else
        // Скачать с прокси
        begin
                // Предварительная настройка прокси
                idHTTP.ProxyParams.ProxyServer:=trim(edProxyIP.Text);
                idHTTP.ProxyParams.ProxyPort:=StrToInt(trim(edProxyPort.Text));
                idHTTP.ProxyParams.ProxyUsername:=trim(edProxyUser.Text);
                idHTTP.ProxyParams.ProxyPassword:=trim(edProxyPassword.Text);
                idHTTP.ProxyParams.BasicAuthentication:=chbProxyBasicAuth.Checked;
          // Собственно скачка с проксиком
                //Загрузка аннул. серт. Головного Удостовер. Центра
               LoadStream:=TMemoryStream.Create;
               idHTTP.Get(strUdCenter, LoadStream);
               LoadStream.SaveToFile(trim(edFolderPath.Text) + '\guc_gost12.crl');
               idHTTP.Get(strUdCenterGAS, LoadStream);
               LoadStream.Free;
               //Загрузка аннул. серт. Головного Удостовер. ГАС
               LoadStream:=TMemoryStream.Create;
               idHTTP.Get(strUdCenter, LoadStream);
               LoadStream.SaveToFile(trim(edFolderPath.Text) + '\4efd611cd8b8abe6ff127012b58d22b91061086c.crl'); //**
               idHTTP.Get(strUdCenterGAS, LoadStream);
               LoadStream.Free;
              end;
              //Вставляем строчку об успехе в лог
 
              if FileExists(ExtractFilePath(ParamStr(0)) + '\log.log') then
                begin
                  AssignFile(LogFile, ExtractFilePath(ParamStr(0)) + '\log.log');
                  Append(LogFile);
                  WriteLn(LogFile, DateToStr(Now) + ' ' + TimeToStr(Now) + ': ' + 'Загрузка CRL-файлов прошла успешно!');
                  CloseFile(LogFile);
                end
              else
                begin
                   AssignFile(LogFile, ExtractFilePath(ParamStr(0)) + '\log.log');
                   Rewrite (LogFile);
                   WriteLn(LogFile, DateToStr(Now) + ' ' + TimeToStr(Now) + ': ' + 'Загрузка CRL-файлов прошла успешно!');
                   CloseFile(LogFile);
                end;
 
 
 
              // Если надо закрываем после загрузки
              if chbCloseOnDownloadingEnd.Checked=true then
                  fmCRL_Downloader.Close;
        end;
    except
         on E: exception do
         begin
            //Вставляем строчку об успехе в лог
              if FileExists(ExtractFilePath(ParamStr(0)) + '\log.log') then
                begin
                  AssignFile(LogFile, ExtractFilePath(ParamStr(0)) + '\log.log');
                  Append(LogFile);
                  WriteLn(LogFile, DateToStr(Now) + ' ' + TimeToStr(Now) + ': ' + 'Возникла ошибка: ' + E.Message);
                  CloseFile(LogFile);
                end
              else
                begin
                   AssignFile(LogFile, ExtractFilePath(ParamStr(0)) + '\log.log');
                   Rewrite (LogFile);
                   WriteLn(LogFile, DateToStr(Now) + ' ' + TimeToStr(Now) + ': ' + 'Возникла ошибка: ' + E.Message);
                   CloseFile(LogFile);
                end;
         end;
    end;
end;
Как видите в строках * и ** указано имя файла для сохранения: 4efd611cd8b8abe6ff127012b58d22b91061086c.crl. А этот файл, собака, сохраняется под именем "efd611cd8b8abe6ff127012b58d22b91061086c.crl"... Почему проглатывается первая цифра 4? Как победить?
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.02.2019, 05:09
Ответы с готовыми решениями:

под каким именем сохраняется файл??
uses crt; const n=15; type spion=record prz:string; doc:byte; ...

Запись списка в файл под тем же или новым именем
Программа должна содержать меню и ввод-вывод в окна на экране. Необходимо предусмотреть контроль...

Не сохраняется файл с абсолютным именем, ofstream
На Win7 пытаюсь вывести данные в файл: ofstream fout("C:\\data.txt"); Если делать вывод...

Почему два раза создаётся объект с ОДНИМ И ТЕМ ЖЕ ИМЕНЕМ?
#include <windows.h> #include <iostream> using namespace std; class arr{ public: ...

1
60 / 46 / 20
Регистрация: 01.09.2017
Сообщений: 362
27.02.2019, 12:32 2
Logos300, Интересно! А попробуйте добавить перед 4 кой любой символ, ну например просто пробел, что будет?
Просто нужно проверить кое какие соображения.

Добавлено через 2 минуты
Пробовал просто сохранить файл таким же образом, так у меня всё норм. Странно!

Delphi
1
2
3
4
5
procedure TForm1.Button3Click(Sender: TObject);
begin
LoadStream:=TMemoryStream.Create;
LoadStream.SaveToFile('\4efd611cd8b8abe6ff127012b58d22b91061086c.crl');
end;
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.02.2019, 12:32

Требуется написать программу которая сохраняет этот файл как txt файл с тем же самым именем но с удаленным doc расширением.
Помогите разрешить следующую задачу. Существует некий файл Name.xml.doc эквивалент текстового файла...

Строки: Создать файл с тем же именем и расширением .dat
1) Открыть файл с расширением .txt, имя которого вводится пользователем. Если пользователь ввел...

Через Ексель Открыть файл ВОРД и сохранить файл под определенным именем
Открываю через ексель файлы ворд и выполняю макрос ворд, но не получается сохранить файл под...

Почему при скачивании .rar файл сохраняется как index.php
Помогите пожалуйста! Почему при скачивании .rar файл сохраняется как index.php? Пробовала скачивать...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.