Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

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

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

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 19.04.2012, 00:55   #1
Zhenya666
 
Регистрация: 04.03.2012
Сообщений: 4
Вопрос Считать текст из файла в массив

Нужно написать программу "Составить ведомость, содержащую информацию о производимом предприятиями товаре за квартал. Для работы с данными использовать структуру типа ' запись ' . Поля должны содержать информацию о подразделении, количестве товара в каждом месяце и суммарном значении производимого значения за квартал. Работу с файлом организовать с помощью меню. "
Не получается прочитать правильно текст из файла.
Может каким-то специальным образом нужно вводить данные в файле или как, не пойму...
вот код программы
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, ComCtrls, Grids, StdCtrls;

type
  TForm1 = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    OpenDialog1: TOpenDialog;
    SaveDialog1: TSaveDialog;
    N2: TMenuItem;
    N3: TMenuItem;
    StringGrid1: TStringGrid;
    N6: TMenuItem;
    N7: TMenuItem;
    procedure N2Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure Create_(Sender: TObject);
    procedure N7Click(Sender: TObject);

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


type
info=record {òèï çàïèñåé}
nom,pred,vid,tov,kvar: string[20];
end;

var
//PagesDlg: TPagesDlg; {Ñòðîêà åñòü â çàãîëîâêå ìîäóëÿ}
f: file of info; {Ôàéë çàïèñåé}
r: info; {Îäíà çàïèñü}
N: integer; {Êîëè÷åñòâî çàïèñåé}
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.N2Click(Sender: TObject);
{ïðîöåäóðà ÷òåíèÿ èç ôàéëà}
var i: integer;
begin
if OpenDialog1.Execute then
begin
AssignFile(F,OpenDialog1.FileName);
Reset(F);
N:=0;
while not eof(f) do
begin
read(F,r);
stringGrid1.Cells[0,N+1]:=r.nom;
stringGrid1.Cells[1,N+1]:=r.pred;
stringGrid1.Cells[2,N+1]:=r.vid;
stringGrid1.Cells[3,N+1]:=r.tov;
stringGrid1.Cells[4,N+1]:=r.kvar;
N:=N+1 {óâåëè÷åíèå ÷èñëà çàïèñåé íà 1}
end;
closeFile(F);
end;
  end;
procedure TForm1.N3Click(Sender: TObject);
var i:integer;
begin
if SaveDialog1.Execute then
begin
AssignFile(F,SaveDialog1.FileName);
Rewrite(F);
i:=1;
while stringGrid1.Cells[3,i]<>'' do
begin
r.fio:=stringGrid1.Cells[0,i];
r.gr:=stringGrid1.Cells[1,i];
r.faq:=stringGrid1.Cells[2,i];
r.predmet:=stringGrid1.Cells[3,i];
r.ocenka:=stringGrid1.Cells[4,i];
write(F,r);
i:=i+1
end;
closeFile(F)
end
end;

procedure TForm1.Create_(Sender: TObject);
begin
stringGrid1.Cells[0,0]:='Íîìåð';
stringGrid1.Cells[1,0]:='Íàçâàíèå ïðåäïðèÿòèÿ';
stringGrid1.Cells[2,0]:='Âèäû òîâàðà';
stringGrid1.Cells[3,0]:='Êîëè÷åñòâî òîâàðà çà ìåñÿö';
stringGrid1.Cells[4,0]:='Êîëè÷åñòâî òîâàðà çà êâàðòàë';
end;

procedure TForm1.N7Click(Sender: TObject);
begin
close;
end;


end.
Zhenya666 вне форума Ответить с цитированием
Старый 19.04.2012, 01:01   #2
Katus
Форумчанин
 
Регистрация: 30.11.2011
Сообщений: 161
Радость

Код:
while not eof(f) do
begin
read(F,r);
stringGrid1.Cells[0,N+1]:=r.nom;
stringGrid1.Cells[1,N+1]:=r.pred;
stringGrid1.Cells[2,N+1]:=r.vid;
stringGrid1.Cells[3,N+1]:=r.tov;
stringGrid1.Cells[4,N+1]:=r.kvar;
N:=N+1 {óâåëè÷åíèå ÷èñëà çàïèñåé íà 1}
end;
closeFile(F);
когда вы закрываете файл обнуляется положение... как сказать... позиция "курсора".... просто откройте файл перед циклом и закройте после
Если лень что-то делать, заставь это делать машину ... =,
Katus вне форума Ответить с цитированием
Старый 19.04.2012, 01:17   #3
Zhenya666
 
Регистрация: 04.03.2012
Сообщений: 4
По умолчанию

Не могли бы Вы подсказать, каким образом осуществляется чтение текста из файла (т.е. по строкам или через пробелы, или ещё каким-то образом) и запись его в массив? И как лучше осуществить то, что вы описали выше?
Извиняйте за мою глупость, не очень прошарен в этом деле.
Zhenya666 вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Считать из файла в массив bool Lika18 Помощь студентам 0 13.01.2012 22:19
как считать из файла в массив по символьно? casper1991 Visual C++ 1 12.04.2011 20:39
считать массив чисел из файла Razza Общие вопросы C/C++ 5 13.12.2010 23:10
Как считать массив из файла? Ronin021992 Общие вопросы C/C++ 4 16.12.2009 21:44
считать елементы файла в массив XfighT Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 14.01.2008 17:35


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS