Показать сообщение отдельно
  #1  
Старый 07.02.2010, 22:31
vladimir01101988 vladimir01101988 вне форума
Прохожий
 
Регистрация: 03.12.2009
Сообщения: 19
Репутация: 10
По умолчанию запись из потока в массив

Подскажите пожалуйста, при чтении из потока в файл выходит ошибка is not a valid integer value.
При записи массива в поток все работает корректно.

Код:
unit TEST1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ToolWin, ComCtrls, ActnMan, ActnCtrls, Grids;

  const
  MaxElements = 10;

type
  TForm1 = class(TForm)
    SaveButton1: TButton;
    StringGrid1: TStringGrid;
    StringGrid2: TStringGrid;
    LoadButton1: TButton;
    procedure SaveButton1Click(Sender: TObject);
    procedure LoadButton1Click(Sender: TObject);

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

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.SaveButton1Click(Sender: TObject);
var
  i: integer;
  n: array[1..MaxElements] of integer;
  p1: TStream;
  S: string;
   begin
    for i := 1 to MaxElements do
     n[i]:= (i)*(-2);
      for i := 1 to MaxElements do
       StringGrid1.Cells[1, i]:= intTostr(n[i]);
        begin
         p1 := TFileStream.Create('D:\тест\file34.txt', fmCreate);
          try
           for i := 1 to MaxElements do
           begin
            S := IntToStr(n[i]) + #13#10;
            p1.Write(PChar(S)^, Length(S));
           end;
          finally
        end;
       p1.Free;
     end;
   end;

procedure TForm1.LoadButton1Click(Sender: TObject);
 var
  i:integer;
  k: array[1..MaxElements] of integer;
  p2:TStream;
  f:array[1..10] of string;
   begin
    p2:= TFileStream.Create('D:\тест\file34.txt', fmopenread);
     try
     for i := 1 to MaxElements do begin
      p2.Read(PChar(f[i])^, Length(f));
     // p2.Read(k[1], MaxElements*(SizeOf(integer)));
      // for i := 1 to MaxElements do begin
       k[i]:=strtoint(f[i]);
        StringGrid2.Cells[1, i] := IntToStr(f[i]);
        end;
     finally
   end;
 p2.Free;
  end;
end.
Ответить с цитированием