Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 2 329

/ вопрос открыт /

Здравствуйте!
Подскажите пожайлуста как из текстового файла вывести данные в компонент StringRid в 3 столбца, если данные в файл записаны в столбик?

Mania Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задала: 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

Mania (статус: Посетитель), 21 января 2009, 14:40 [#2]:

задание такое: В текстовом файле содержатся сведения о радиодеталях, необходимых для изготовления устройства: название, номинал, количество. Создать анкетную форму для заполнения файла. Названия деталей выбирать из списка (компонент ComboBox вкладки Standart). Вывести на экран сведения в виде таблицы, сгруппировать по названию деталей
Вадим К

Вадим К (статус: Академик), 21 января 2009, 14:45 [#3]:

ну это всё прекрасно. Но решать за Вас задачу врядли будут.
Содержаться данные.... а как они там содержаться, вот в чем вопрос. Если не задано - значит наверное Вам нужно самостоятельно придумать. а потом задавать вопросы.
Галочка "подтверждения прочтения" - вселенское зло.
Mania

Mania (статус: Посетитель), 21 января 2009, 14:49 [#4]:

Если я вам вышлю код программы, в которой осталось сделать только вывод в StringRid вы мне сможете помочь?
Mania

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

Mania (статус: Посетитель), 21 января 2009, 15:26 [#7]:

Спасибо Вам большое!

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 25 сентября 2020, 07:09
Выполнено за 0.02 сек.
Рейтинг@Mail.ru