powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Поиск последовательности в бинарном массиве
25 сообщений из 270, страница 9 из 11
Поиск последовательности в бинарном массиве
    #39589174
Bellic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Няшик, ты не только ошибку сделал, ты кое что и проигнорировал в другой теме - ну да ладно, проехали!
Няшик... Меня до сих пор волнует, каким образом - ты его структуру, в свой код применил.
О какой структуре речь то???
...
Рейтинг: 0 / 0
Поиск последовательности в бинарном массиве
    #39589180
Bellic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
НяшикКстати, я нАрочно кое где сделал ошибку, а ты и не заметил?
Где, что, когда?
Вот ты негоДяй, а не Няшик!..))))
Видимо я пропустил мимо ушей или же в голове сработал авто-исправлятель и твоя "нАрочная" ошибка не вызвала фотальной ошибки моего вычислительного устройства под названием "Мозг"..))))
...
Рейтинг: 0 / 0
Поиск последовательности в бинарном массиве
    #39589190
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bellic,

Вот видишь, как замечательно. На таких примерах лучше познаёшь хекс :)
Но насчёт скорости не согласен. Не может мой пример работать медленее твоего.
Ты скорее всего в моём коде поменял RawByteString на TBytes и получил профит.
...
Рейтинг: 0 / 0
Поиск последовательности в бинарном массиве
    #39589192
Няшик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BellicО какой структуре речь то???

У тебя есть база данных, в каком формате (Алгоритме шифровки) - ты постеснялся написать.


Тебе дали код, который пакует несколько байт в один. И ты такой довольный заявляешь : Это - то, что надо!

Вопрос, ты переписал базу данных под (hex(c) << 4) + hex(b) Пакуя её компактнее ???

Или же, ты прост воткнул его код, и думаешь что он работает? Ведь, если бы ты свою базу данных не перелопатил, то сравнение бы не произошло



BellicГде, что, когда?

Когда ты спрашивал давно ли я проснулся. А ты ?) xD
...
Рейтинг: 0 / 0
Поиск последовательности в бинарном массиве
    #39589210
