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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.05.2012, 23:23   #1
Egorza
Новичок
Джуниор
 
Регистрация: 10.05.2012
Сообщений: 1
Вопрос запись текстового файла в stringgrid

в файле записано:

Егор 11111111 qqq@mail.ru
Вася 22222222 www@mail.ru
Вика 33333333 eee@mail.ru
Маша 88888888 rrr@mail.ru
Даня 99999999 ttt@mail.ru

При запуске программы ошибок не выдает, а при нажатии кнопки для записи в stringgrid программа виснет

Код:
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids, ExtCtrls, ExtDlgs;

type
  TForm2 = class(TForm)
    StringGrid1: TStringGrid;
    Load_From_File: TButton;
    Add_To_Member: TButton;
    Save_To_File: TButton;
    Button1: TButton;
    OpenPictureDialog1: TOpenPictureDialog;
    Image1: TImage;
    procedure Load_From_FileClick(Sender: TObject);
    procedure Add_To_MemberClick(Sender: TObject);
    procedure Save_To_FileClick(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;
  k,r:integer;
implementation

{$R *.dfm}

procedure TForm2.Load_From_FileClick(Sender: TObject);
  var
  t:textfile;
  f,f1,f2:string[50];
  i:integer;
begin
  f:='D:\Temp\program_delphi\text1.txt';
  Assignfile(t,f);
  reset(t);
  r:=0;
  stringgrid1.colcount:=4;
  repeat
    inc(r);
    stringgrid1.RowCount:=r+1;
    for i:=1 to 3 do
      begin
        f2:='';
        repeat
          read(t,f1);
          f2:=f2+f1;
        until (f1=' ')or(eoln(t));
        stringgrid1.Cells[i,r]:=f2;
      end;
  until eof(t);


  closefile(t);
end;
________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 11.05.2012 в 00:22.
Egorza вне форума Ответить с цитированием
Старый 11.05.2012, 00:39   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

могу ошибаться, но, имхо, если читаете посимвольно и встретили конец строки, то нужно вызывать функцию Readln(t)

но я хочу спросить Вас, а зачем Вам такие навороченные и не надёжные методы чтения?!

так не проще?
Код:
procedure TForm3.Button1Click(Sender: TObject);
{procedure TForm2.Load_From_FileClick(Sender: TObject);}
 var
  ts:TStringList;
  s : string;
  i, r, k, p1 :integer;
begin
  ts := TStringList.Create;
  try
  ts.LoadFromFile('D:\Temp\program_delphi\text1.txt');
  r:=0;
  stringgrid1.colcount:= 4;
  stringgrid1.rowcount:= ts.Count;
  for i := 0 to ts.Count - 1 do begin
    if Trim( ts.Strings[i])<>'' then begin
      inc(r);
      k := 0;
      s := ts.Strings[i]+' ';
      while (Pos(' ', s)>0) and (k<3) do begin
        inc(k);
        p1 := Pos(' ',s);
        stringgrid1.Cells[k,r]:= Copy(s, 1, p1-1);
        Delete(s, 1, p1)
      end;
    end;
  end;
  if r>stringgrid1.rowcount then stringgrid1.rowcount := r;
  finally
    FreeAndNil(ts);
  end;
end;
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запись из файла txt в StringGrid mafuea Помощь студентам 6 09.12.2011 15:41
Запись типизированного файла из текстового. Lubawa Паскаль, Turbo Pascal, PascalABC.NET 18 05.11.2011 11:27
Связь текстового файла с StringGrid DgaDga Помощь студентам 9 09.05.2011 23:29
Вывод текстового файла в Stringgrid KingWaR56 Помощь студентам 1 26.04.2011 18:39
Из текстового файла в бд!!! Poltev86 БД в Delphi 5 16.05.2010 23:18