Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Файловая система
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 22.05.2014, 22:51
alyan alyan вне форума
Прохожий
 
Регистрация: 22.05.2014
Сообщения: 8
Версия Delphi: Delphi XE5
Репутация: 10
Восклицание Вылетает при загрузке файла

СРОЧНО!!! ЗАВТРА ДИПЛОМ НА ПРОВЕРКУ НЕСТИ!!! ПРОГРАММА ВЫЛЕТАЕТ ПРИ ПОПЫТКЕ ЧТЕНИЯ ФАЙЛА И ЗАПИСИ ДРУГОГО. В ОБЩЕМ ПРОГА ДОЛЖНА ЧИТАТЬ ФАЙЛ И ШИФРОВАТЬ В СООТВЕТСТВИИ С АЛГОРИТМОМ И С ПОМОЩЬЮ КЛЮЧЕЙ. ВЫБРАННЫЙ ФАЙЛ. ВОТ КОД КНОПКИ, КОТОРАЯ ВСЁ ЭТО ЗАПУСКАЕТ:

Код:
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
procedure TForm1.Button5Click(Sender: TObject);
var nom:byte; razmer,change,sxor:int64;
keyround:array[0..31] of int64;
b8in,b8out:array[0..7,0..1000000] of byte;
razmerhvosta:byte;
bs,bs1,s1:byte;
sizefile8:int64;
 
const sbox:array [1..16] of byte=(5,14,15,8,12,1,2,13,11,4,6,3,0,7,9,10);
pbox:array [1..64] of byte = (0,4,8,12,16,20,24,28,32,36,40,44,48,52,56,60,1,
                              5,9,13,17,21,25,29,33,37,41,45,49,53,57,
                              61,2,6,10,14,18,22,26,30,34,38,42,46,5,54,58,
                              62,3,7,11,15,19,23,27,31,35,39,43,47,51,55,59,63);
begin
 
//загрузка файлов
 
OpenFile:=TFileStream.Create(Edit4.Text,fmOpenRead);
OpenFile.Position:=0;
 
CloseFile:=TFileStream.Create('crypted.bin',fmCreate);
CloseFile.Position:=0;
 
sizefile8:=OpenFile.Size;
sizefile8:=sizefile8 div 8;
 
//загрузка файлов
 
 
//загрузка файла в двумерный массив
 
for i:=0 to sizefile8 do
    for i1:=0 to 7 do OpenFile.Read(b8in[i,i1],1);
 
razmerhvosta:=OpenFile.Size - sizefile8*8;
 
if (razmerhvosta > 0) then
   for i2:=i1 to razmerhvosta do OpenFile.Read(b8in[i+1,i2],1);
 
if (razmerhvosta < 7) then
    for  i2:=i2 to 7 do OpenFile.Read(b8in[i+1,i2],1);
 
 
 
 