Bellic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SOFT FOR YOUНо насчёт скорости не согласен. Не может мой пример работать медленее твоего.
Ты скорее всего в моём коде поменял RawByteString на TBytes и получил профит.
Лови исходники и тестируй сам!
Твой код, SOFT FOR YOU:
Код: pascal
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.
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, DateUtils;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    OpenDialog1: TOpenDialog;
  procedure Test(Sender: TObject);
  procedure BeginTime(Sender: TObject);
  procedure EndTime(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function HexToByte(const Value: Byte): Byte; inline;
begin
  Result := (Value or $20) - Byte('0');
  if (Result > 9) then
    Dec(Result, Ord('a') - Ord('0') - 10);
end;

procedure TForm1.Test(Sender: TObject);
var
FFile: TFileStream;
FullName: string;
i, m, Dlina, Addr: Integer;
BPoisk: array of Byte;   // Динамический массив
RawBin, RawString: RawByteString;
SPSimvol: ansistring;
PSimvol: Byte;
BFile: TBytes;
//---- Переменные для подсчета времени выполнения программы ----------
StartTime: TDateTime; // Время перед подсчетом
EndTime: TDateTime;   // Время после подсчета
DelayTime: Double;    // Разность времени (Время выполнения программы)
//--------------------------------------------------------------------
label Err;
begin
     if OpenDialog1.Execute then
               FullName := OpenDialog1.FileName;

     FFile:=TFileStream.Create(FullName, fmOpenRead);
     try  //====== Читаем Файл в TByte ======
          SetLength(BFile, FFile.Size);
          FFile.ReadBuffer(BFile, FFile.Size);

          //====== Читаем Файл в RawByteString ======
          SetLength(RawBin,FFile.Size);
          FFile.Position := 0;
          //FBin.ReadBuffer(PAnsiChar(RawBin)^,FFile.Size);
          FFile.ReadBuffer(&RawBin[1],FFile.Size);
     finally
          FFile.Free;
     end;

     StartTime := Now;        // Фиксируем время Старта
     SetLength(SPSimvol, 2);
     Addr := 0;
     Dlina := 6;
     for i := 1 to 1000 do
          begin
               Memo1.Lines.Add('Prohod-'+IntToStr(i));
               //SetLength(BPoisk, Dlina);  // Инициируем длину массива
               //PInteger(PByte(RawString) - 8)^ := 0;
               SetLength(RawString, Dlina); // можно писать в массив байт, но мы будем писать в строку
               for m  := 0 to Dlina-1 do    // Заполняем массив
                    begin
                         //SPSimvol[1] := AnsiChar(BFile[Addr + m*2]);
                         //[2] := AnsiChar(BFile[Addr + m*2 + 1]);

                         // быстрое чтение хекса
                         PSimvol := HexToByte(BFile[Addr + m * 2]) shl 4 + HexToByte(BFile[Addr + m * 2 + 1]);

                         //PSimvol := StrToInt('$' + SPSimvol);
                         //BPoisk[m] := PSimvol;
                         RawString[m+1] := AnsiChar(PSimvol);
                    end;
Err:           //RawString := RawByteString(BPoisk);
               //PInteger(PByte(RawString) - 8)^ := 0;
               Memo1.Lines.Add('Ok');
          end;
     EndTime := Now;  // Фиксируем время СТОПА
     // Вычисляем время выполнения ПРОЦЕДУРЫ
     DelayTime := SecondSpan(EndTime, StartTime);
     Memo1.Lines.Add('Время выполнения=' + FloatToStr(DelayTime) + ' сек.');
end;
end.



Вот мой код
Мой код:
Код: pascal
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.
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, DateUtils;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    OpenDialog1: TOpenDialog;
  procedure Test(Sender: TObject);
  procedure BeginTime(Sender: TObject);
  procedure EndTime(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function HexToByte(const Value: Byte): Byte; inline;
begin
  Result := (Value or $20) - Byte('0');
  if (Result > 9) then
    Dec(Result, Ord('a') - Ord('0') - 10);
end;

procedure TForm1.Test(Sender: TObject);
var
FFile: TFileStream;
FullName: string;
i, m, Dlina, Addr: Integer;
BPoisk: array of Byte;   // Динамический массив
RawBin, RawString: RawByteString;
SPSimvol: ansistring;
PSimvol: Byte;
BFile: TBytes;
//---- Переменные для подсчета времени выполнения программы ----------
StartTime: TDateTime; // Время перед подсчетом
EndTime: TDateTime;   // Время после подсчета
DelayTime: Double;    // Разность времени (Время выполнения программы)
//--------------------------------------------------------------------
label Err;
begin
     if OpenDialog1.Execute then
               FullName := OpenDialog1.FileName;

     FFile:=TFileStream.Create(FullName, fmOpenRead);
     try  //====== Читаем Файл в TByte ======
          SetLength(BFile, FFile.Size);
          FFile.ReadBuffer(BFile, FFile.Size);

          //====== Читаем Файл в RawByteString ======
          SetLength(RawBin,FFile.Size);
          FFile.Position := 0;
          //FBin.ReadBuffer(PAnsiChar(RawBin)^,FFile.Size);
          FFile.ReadBuffer(&RawBin[1],FFile.Size);
     finally
          FFile.Free;
     end;

     StartTime := Now;        // Фиксируем время Старта
     SetLength(SPSimvol, 2);
     Addr := 0;
     Dlina := 6;
     for i := 1 to 1000 do
          begin
               Memo1.Lines.Add('Prohod-'+IntToStr(i));
               SetLength(BPoisk, Dlina);  // Инициируем длину массива
               //PInteger(PByte(RawString) - 8)^ := 0;
               //SetLength(RawString, Dlina); // можно писать в массив байт, но мы будем писать в строку
               for m  := 0 to Dlina-1 do    // Заполняем массив
                    begin
                         SPSimvol[1] := AnsiChar(BFile[Addr + m*2]);
                         SPSimvol[2] := AnsiChar(BFile[Addr + m*2 + 1]);

                         // быстрое чтение хекса
                         //PSimvol := HexToByte(BFile[Addr + m * 2])shl 4 + HexToByte(BFile[Addr + m * 2 + 1]);

                         PSimvol := StrToInt('$' + SPSimvol);
                         BPoisk[m] := PSimvol;
                         //RawString[m+1] := AnsiChar(PSimvol);
                    end;
Err:           RawString := RawByteString(BPoisk);
               PInteger(PByte(RawString) - 8)^ := 0;
               Memo1.Lines.Add('Ok');
          end;
     EndTime := Now;  // Фиксируем время СТОПА
     // Вычисляем время выполнения ПРОЦЕДУРЫ
     DelayTime := SecondSpan(EndTime, StartTime);
     Memo1.Lines.Add('Время выполнения=' + FloatToStr(DelayTime) + ' сек.');
end;
end.


Запускай и сравнивай сам...
...
Рейтинг: 0 / 0
Поиск последовательности в бинарном массиве
    #39589227
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bellic,

Выложи отдельный проект с исходным файлом и двумя кнопками
...
Рейтинг: 0 / 0
Поиск последовательности в бинарном массиве
    #39589229
Bellic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Няшик, ничего не понимаю в твоих вопросах:
НяшикУ тебя есть база данных, в каком формате (Алгоритме шифровки) - ты постеснялся написать.
Тебе дали код, который пакует несколько байт в один. И ты такой довольный заявляешь : Это - то, что надо!
Вопрос, ты переписал базу данных под (hex(c) << 4) + hex(b) Пакуя её компактнее ???
Или же, ты прост воткнул его код, и думаешь что он работает? Ведь, если бы ты свою базу данных не перелопатил, то сравнение бы не произошло
База данных - это наборы пар Поиск-Замена. Так понятно?
Ничего я не перелопачивал! База осталась в нетронутом состоянии!
Просто был выложен код в надежде, что есть иной способ его исполнения. Вот SOFT FOR YOU и предложил читать сразу в RawString вместо Массива. Его вариант с учетом моей поправки - работает, как и правильно работает мой предыдущий!
Все!
...
Рейтинг: 0 / 0
Поиск последовательности в бинарном массиве
    #39589230
Няшик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я ему уже сто раз напрямую сказал - выложить исходный файл. А он всё кодами размахивается, как будто в них счастье и ключ ко всему
...
Рейтинг: 0 / 0
Поиск последовательности в бинарном массиве
    #39589237
Bellic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SOFT FOR YOUBellic,
Выложи отдельный проект с исходным файлом и двумя кнопками
Извини, друг!!!
А не ах..л ли ты? я только что выложил два кода!
...
И вообще - так не честно - ты выкладываешь свой код, даже не удосужившись проверить его правильность, а я тебе должен из Двух уже опубликованных только что - собирать с двумя кнопками????
Копипасть...
Мне пора собираться выезжать...
...
Рейтинг: 0 / 0
Поиск последовательности в бинарном массиве
    #39589241
Tactical Nuclear Penguin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BellicЗапускай и сравнивай сам...

ты в основном сравниваешь вывод строк в мемо
выкинь мемо
сделай цикл хотя бы пару миллионов и сравнивай
и увидишь твой код хуже...
...
Рейтинг: 0 / 0
Поиск последовательности в бинарном массиве
    #39589243
Bellic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
НяшикЯ ему уже сто раз напрямую сказал - выложить исходный файл. А он всё кодами размахивается, как будто в них счастье и ключ ко всемуНяшик, ты что - слепой??? 21131122
...
Рейтинг: 0 / 0
Поиск последовательности в бинарном массиве
    #39589249
Bellic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Tactical Nuclear PenguinBellicЗапускай и сравнивай сам...
ты в основном сравниваешь вывод строк в мемо
выкинь мемо
сделай цикл хотя бы пару миллионов и сравнивай
и увидишь твой код хуже...
Мы говорим о сравнении, а не вообще о времени выполнения!
Мемо в обоих случаях теоретически выполняется за одно и то же время и присутствует в обоих кодах!
...
Рейтинг: 0 / 0
Поиск последовательности в бинарном массиве
    #39589254
Няшик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
=_= Ребята ??? Ему сказать, что в данных примерах он сравнивает скорость вывода в memo ? Ой.. Похоже уже сказал - как не ловко...
...
Рейтинг: 0 / 0
Поиск последовательности в бинарном массиве
    #39589255
Bellic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...приеду вечером, удалю Мемо и запущу на паре миллионов!
А вообще - мне это в общем то не важно, не меряемся мы силой алго, а просто хотяб примерно сравнили два варианта!
В итоге - они практически равнозначные оказались...
Но Пяток миллионов я всеж заФигачу вечерком!...)))))))))))))))
...
Рейтинг: 0 / 0
Поиск последовательности в бинарном массиве
    #39589257
