Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.01.2017, 17:45   #11
Михаил22042016
Пользователь
 
Регистрация: 21.04.2016
Сообщений: 54
По умолчанию

но мне всеже не ясно, при сохранении все массивы имеют вполне определенный размер, как компилятор не может его узнать...
тогда было бы все просто, как 2*2
f: file of свой тип;
f.Write(Sloy, SizeOf(TYxX));
и наоборот, верно?
Михаил22042016 вне форума Ответить с цитированием
Старый 22.01.2017, 20:02   #12
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,546
По умолчанию

К сообщению #10. Ну это в стиле Паскаля . Меня за это полоскал гуру, ненадолго забредавший на этот форум : немодно, мол, это, если не Stream .

Последний раз редактировалось digitalis; 22.01.2017 в 20:05.
digitalis на форуме Ответить с цитированием
Старый 24.01.2017, 05:28   #13
Михаил22042016
Пользователь
 
Регистрация: 21.04.2016
Сообщений: 54
По умолчанию

а кто нибудь подскажет чем заменить листбокс чтобы работать с стрин листом,
то есть, я все сообщения добавляю в не визуальный стринглист, а вконце всех манипуляций, просто пишу мемо.текст = стринг лист текст, это так все быстрее работает, так мемо не моргает, нормально все отображает, а вот с листбоксом все плохо, даблбуфер не помогает...
Михаил22042016 вне форума Ответить с цитированием
Старый 25.02.2017, 11:36   #14
Михаил22042016
Пользователь
 
Регистрация: 21.04.2016
Сообщений: 54
По умолчанию

разобраля с этим кодом, протестировал...
дикая скорость))) по сравнению с тем что я намутил.
это шикарный способ... СПАСИБО, всех благ...
как тут репутацию плюсануть
Цитата:
Сообщение от Аватар Посмотреть сообщение
type TArrayOfreal = array of Real;
TNeuron = Record
X: TArrayOfreal; // вход
W: TArrayOfreal; // входные веса
Y: real; // ответ нейрона
Err: real;
end;
TX = Array of TNeuron;
TYxX = Array of TX;

procedure ShowTYxX(m: TYxX; Memo: TMemo);
var i,j,k: Integer;
s: String;
begin
Memo.Clear;
Memo.Lines.Add(Format('Length(m)=%d ',[Length(m)]));
Memo.Lines.Add('');
for i:=Low(m) to High(m) do begin
Memo.Lines.Add(Format('Length(m[%d]) = %d',[i,Length(m[i])]));
Memo.Lines.Add('');
for j:=Low(m[i]) to High(m[i]) do begin
s:=Format('Length(m[%d][%d].X) = %d, значения = ',[i,j,Length(m[i][j].X)]);
for k:=Low(m[i][j].X) to High(m[i][j].X) do s:=s+Format('%f; ',[m[i][j].X[k]]);
Memo.Lines.Add(s);
s:=Format('Length(m[%d][%d].W) = %d, значения = ',[i,j,Length(m[i][j].W)]);
for k:=Low(m[i][j].W) to High(m[i][j].W) do s:=s+Format('%f; ',[m[i][j].W[k]]);
Memo.Lines.Add(s);
Memo.Lines.Add(Format('m[%d][%d].Y = %f',[i,j,m[i][j].Y]));
Memo.Lines.Add(Format('m[%d][%d].Err = %f',[i,j,m[i][j].Err]));
Memo.Lines.Add('');
end;
end;
end;

procedure SaveToStreamTYxX(m: TYxX; Stream: TStream);
var Len,i,j: Integer;
begin
Len:=Length(m);
Stream.WriteBuffer(Len,SizeOf(Integ er));
for i:=Low(m) to High(m) do begin
Len:=Length(m[i]);
Stream.WriteBuffer(Len,SizeOf(Integ er));
for j:=Low(m[i]) to High(m[i]) do begin
Len:=Length(m[i][j].X);
Stream.WriteBuffer(Len,SizeOf(Integ er));
if Len>0 then Stream.WriteBuffer(Pointer(m[i][j].X)^,Len*SizeOf(Real));
Len:=Length(m[i][j].W);
Stream.WriteBuffer(Len,SizeOf(Integ er));
if Len>0 then Stream.WriteBuffer(Pointer(m[i][j].W)^,Len*SizeOf(Real));
Stream.WriteBuffer(m[i][j].Y,SizeOf(Real));
Stream.WriteBuffer(m[i][j].Err,SizeOf(Real));
end;
end;
end;

function ReadFromStreamTYxX(var m: TYxX; Stream: TStream): Boolean;
var Len,i,j: Integer;
begin
try
Stream.Position:=0;
Stream.ReadBuffer(Len,SizeOf(Intege r));
SetLength(m,Len);
for i:=Low(m) to High(m) do begin
Stream.ReadBuffer(Len,SizeOf(Intege r));
SetLength(m[i],Len);
for j:=Low(m[i]) to High(m[i]) do begin
Stream.ReadBuffer(Len,SizeOf(Intege r));
SetLength(m[i][j].X,Len);
if Len>0 then Stream.ReadBuffer(Pointer(m[i][j].X)^,Len*SizeOf(Real));
Stream.ReadBuffer(Len,SizeOf(Intege r));
SetLength(m[i][j].W,Len);
if Len>0 then Stream.ReadBuffer(Pointer(m[i][j].W)^,Len*SizeOf(Real));
Stream.ReadBuffer(m[i][j].Y,SizeOf(Real));
Stream.ReadBuffer(m[i][j].Err,SizeOf(Real));
end;
end;
Result:=True;
except
Result:=False;
end;
end;
Михаил22042016 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Android. Как сохранить/загрузить данные в устройстве в файл (телефон, планшет)? alextrof94 Общие вопросы Delphi 27 04.03.2016 00:31
Сохранить Graphics в файл или считать с него цвет Alexan-Dwer Java Мобильная разработка (Android) 1 05.02.2012 14:19
Как сохранить файл так чтобы он имел расширение ПРИЛОЖЕНИЕ, и сделать потом ярлык? Костян 98 Общие вопросы Delphi 1 03.06.2011 12:10
как записать в файл и считать потом из него три массива с числами racushka_n Помощь студентам 11 31.10.2010 04:43
WinInet загрузить файл во временной файл , использовать, потом удалить Человек_Борща Работа с сетью в Delphi 5 03.08.2010 13:46