Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
32 / 22 / 12
Регистрация: 18.11.2017
Сообщений: 165
1

Чтение из нетипизированного файла

14.10.2018, 20:53. Показов 1581. Ответов 6

Author24 — интернет-сервис помощи студентам
Есть программа, шифрующая файлы любого содержимого. Проблема только в том, что при файлы размером > 100кб шифрует больше минуты, а видео и все 10 минут. Как можно повысить скорость?
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
//….
function IntToBin(Value: integer): string;
var
  i: integer;
begin
  result := '';
  for i := 0 to 7 do
    if Value and (1 shl i) > 0 then
      result := '1' + result
    else
      result := '0' + result;
end;
 
function LoadFromFile(const Filename: string): string;
var
  F: file;
  B, i: Byte;
  n: integer;
begin
  AssignFile(F, Filename);
  FileMode := fmOpenRead;
  Reset(F, 1);
  while not Eof(F) do
  begin
    BlockRead(F, B, 1); 
    n := ord(B);
    result := result + IntToBin(n);
  end;
  CloseFile(F);
end;
//….
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.10.2018, 20:53
Ответы с готовыми решениями:

Формирование нетипизированного файла
Доброго времени суток, Господа! У меня появилась идея создания файла данных в который буду вносить...

Добавить букву в конец нетипизированного файла
Здравствуйте.Такой вопрос.Как добавить букву в конец НЕтипизированного файла. С ними ведь можно...

Содержимое нетипизированного текстового файла вывести в Memo
Дано:1 мемо,1баттон,1лейбл. в мемо надо ввести не типизированную текстовую файл,при нажати кнопки,...

Вывод данных из нетипизированного файла в массив записей
Не подскажете как вывести данные нетипизированного файла в динамический массив записей?

6
5786 / 4528 / 1431
Регистрация: 14.04.2014
Сообщений: 20,157
Записей в блоге: 20
14.10.2018, 21:15 2
вспомнить, что мы в 21 веке и использовать соответствующие классы для работы с файлами
и сразу все наладится

а еще каждая операция по конкатенации строк вызывает целую кучу операций по выделению памяти и копированию данных
так что лучше сначала выделить полностью строку нужной длины, а потом просто ставить символ в нужную позицию
0
32 / 22 / 12
Регистрация: 18.11.2017
Сообщений: 165
15.10.2018, 00:00  [ТС] 3
Не слышал ни о каких классах, ничего нагуглить не смог. Где можно почитать об этом? Или приведите пример хотя бы одного такого класса.
Насчет конкатенации спасибо, скорость повысилась, хоть и ненамного
0
Модератор
9261 / 6039 / 2379
Регистрация: 21.01.2014
Сообщений: 25,803
Записей в блоге: 3
15.10.2018, 05:29 4
Цитата Сообщение от AlekseyPl Посмотреть сообщение
Или приведите пример хотя бы одного такого класса
System.IOUtils
Я надеюсь, что Вы не на 7-й Дельфи сидите? Если на 7-й - перечитайте еще раз эту фразу:
Цитата Сообщение от krapotkin Посмотреть сообщение
вспомнить, что мы в 21 веке
и установить что-то бесплатно-актуальное, типа Tokyo CE...
1
Заблокирован
15.10.2018, 08:36 5
Посмотрел исходник, жэсть какая. Это не шифрование, а ... я не знаю, как это назвать.
Это чо, 1 байт данных превращается в 8 (или даже 16)?
Цитата Сообщение от AlekseyPl Посмотреть сообщение
Не слышал ни о каких классах, ничего нагуглить не смог. Где можно почитать об этом?
Кликните здесь для просмотра всего текста
Перевод: "хорош умничать, просто напишите мне прогу, а я пока буду на дивание пить пиво".

TFileStream.
Чтение файлов по 1 байту - это главный тормоз процесса.


-----------
Дай посмотреть оригинал задания. Почему-то я думаю, что там совсем не то.
0
32 / 22 / 12
Регистрация: 18.11.2017
Сообщений: 165
15.10.2018, 16:08  [ТС] 6
Цитата Сообщение от Verevkin Посмотреть сообщение
Дай посмотреть оригинал задания. Почему-то я думаю, что там совсем не то.
Потоковое шифрование на основе сдвигового регистра. Те две процедуры - только часть, если что.
Цитата Сообщение от Verevkin Посмотреть сообщение
Посмотрел исходник, жэсть какая. Это не шифрование, а ... я не знаю, как это назвать.
Это чо, 1 байт данных превращается в 8 (или даже 16)?
Можно так.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function LoadFromFile(const Filename: string): string;
var
  F: file of byte;
  B, i: Byte;
  n: integer;
begin
  AssignFile(F, Filename);
  Reset(F);
  while not Eof(F) do
  begin
    read(F, B);
    n := ord(B);
    result := result + IntToBin(n);
  end;
  CloseFile(F);
end;
0
Заблокирован
15.10.2018, 16:14 7
Цитата Сообщение от AlekseyPl Посмотреть сообщение
Можно так.
Не надо так. Это противоречит заданию. Вообще не имеет никакого отношения к нему, если чо.
0
15.10.2018, 16:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.10.2018, 16:14
Помогаю со студенческими работами здесь

Редактор hex-значений нетипизированного файла через Memo
Хочу написать редактор такого вида: Открываем нетипизированный файл (20 мб) в Memo (или что-то...

Создать программу считывания произвольного файла и создание нового нетипизированного файла, копируя блоками
Создать программу считывания произвольного файла и создание нового нетипизированного файла, копируя...

Отличия типизированного файла, текстового и нетипизированного
Реферат на эту тему, читаю по сайтам, но никак не могу догнать в их отличии и для чего они....

Требуется совет по редактированию нетипизированного файла
В символьном файле заменить все последовательности идущих подряд символов одним символом, т.е....

Ввод нетипизированного файла и поиск в нём
Здравствуйте. Мучаюсь с нетипизированными файлами. Задача состоит в том, чтобы реализовать ввод...

Вывести содержимое нетипизированного файла на экран
3. Имеется нетипизированный файл длиной 50 байт. Вывести его содержимое на экран. Скопировать его...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru