|
Вопрос # 2 329/ вопрос открыт / |
|
Здравствуйте!
Подскажите пожайлуста как из текстового файла вывести данные в компонент StringRid в 3 столбца, если данные в файл записаны в столбик?
 |
Вопрос задала: Mania (статус: Посетитель)
Вопрос отправлен: 21 января 2009, 14:30
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Ученый
Здравствуйте, Mania! Можно еще попробывать вот так:
procedure TForm1.Button1Click(Sender: TObject);
var sl:TStringList;
begin
sl:=TStringList.create;
sl.LoadFromFile('Имя Файла');
StringGrid1.cells[1,1]:=Sl[0];// выведет первую строку из текстового файла
StringGrid1.cells[1,2]:=Sl[1]; // выведет Вторую строку из текстового файла
StringGrid1.cells[1,3]:=Sl[2]; // выведет третью строку из текстового файла
sl.free;
end;
end.
 |
Ответ отправил: Ученый (статус: 8-ой класс)
Время отправки: 21 января 2009, 16:08
|
Мини-форум вопроса
Всего сообщений: 7; последнее сообщение — 21 января 2009, 15:26; участников в обсуждении: 2.
|
Вадим К (статус: Академик), 21 января 2009, 14:36 [#1]:
А в строку умеете? а в 4 столбца? в чем проблема собственно, как данные в текстовом файле представлены. Вы не знаете. как с StringGrid работать, или не можете с файла вычитать и разпарсить?
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Mania (статус: Посетитель), 21 января 2009, 14:40 [#2]:
задание такое: В текстовом файле содержатся сведения о радиодеталях, необходимых для изготовления устройства: название, номинал, количество. Создать анкетную форму для заполнения файла. Названия деталей выбирать из списка (компонент ComboBox вкладки Standart). Вывести на экран сведения в виде таблицы, сгруппировать по названию деталей
|
|
Вадим К (статус: Академик), 21 января 2009, 14:45 [#3]:
ну это всё прекрасно. Но решать за Вас задачу врядли будут.
Содержаться данные.... а как они там содержаться, вот в чем вопрос. Если не задано - значит наверное Вам нужно самостоятельно придумать. а потом задавать вопросы.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Mania (статус: Посетитель), 21 января 2009, 14:49 [#4]:
Если я вам вышлю код программы, в которой осталось сделать только вывод в StringRid вы мне сможете помочь?
|
|
Mania (статус: Посетитель), 21 января 2009, 15:01 [#5]:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, Grids;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
ComboBox1: TComboBox;
Button1: TButton;
Button2: TButton;
StringGrid1: TStringGrid;
BitBtn1: TBitBtn;
Memo1: TMemo;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var f:TextFile;
begin
If (length(Edit1.Text)=0)
or (length(Edit2.Text)=0)
or (Combobox1.Text='')
then
ShowMessage ('Ошибка ввода данных.'+#13'Все поля должны быть заполнены.')
else
begin
try
AssignFile(f,'produc.txt');
{$I-}
Append(f);
writeln(f, edit1.text);
writeln(f,edit2.text);
writeln(f,Combobox1.Text);
closeFile(f);
except
on EInOutError do ShowMessage('Невозможно записать в файл');
end;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var f:textfile;
begin
AssignFile(f,'produc.txt');
{$I-}
Append(f);
If IOResult=0
then Button2.Enabled:=true
else
begin
rewrite(f);
If IOResult<>0
then Button1.Enabled:=true
else
ShowMessage('Ошибка создания файла Produc.txt');
end;
closeFile(f);
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
var
f:textfile;
i,j:integer;
s:string;
begin
Stringgrid1.Cells[0,0]:='Наименование детали';
Stringgrid1.Cells[1,0]:='Номинал';
Stringgrid1.Cells[2,0]:='Количество';
AssignFile(f,'produc.txt');
reset(f);
While Not EOF(f) do
begin
readln(f,s);
form1.Memo1.Lines.Add(s); //Выводит содержимое текстового файла в мемо а надо в StringGrid1
end;
end;
end.
|
|
Вадим К (статус: Академик), 21 января 2009, 15:15 [#6]:
Ну до каких пор, до каких люди будут делать так как они хотят, а не то, что их просят. Я же русским языком написал "нужен формат файл", могу украинским, английским.
Почему я должен всматриваться в код и искать там среди безликих ButtonXClick нужный обработчик?
AssignFile(f,'produc.txt');
reset(f);
While Not EOF(f) do
begin
readln(f,s);
form1.Memo1.Lines.Add(s); //Выводит содержимое текстового файла в мемо а надо в StringGrid1
end;
А длинее можно было написать? почему просто не написать
Memo1.Lines.loadFromFile('produc.txt'); Результат тот же.
а использование {$I-} и исключений в перемешку чего только стоит... за такое надо ставить незачет в зачетку и выгонять. Сразу.
Добавить в грид? ну не ужели так сложно написать что то вида
i := 0;
AssignFile(f,'produc.txt');
reset(f);
While Not EOF(f) do
begin
readln(f,s);
StringGrid1.cells[i mod 3, (i div 3) + 1] := s;
i :=i+1;
end;
CloseFile(f);
И самое главное, файлы закрывать за собой надо!
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Mania (статус: Посетитель), 21 января 2009, 15:26 [#7]:
Спасибо Вам большое!
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|