//загрузка файла в двумерный массив
 
 
for i:=0 to 31 do    //генерация клбючей
  begin
 
  begin //4
 
  for nom:=0 to 7 do
  begin
  change:=key[nom];
  change:=change shl (8*(7-nom));    //сдвиг битов ключа на Х  бит
  keyround[i]:=keyround[i] + change;
   end;
 
  change:=keyround[i1];
  razmer:=change shr 60;
  razmer:=sbox[change];
  razmer:=razmer shl 60;
  change:=razmer + ((change shl 4) shr 4 );
 
  razmer:=(change shl  44) shr 59;
  razmer:= razmer xor i;
  razmer:=razmer shl 15;
 
  change:=((change shr 20) shl 20) + ((change shl 49) shl 49) + razmer;
 
  keyround[i]:=change;
 
  end;   //4
 
  end//генерация ключей
 
  //i - цмкл сети SP,
 
 
 
 
  for i4:=0 to (sizefile8 + 1) do
 
  for i:=0 to 30 do       //сеть SP
    begin
 
    //Key XOR->  заполняем sxor:int64 байтами входного, ксорим и пишем назад
 
       for i1:=0 to 7 do  sxor:=sxor + (b8in[i4,i1]) shl (7 - i1);
 
       sxor:=sxor xor keyround[i];
 
       for i1:=0 to 7 do b8in[i4,i1]:=sxor shr (7-i1);
       //key xor
 
 
       //Sbox перестановка->
 
       i1:=0;
   for i2:=0 to 7 do
   begin
   i1:=i1+1;
   nom:=sbox[i1] div 2;
   if (sbox[i1] mod 2 = 0) then begin
                               bs:=b8in[i4,nom] shr 4;
                               bs:=bs shl 4;
                               end
                          else bs:=b8in[i4,nom] shl 4;
 
   i1:=i1+1;
   nom:=sbox[i1] div 2;
   if (sbox[i1] mod 2 = 0) then bs1:=b8in[i4,nom] shr 4
                          else begin
                               bs1:=b8in[i,nom] shl 4;
                               bs1:=bs1 shr 4;
                               end;
   b8out[i4,i2]:=bs+bs1;
   b8in[i4,i2]:=b8out[i,i2];
 
   end;
 
       //<- Sbox перестановка
 
   //-> Pbox перестановка
      bs1:=0;
      for s1:=0 to 63 do
        begin
 
        nom:=pbox[s1] div 8;
        bs:=b8out[i4,nom];
        bs:=bs shl (pbox[s1] mod 8);
        bs:=bs shr 7;
        bs:=bs shl (7 - pbox[s1]);
 
        bs1:=bs1+bs;
        b8out[i4,s1 div 8]:=b8out[i4,s1 div 8]+bs1;
        end;
 
       //<--Pbox перестановка
 
 
   end;                  //сеть SP
 
 
 
   for i:=0 to (sizefile8 + 1) do
    for i1:=0 to 7 do OpenFile.write(b8out[i,i1],1);
 
OpenFile.Free;
CloseFile.Free;
 
 
end;
Ответить с цитированием
  #2  
Старый 23.05.2014, 01:02
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

1. Не надо все писать капсом. Это невежливо.
2. Не стоит использовать в качестве переменных зарезервированные имена функций работы с файлами, как то OpenFile, CloseFile
3. Запуск вашего кода с точками останова и последующей построчной отладкой, вам поможет намного быстрее.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #3  
Старый 23.05.2014, 01:07
alyan alyan вне форума
Прохожий
 
Регистрация: 22.05.2014
Сообщения: 8
Версия Delphi: Delphi XE5
Репутация: 10
По умолчанию

Цитата:
Сообщение от Страдалецъ
1. Не надо все писать капсом. Это невежливо.
2. Не стоит использовать в качестве переменных зарезервированные имена функций работы с файлами, как то OpenFile, CloseFile
3. Запуск вашего кода с точками останова и последующей построчной отладкой, вам поможет намного быстрее.


спасибо. про имена забыл совсем.Насчет третьего пункта, я не могу разобраться как в делфи это сделать. подскажите?
Ответить с цитированием
  #4  
Старый 23.05.2014, 01:14
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

1. Можно вообще с самого начала построчно F7
2. В дельфи слева от текста программы есть область, там обычно номера строк. Кликните мышкой в нее и строка выделится красным цветом. Это будет точка останова программы. Теперь если вы запустите ваше приложение F9, то выполнение кода прервется на выделенной строке.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #5  
Старый 23.05.2014, 02:10
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

И опять одни и те же грабли - глобальные переменные под счётчик, нужно переместить все i`шки что задействованы в циклах for..to..do в var-секцию этой процедуры
Ответить с цитированием
  #6  
Старый 23.05.2014, 02:56
alyan alyan вне форума
Прохожий
 
Регистрация: 22.05.2014
Сообщения: 8
Версия Delphi: Delphi XE5
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alegun
И опять одни и те же грабли - глобальные переменные под счётчик, нужно переместить все i`шки что задействованы в циклах for..to..do в var-секцию этой процедуры


все переменные циклов сделал локальными, но при запуске программы winsows завершает работу приложения
Ответить с цитированием
  #7  
Старый 23.05.2014, 03:09
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Покажите пжлст массив key, его содержимое
Ответить с цитированием
  #8  
Старый 23.05.2014, 03:23
alyan alyan вне форума
Прохожий
 
Регистрация: 22.05.2014
Сообщения: 8
Версия Delphi: Delphi XE5
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alegun
Покажите пжлст массив key, его содержимое