Няшик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BellicМы говорим о сравнении, а не вообще о времени выполнения!
Мемо в обоих случаях теоретически выполняется за одно и то же время и присутствует в обоих кодах!

Неверно! Никогда такого не будет. Запусти свой код, без вывода всех memo и увидишь "Время выполнения=0 сек."

Я даже не запуская могу сказать это
...
Рейтинг: 0 / 0
Поиск последовательности в бинарном массиве
    #39589260
Bellic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Няшик=_= Ребята ??? Ему сказать, что в данных примерах он сравнивает скорость вывода в memo ? Ой.. Похоже уже сказал - как не ловко...Няшик, и Две кнопки для SOFT FOR YOU - тоже сделаю, по просьбе трудящихся (если до этого сами их не "нарисуете")...)))
...
Рейтинг: 0 / 0
Поиск последовательности в бинарном массиве
    #39589265
Bellic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Няшик,
авторНеверно! Никогда такого не будет. Запусти свой код, без вывода всех memo и увидишь "Время выполнения=0 сек."я такое уже видел сегодня!
Мой код в цикле на 2 итерации выдал 0 секунд, а SOFT FOR YOU - ноль с копеками!
Пришлось увеличить число итераций до 1000!
Все парни, опаздываю.. пардон!
До вечера!
...
Рейтинг: 0 / 0
Поиск последовательности в бинарном массиве
    #39589290
