Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Работ с не типизированным файлом. / 20 сообщений из 20, страница 1 из 1
30.11.2018, 17:24
    #39741160
FIL23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работ с не типизированным файлом.
Добрых суток.

Хочу скачать любой файл в перменную , а потом из перменной вычитать этот файл в файл (другой).

Подскажите как ? Реально туплю.
...
Рейтинг: 0 / 0
30.11.2018, 17:27
    #39741163
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работ с не типизированным файлом.
Use TMemoryStream, Luke!
...
Рейтинг: 0 / 0
30.11.2018, 17:58
    #39741196
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работ с не типизированным файлом.
FIL23,

GetMem()/FreeMem() и вперед.
...
Рейтинг: 0 / 0
30.11.2018, 17:59
    #39741197
FIL23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работ с не типизированным файлом.
а чего ни будь в стиле

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
var

  f:file;

procedure TForm1.Button1Click(Sender: TObject);
begin
AssignFile(f,'C:\IMG_2701.svg');
reset(f,1)
end;



можно?
...
Рейтинг: 0 / 0
30.11.2018, 18:04
    #39741199
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работ с не типизированным файлом.
FIL23,

А почему нет? Только еще там blockread/blockwrite должны быть...
...
Рейтинг: 0 / 0
30.11.2018, 18:12
    #39741203
FIL23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работ с не типизированным файлом.
DarkMaster,

Ну вот до меня и не доходит как это сделать дальше.

Я все думаю куда он будет записывать данные из файла. Для этого ведь нужна переменная. И какого она типа?
...
Рейтинг: 0 / 0
30.11.2018, 18:13
    #39741205
Квейд
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работ с не типизированным файлом.
FIL23Добрых суток.

Хочу скачать любой файл в перменную , а потом из перменной вычитать этот файл в файл (другой).

Подскажите как ? Реально туплю.

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
with TMemoryStream.Create do
  try
    LoadFromFile('любой файл');
    Position := 0;
    SaveToFile('файл (другой)')
  finally
    Free
  end;
  
  
...
Рейтинг: 0 / 0
30.11.2018, 18:19
    #39741207
FIL23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работ с не типизированным файлом.
Квейд,

мне надо через переменную, дабы ее (ссылку на нее) потом передать в другую процедуру
...
Рейтинг: 0 / 0
30.11.2018, 18:19
    #39741208
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работ с не типизированным файлом.
FIL23,

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
var FSource,FTarget:File;
     Buffer:array[0..4095] of byte;   // это твой буффер в памяти
     Rb,Wb:integer;
begin
   Assign(FSource,'SourceFile.txt');
   reset(FSource,1);
   Assign(FTarget,'TargetFile.txt');
   rewrite(FTarget,1);
   repeat
       Rb:=BlockRead(FSource,Buffer,SizeOf(Buffer));
       Wb:=BlockWrite(FTarget,Buffer,Rb);
   until (Rb<>Wb) or (Rb=0);
   Close(FSource);
   Close(FTarget);
end;



Так что-ли?
...
Рейтинг: 0 / 0
30.11.2018, 18:22
    #39741210
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работ с не типизированным файлом.
FIL23Квейд,

мне надо через переменную, дабы ее (ссылку на нее) потом передать в другую процедуру

Так тебе уже сказали:

Код: pascal
1.
2.
3.
4.
5.
    MemoryStream.LoadFromFile();
   
    DoSome(MemoryStream);    // сделаем что-то с тем, что в память прочитали. Например офигеем, если на вход 100-200Гб придет.
   
    MemoryStream.SaveToFile();
...
Рейтинг: 0 / 0
30.11.2018, 19:06
    #39741247
FIL23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работ с не типизированным файлом.
кто наткнется на эту тему , пример решения.

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
procedure  test(filedd:TMemoryStream);
begin
     filedd.Position:=0;
     filedd.SaveToFile('C:\test\test.jpg');
end;

procedure TForm1.Button1Click(Sender: TObject);
var
Stm: TMemoryStream;

begin
  Stm := TMemoryStream.Create;   
  Stm.Position:=0;               
  Stm.LoadFromFile('C:\IMG_2701.JPG');
  test(Stm) ;
end;
...
Рейтинг: 0 / 0
30.11.2018, 19:41
    #39741271
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работ с не типизированным файлом.
FIL23
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
procedure TForm1.Button1Click(Sender: TObject);
var
  Stm: TMemoryStream;
begin
  Stm := TMemoryStream.Create;   
  try
    Stm.Position:=0;               
    Stm.LoadFromFile('C:\IMG_2701.JPG');
    test(Stm) ;
  finally
    Stm.Free;
  end;
end;
...
Рейтинг: 0 / 0
01.12.2018, 02:11
    #39741336
white_nigger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работ с не типизированным файлом.
FIL23кто наткнется на эту тему , пример решенияУпаси Господь!
...
Рейтинг: 0 / 0
01.12.2018, 10:52
    #39741384
X-Cite
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работ с не типизированным файлом.
white_niggerFIL23кто наткнется на эту тему , пример решенияУпаси Господь!

TMemoryStream давно уже deprecated
...
Рейтинг: 0 / 0
01.12.2018, 13:09
    #39741416
YuRock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работ с не типизированным файлом.
X-CiteTMemoryStream давно уже deprecatedА, кстати, за что его так? Интересно просто.
...
Рейтинг: 0 / 0
01.12.2018, 18:26
    #39741478
bk0010
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работ с не типизированным файлом.
YuRockX-CiteTMemoryStream давно уже deprecatedА, кстати, за что его так? Интересно просто.+1. И что вместо него предлагают?
...
Рейтинг: 0 / 0
01.12.2018, 23:43
    #39741553
X-Cite
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работ с не типизированным файлом.
bk0010YuRockпропущено...
А, кстати, за что его так? Интересно просто.+1. И что вместо него предлагают?
Странно, в исходниках одной из версий напротив него стояло deprecated, или в хелпе было это написано, не помню, а в RIO уже этого нет.
А использовать TBytesStream
...
Рейтинг: 0 / 0
03.12.2018, 11:28
    #39741874
X-Cite
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работ с не типизированным файлом.
Нашел, в исходниках XE6 есть коммент
...
Рейтинг: 0 / 0
03.12.2018, 12:38
    #39741902
asutp2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работ с не типизированным файлом.
X-Cite,

в Tokyo у TMemoryStream deprecated закомментирован, а в Rio даже и коммент с deprecated удален.
...
Рейтинг: 0 / 0
03.12.2018, 12:45
    #39741906
X-Cite
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работ с не типизированным файлом.
asutp2X-Cite,

в Tokyo у TMemoryStream deprecated закомментирован, а в Rio даже и коммент с deprecated удален.

Да.. он всегда был закомментирован...

Просто работать с набором байт удобнее, чем с сырым указателем... Тем более же они в какой-то версии "мамой клянулись", что ускорили работу с динамическими массивами.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Работ с не типизированным файлом. / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]