как и просили

Код:
1
2
3
4
5
6
7
8
9
10
11
Ckey:=TFilestream.create('key.txt',fmCreate);
ckey.Position:=0;
Edit1.Text:='';
 
 
 
 
for i:=0 to 9 do
  begin
  key[i]:=random(255);
  Ckey.Write(key[i],sizeof(key[i])) ;
Ответить с цитированием
  #9  
Старый 23.05.2014, 03:33
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Нет слов, - собрал под вашу процедуру сборку, исправил что увидел, делфя лишь ругается на массив, что у вас обозначен как key[i], чтоб запустить нужен он и только он, его описание, а вы что показываете?

З.Ы. Догадался ужо, key: array[0..9] of byte;

Последний раз редактировалось Alegun, 23.05.2014 в 03:40.
Ответить с цитированием
  #10  
Старый 23.05.2014, 03:45
alyan alyan вне форума
Прохожий
 
Регистрация: 22.05.2014
Сообщения: 8
Версия Delphi: Delphi XE5
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alegun
Нет слов, - собрал под вашу процедуру сборку, исправил что увидел, делфя лишь ругается на массив, что у вас обозначен как key[i], чтоб запустить нужен он и только он, его описание, а вы что показываете?

переписал процедуру, изменил имена файлов, немного подправил генератор ключей. Вот:

Код:
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
procedure TForm1.Button5Click(Sender: TObject);
var nom:byte; razmer,change,sxor:int64;
keyround:array[0..31] of int64;
b8in,b8out:array[0..7,0..100000000] of byte;
razmerhvosta:byte;
bs,bs1,s1:byte;
sizefile8:int64;
ii,i1,i3,i4,i2:longint;
keychange:array[0..7] of byte;
 
const sbox:array [0..15] of byte=(5,14,15,8,12,1,2,13,11,4,6,3,0,7,9,10);
pbox:array [0..63] of byte = (0,4,8,12,16,20,24,28,32,36,40,44,48,52,56,60,1,
                              5,9,13,17,21,25,29,33,37,41,45,49,53,57,
                              61,2,6,10,14,18,22,26,30,34,38,42,46,5,54,58,
                              62,3,7,11,15,19,23,27,31,35,39,43,47,51,55,59,63);
begin
 
//загрузка файлов
 
OpenFilee:=TFileStream.Create(Edit4.Text,fmOpenRead);
OpenFilee.Position:=0;
 
CloseFilee:=TFileStream.Create('crypted.bin',fmCreate);
CloseFilee.Position:=0;
 
sizefile8:=OpenFile.Size;
sizefile8:=sizefile8 div 8;
 
//загрузка файлов
 
 
//загрузка файла в двумерный массив
 
for ii:=0 to sizefile8 do
    for i1:=0 to 7 do OpenFilee.Read(b8in[ii,i1],1);
 
razmerhvosta:=OpenFilee.Size - sizefile8*8;
 
if (razmerhvosta > 0) then
   for i2:=i1 to razmerhvosta do OpenFilee.Read(b8in[ii+1,i2],1);
 
if (razmerhvosta < 7) then
    for  i2:=i2 to 7 do OpenFilee.Read(b8in[ii+1,i2],1);
 
 
 
 