Няшик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я сделал адекватный тестер

Без включённой оптимизации
Nyashik: 1,514717
SOFTFORYOU: 1,541704
Bellic: 10,928764

С включённой оптимизацией


Nyashik: 0,743173
SOFTFORYOU: 0,766512
Bellic: 10,819108




Код: pascal
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.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
  System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, DateUtils;

const
  TestCount = 10000000;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    OpenDialog1: TOpenDialog;
    procedure Test(Sender: TObject);
    procedure ReadFile;
    procedure StartCodeNyashik;
    procedure StartCodeSOFTFORYOU;
    procedure StartCodeBellic;
    procedure BeginTime;
    function EndTime: string;
  private
    { Private declarations }
  public
    StartTime, StopTime: Int64;
    iCounterPerSec: Int64;

    FFile: TFileStream;
    BFile: TBytes;
    Dlina, Addr: Integer;
  end;

var
  Form1: TForm1;
  I, m: Integer;

implementation

{$R *.dfm}

procedure TForm1.BeginTime;
begin
  QueryPerformanceCounter(StartTime);
end;

function TForm1.EndTime: string;
begin
  if QueryPerformanceCounter(StopTime) and QueryPerformanceFrequency
    (iCounterPerSec) then
    Result := Format('%.6f', [(StopTime - StartTime) / iCounterPerSec]);
end;

function HexToByte(const Value: Byte): Byte;
begin
  Result := (Value or $20) - Byte('0');
  if (Result > 9) then
    Dec(Result, Ord('a') - Ord('0') - 10);
end;

procedure TForm1.ReadFile;
begin
  if not OpenDialog1.Execute then
    exit;

  FFile := TFileStream.Create(OpenDialog1.FileName, fmOpenRead);
  try
    SetLength(BFile, FFile.Size);
    FFile.ReadBuffer(BFile, FFile.Size);
  finally
    FFile.Free;
  end;

  Addr := 0;
  Dlina := 6;

end;

procedure TForm1.StartCodeNyashik;
var
  RawString: RawByteString;
  PSimvol: Byte;
  x: Byte;
begin
  for I := 1 to TestCount do
  begin
    SetLength(RawString, Dlina);
    for m := 0 to Dlina - 1 do
    begin
      x := Addr + m * 2;
      PSimvol := (HexToByte(BFile[x]) shl 4) + HexToByte(BFile[x + 1]);

      RawString[m + 1] := AnsiChar(PSimvol);
    end;
  end;
