Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Динамический массив [D7, WinXP]


DmitriyR ©   (2009-03-16 16:01:00) 

Вот кусок кода:

var
 F: TFileStream;
 l: integer;
 Cert: array of Char;
Begin
 F := TFileStream.create('c:\test.dat', fmOpenRead);
 l := F.Size;
 SetLength(Cert, l);
 F.Read(Cert, l);
 F.Free;
 D := TFileStream.create('c:\test.dat.new', fmCreate);
 D.Write(Cert, l);
 D.Free;
 Cert := nil;
end;
получаю в файле test.dat.new какуюто чуш :( непойми откуда он это берет. Хотя при трасеровке во время чтения файла в массиве Cert все равно не то что в файле оригинале :(
Если делаю вот так:
var
 F: TFileStream;
 l: integer;
 Cert: array of array of Char;
Begin
 F := TFileStream.create('c:\test.dat', fmOpenRead);
 l := F.Size;
 SetLength(Cert,1, l);
 F.Read(Cert[1], l);
 F.Free;
 D := TFileStream.create('c:\test.dat.new', fmCreate);
 D.Write(Cert[1], l);
 D.Free;
 Cert := nil;
end;
То в файле test.dat.new переносится все как положено, но
после строки Cert := nil прога зваисает намертво :( тоесть на выходе из процедуры.

Устал бится уже незнаю в какую сторону копать :(


Anatoly Podgoretsky   (2009-03-16 20:35:00) [1]

> Тын-Дын  (16.03.2009 17:20:08)  [8]

Выдержит или сломается


Тын-Дын   (2009-03-16 17:20:00) [2]


> И нафига это?


Самотестирование мозга, может быть?;)


Anatoly Podgoretsky   (2009-03-16 16:56:00) [3]

> DmitriyR  (16.03.2009 16:19:06)  [6]

И нафига это?


DmitriyR   (2009-03-16 16:19:00) [4]

О все спс:

var
F: TFileStream;
l: integer;
Cert: array of Char;
Begin
F := TFileStream.create('c:\test.dat', fmOpenRead);
l := F.Size;
SetLength(Cert, l);
F.Read(Cert[0], l);
F.Free;
D := TFileStream.create('c:\test.dat.new', fmCreate);
D.Write(Cert[0], l);
D.Free;
Cert := nil;
end;
Во так прокатило. Всем СПС. Пополз читать ман, хотя в нем указано просто
как в первом варианте. :(


Медвежонок Пятачок   (2009-03-16 16:13:00) [5]

риду нужен адрес, а не указатель

и райту тоже


DmitriyR   (2009-03-16 16:12:00) [6]


> Cert[0] используй в методах чтения и записи

Вот если ставлю Cert[0]  во втором примере то на выходе имею тоже самое что и в первом + тоже самое зависание :(


MBo   (2009-03-16 16:05:00) [7]

Cert[0] используй в методах чтения и записи


DmitriyR   (2009-03-16 16:04:00) [8]

Упс опечатка:
F, D: TFileStream;


Медвежонок Пятачок   (2009-03-16 16:04:00) [9]

риду нужен адрес, а не указатель


Наверх

Титульная страница Поиск, карта сайта Написать письмо