//загрузка файла в двумерный массив
 
 
for ii:=0 to 31 do    //генерация клбючей
  begin
 
  begin //4
 
  for nom:=0 to 7 do
  begin
  change:=key[nom];
  change:=change shl (8*(7-nom));    //сдвиг битов ключа на Х  бит
  keyround[ii]:=keyround[ii] + change;
   end;
 
  change:=keyround[ii];
  razmer:=change shr 60;
  razmer:=sbox[razmer];
  razmer:=razmer shl 60;
  change:=razmer + ((change shl 4) shr 4 );
 
  razmer:=(change shl  44) shr 59;
  razmer:= razmer xor ii;
  razmer:=razmer shl 15;
 
  change:=((change shr 20) shl 20) + ((change shl 49) shr 49) + razmer;
 
  keyround[ii]:=change;
 
  end;   //4
 
  end//генерация ключей
 
  //i - цмкл сети SP,
 
 
 
 
  for i4:=0 to (sizefile8 + 1) do
 
  for ii:=0 to 30 do       //сеть фейстеля
    begin
 
    //Key XOR->  заполняем sxor:int64 байтами входного, ксорим и пишем назад
 
       for i1:=0 to 7 do  sxor:=sxor + (b8in[i4,i1]) shl (7 - i1);
 
       sxor:=sxor xor keyround[ii];
 
       for i1:=0 to 7 do b8in[i4,i1]:=sxor shr (7-i1);
       //key xor
 
 
       //Sbox перестановка->
 
       i1:=0;
   for i2:=0 to 7 do
   begin
   i1:=i1+1;
   nom:=sbox[i1] div 2;
   if (sbox[i1] mod 2 = 0) then begin
                               bs:=b8in[i4,nom] shr 4;
                               bs:=bs shl 4;
                               end
                          else bs:=b8in[i4,nom] shl 4;
 
   i1:=i1+1;
   nom:=sbox[i1] div 2;
   if (sbox[i1] mod 2 = 0) then bs1:=b8in[i4,nom] shr 4
                          else begin
                               bs1:=b8in[ii,nom] shl 4;
                               bs1:=bs1 shr 4;
                               end;
   b8out[i4,i2]:=bs+bs1;
   b8in[i4,i2]:=b8out[ii,i2];
 
   end;
 
       //<- Sbox перестановка
 
   //-> Pbox перестановка
      bs1:=0;
      for s1:=0 to 63 do
        begin
 
        nom:=pbox[s1] div 8;
        bs:=b8out[i4,nom];
        bs:=bs shl (pbox[s1] mod 8);
        bs:=bs shr 7;
        bs:=bs shl (7 - pbox[s1]);
 
        bs1:=bs1+bs;
        b8out[i4,s1 div 8]:=b8out[i4,s1 div 8]+bs1;
        end;
 
       //<--Pbox перестановка
 
 
   end;                  //сеть фейстеля
 
   for ii:=2 to 9 do keychange[ii]:=key[ii-2];
     keychange[0]:=key[8]; keychange[1]:=key[9];
     for ii:=0 to 9 do key[ii]:=keychange[ii];
 
   for ii:=0 to (sizefile8 + 1) do
    for i1:=0 to 7 do OpenFilee.write(b8out[ii,i1],1);
 
OpenFilee.Free;
CloseFilee.Free;
 
 
end;

При запуске программы, конкретно когда запускаю эту процедуру, Windows завершает работу. А что вы изменили? можете скинуть?
Ответить с цитированием
  #11  
Старый 23.05.2014, 04:25
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

У меня сначло вылезло переполнение стека, изменив размер b8in,b8out с 1го мб до 10ти кб оно исчезло, дальше оказалась перепутана загрузка файла в 2D массив
Код:
1
2
for i:=0 to sizefile8 do
    for i1:=0 to 7 do OpenFile.Read(b8in[i,i1],1);
а должно быть как
Код:
1
2
for i:=0 to 7 do
    for i1:=0 to sizefile8 do OpenFile.Read(b8in[i,i1],1);
, потом смотрите "циклические" переменные - кое где вместо i (она в этот момент вообще без содержимого) нужно вставить или i4 или i2, вам виднее

Ошибки (почти, много предупреждений от СР) исчезли, файлы открылись/перезаписались, шифровки нет - алгоритм не ведом, другими словами, вот вам юнит, крутите дальше сами

Код:
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
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
key: array[0..9] of byte = (123,60,48,50,89,33,145,97,56,29);
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
var
 nom, razmerhvosta, bs, bs1, s1: byte;
 razmer, change, sxor, sizefile8: int64;
 keyround: array[0..31] of int64;
 b8in, b8out: array[0..7, 0..10000] of byte;
//  b8in, b8out: array[0..7, 0..1000000] of byte;
 openfl, closefl: TFileStream;
i, i1, i2, i4: integer;
 
const
sbox: array [1..16] of byte = (5,14,15,8,12,1,2,13,11,4,6,3,0,7,9,10);
pbox: array [1..64] of byte = (0,4,8,12,16,20,24,28,32,36,40,44,48,52,56,60,1,
                               5,9,13,17,21,25,29,33,37,41,45,49,53,57,
                               61,2,6,10,14,18,22,26,30,34,38,42,46,5,54,58,
                               62,3,7,11,15,19,23,27,31,35,39,43,47,51,55,59,63);
 
 