end;

procedure TForm1.StartCodeSOFTFORYOU;
var
  RawString: RawByteString;
  PSimvol: Byte;
begin
  for I := 1 to TestCount do
  begin
    SetLength(RawString, Dlina);
    for m := 0 to Dlina - 1 do
    begin
      PSimvol := HexToByte(BFile[Addr + m * 2]) shl 4 +
        HexToByte(BFile[Addr + m * 2 + 1]);

      RawString[m + 1] := AnsiChar(PSimvol);
    end;
  end;
end;

procedure TForm1.StartCodeBellic;
var
  RawString: RawByteString;
  BPoisk: array of Byte; // Динамический массив
  PSimvol: Byte;
  SPSimvol: ansistring;
begin
  SetLength(SPSimvol, 2);
  for I := 1 to TestCount do
  begin
    SetLength(BPoisk, Dlina);
    for m := 0 to Dlina - 1 do
    begin
      SPSimvol[1] := AnsiChar(BFile[Addr + m * 2]);
      SPSimvol[2] := AnsiChar(BFile[Addr + m * 2 + 1]);
      PSimvol := StrToInt('$' + SPSimvol);

      BPoisk[m] := PSimvol;
    end;
    RawString := RawByteString(BPoisk);
    PInteger(PByte(RawString) - 8)^ := 0;
  end;
end;

procedure TForm1.Test(Sender: TObject);
begin
  ReadFile;

  BeginTime;
  StartCodeNyashik;
  Memo1.Lines.Add('Nyashik: ' + EndTime);

  BeginTime;
  StartCodeSOFTFORYOU;
  Memo1.Lines.Add('SOFTFORYOU: ' + EndTime);

  BeginTime;
  StartCodeBellic;
  Memo1.Lines.Add('Bellic: ' + EndTime);
end;

end.

...
Рейтинг: 0 / 0
Поиск последовательности в бинарном массиве
    #39589293
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Няшик.

А не замахнуться ли тебе на собственную версию Кэшед Буфферз?
...
Рейтинг: 0 / 0
Поиск последовательности в бинарном массиве
    #39589305
Няшик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччДНяшик.

А не замахнуться ли тебе на собственную версию Кэшед Буфферз?

Я для себя уже сделал такое. Работает так - выделяю 16 байт, заканчивается - выделяю ещё раз. И работаю с этими данными с помощью SSE инструкций

Кстати, Delphi сам умеет хорошо выделять память (с помощью SysGetMem) по 16 границе, при включённой опции mba16Byte

Слепил за пару часиков, и рад, что без мучений
...
Рейтинг: 0 / 0
Поиск последовательности в бинарном массиве
    #39589379
Bellic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Няшик, для начала - перемести обьявления переменных во всех трех процедурах - вверх, в начало юнита!
И кода будет поменьше и думаю подготовка к циклу - это не существенно!
...
Рейтинг: 0 / 0
Поиск последовательности в бинарном массиве
    #39589404
Няшик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bellic,

В моём примере всё сделано идеально. Мы тестируем только алгоритм. А не засранный не понять чем код.
...
Рейтинг: 0 / 0
Поиск последовательности в бинарном массиве
    #39589470
Bellic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
НяшикВ моём примере всё сделано идеально. Мы тестируем только алгоритм. А не засранный не понять чем код.
Няшик, ты читать умеешь?
Прочти еще раз сообщение 21131776
На алгоритм никто не покушается... пока.. и про код там ни слова!
...
Рейтинг: 0 / 0
Поиск последовательности в бинарном массиве
    #39589480
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Няшик,

Спасибо за тест
А то я и сам грешным делом подумал, что там могло сработать медленно

Кстати
Раз уж у тебя тест под рукой - можешь сделать вывод в TBytes, а не RawByteString. Он по идее ещё раза в полтора должен быстрее работать )
...
Рейтинг: 0 / 0
Поиск последовательности в бинарном массиве
    #39589482
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bellic,

Тут очень странный человек
Тебя учат работать с хексом, показывают, как ускорить твой код. А ты говоришь, что я о...ел.

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


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