|  | 
 
 | 
| 
 | |||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны | 
|  | 
|  | Опции темы | Поиск в этой теме | Опции просмотра | 
|  | 
| 
			 
			#1  
			
			
			
			
		 | |||
| 
 | |||
|  TFilestream + Записи не могу понять (( Здравствуйте! Не могу понять в чем ошибка: описываю свой тип TUpdateInf присваиваю переменной этого типа значения записываю все это в файл с помошью TFileStream потом читаю и вывожу все это на экран с помошью ShowMessage, одно из двух либо выходит абракадабра либо вылетает ошибка Access violation at address... В чем обшибка подскажите? Код:   
private
    { Private declarations }
  public
    { Public declarations }
  end;
TUpdateInf = Record
             FName: Array[0..999] of String;
             FUpd: Array[0..999] of Boolean;
             End;
var
  Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.BWriteClick(Sender: TObject);
var
I:SmallInt;
F:TFileStream;
Inf:TUpdateInf;
begin
For I:=0 to 9 do
    Begin
    Inf.FName[i]:='test' + inttostr(i);
    Inf.FUpd[i]:=True;
    End;
F:=TFileStream.Create('C:\1.txt',FmCreate);
F.WriteBuffer(Inf,SizeOf(TUpdateInf));
F.Free;
end;
procedure TForm1.BReadClick(Sender: TObject);
var
I:SmallInt;
F:TFileStream;
Inf:TUpdateInf;
begin
F:=TFileStream.Create('C:\1.txt',FmOpenRead);
F.ReadBuffer(Inf,SizeOf(TUpdateInf));
F.Free;
For i:=0 To 9 do
    Begin
    ShowMessage(Inf.FName[i]);
    End;
end; | 
| 
			 
			#2  
			
			
			
			
		 | |||
| 
 | |||
|   F.WriteBuffer(^inf,sizeof(UpdateInf)); пропустили ^. У меня вот так вот программа работает. F.ReadBuffer(^inf,sizeof(UpdateInf)); | 
| 
			 
			#3  
			
			
			
			
		 | |||
| 
 | |||
|   Понял что проблема в массивах описанного типа... Ну почему так делать нельзя и как можно не пойму... | 
| 
			 
			#4  
			
			
			
			
		 | |||
| 
 | |||
|   Borland всегда что-то неправильно сама делает. И реализация возможностей, к сожалению у Borland отстает на десятки лет. Например поддержка GDI+ была уже в Microsoft Visual Studio 2003. А даже в Borland Delphi 2009 нет такой возможности! Покажите лог компилятора! | 
| 
			 
			#5  
			
			
			
			
		 | |||
| 
 | |||
|   ComputerMonster  логи компилятора пустые если я правильно понял про какие вы логи спрашиваете, компилируеться все на ура а вот работать не хочет...  P.S: Как просматреть логи? | 
| 
			 
			#6  
			
			
			
			
		 | |||
| 
 | |||
|   Они где внизу в компиляторе. Ладно. Пришлите саму программу мне на личный e-mail. Я протестирую её и скажу Вам. Личный e-mail вы узнаете, нажав на ссылку ComputerMonster. Появится всплывающее меню, и пишите на e-mail. Вложение в письмо сделайте. Вложение - это прикрепление файла к письму. Вложите программу EXE, т.е. сам исполняемый файл. | 
| 
			 
			#7  
			
			
			
			
		 | |||
| 
 | |||
|   ComputerMonster  да я про эти логи и говорил, подумал может еще какие есть )))... Спасибо за подробное объяснение про почту и вложения... ну я уж не такой noob   ... Щас вышлю вместе с исходниками...  |