begin
 
//загрузка файлов
 
OpenFl:=TFileStream.Create('text.txt',fmOpenRead);
OpenFl.Position:=0;
 
CloseFl:=TFileStream.Create('crypted.bin',fmCreate);
CloseFl.Position:=0;
 
sizefile8:= OpenFl.Size div 8;
 
 
//загрузка файлов
 
 
//загрузка файла в двумерный массив
 
 for i:=0 to 7 do
  for i1:=0 to sizefile8 do OpenFl.Read(b8in[i, i1], 1);
 
razmerhvosta:= OpenFl.Size - sizefile8 * 8;
 
if (razmerhvosta > 0) then
   for i2:= i1 to razmerhvosta do OpenFl.Read(b8in[i+1, i2], 1);
 
if (razmerhvosta < 7) then
    for  i2:=i2 to 7 do OpenFl.Read(b8in[i+1,i2],1);
 
 
//загрузка файла в двумерный массив
 
 
for i:=0 to 31 do    //генерация клбючей
 
  begin
 
  for nom:=0 to 7 do
  begin
  change:= key[nom] shl (8 * (7 - nom));   //сдвиг битов ключа на Х  бит
  Inc(keyround[i], change);
  end;
 
  change:=keyround[i1];
  razmer:= change shr 60;
//  razmer:=sbox[change];
  razmer:=razmer shl 60;
  change:=razmer + ((change shl 4) shr 4 );
 
  razmer:=(change shl  44) shr 59;
  razmer:= razmer xor i;
  razmer:=razmer shl 15;
 
  change:=((change shr 20) shl 20) + ((change shl 49) shl 49) + razmer;
 
  keyround[i]:=change;
 
  end//генерация ключей
 
  //i - цмкл сети SP,
 
  for i4:=0 to (sizefile8 + 1) do
 
  for i:=0 to 30 do       //сеть SP
    begin
 
    //Key XOR->  заполняем sxor:int64 байтами входного, ксорим и пишем назад
 
       for i1:=0 to 7 do  sxor:=sxor + (b8in[i4,i1]) shl (7 - i1);
 
       sxor:=sxor xor keyround[i];
 
       for i1:=0 to 7 do b8in[i4,i1]:=sxor shr (7-i1);
       //key xor
 
 
       //Sbox перестановка->
 
       i1:=0;
 
   for i2:=0 to 7 do
   begin
   Inc(i1);
   nom:=sbox[i1] div 2;
   if (sbox[i1] mod 2 = 0) then begin
                               bs:=b8in[i4,nom] shr 4;
                               bs:=bs shl 4;
                               end
                          else bs:= b8in[i4,nom] shl 4;
 
   Inc(i1);
   nom:=sbox[i1] div 2;
   if (sbox[i1] mod 2 = 0) then bs1:=b8in[i4,nom] shr 4
                          else begin
                               bs1:=b8in[i4,nom] shl 4;
                               bs1:=bs1 shr 4;
                               end;
   b8out[i4,i2]:=bs+bs1;
   b8in[i4,i2]:=b8out[i4, i2];
 
  end;
 
       //<- Sbox перестановка
 
   //-> Pbox перестановка
      bs1:=0;
      for s1:=0 to 63 do
        begin
 
        nom:=pbox[s1] div 8;
        bs:=b8out[i4,nom];
        bs:=bs shl (pbox[s1] mod 8);
        bs:=bs shr 7;
        bs:=bs shl (7 - pbox[s1]);
 
        bs1:=bs1+bs;
        b8out[i4,s1 div 8]:=b8out[i4,s1 div 8]+bs1;
        end;
 
       //<--Pbox перестановка
 
 
   end;                  //сеть SP
 
 
 
   for i:=0 to (sizefile8 + 1) do
    for i1:=0 to 7 do OpenFl.write(b8out[i,i1],1);
 
OpenFl.Free;
CloseFl.Free;
 
 
end;
 
end.
угу, а утром ещё и на работу ехать, жуть
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 09:17.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025