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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.04.2011, 14:38   #1
Beren42
Пользователь
 
Регистрация: 14.12.2010
Сообщений: 50
По умолчанию Работа с файлами. Ведомость

Вот в чём суть. На форме 2 кнопки и таблица строк. Одна кнопка загружает файл и выводит в StringGrid имена и оценки в двух колонках. Это у меня получилось. Теперь надо, чтобы пользователь изменил значение оценки и сохранил в файл. goEditing =true поставил. Вот код. Спасибо.
Код:
implementation
 
{$R *.dfm}
 const
N=50;
 type
 Trec=record
 Name:string;
 mark:integer;
 end ;
 Tgroup=array [1..n] of Trec;
 var
 Xgroup:Tgroup;
 Ngroup:integer;
 F:Textfile;
  i:integer;
 
procedure TForm1.Button1Click(Sender: TObject);
var
s:string ;
begin
StringGrid1.Cells [0,0]:='Name';
StringGrid1.Cells [1,0]:='Mark';
AssignFile(F,'C:\Text.txt');
Reset (F);
Ngroup:=0;
  while not EOF(f) do
      begin
      Ngroup:= NGroup+1;
      Readln(F,S);
      XGroup[Ngroup].Name:=s;
      Readln(F,S);
      XGroup[Ngroup].mark:=StrToInt(s);
      StringGrid1.Cells[0,Ngroup]:=Xgroup[Ngroup].name;
      StringGrid1.Cells[1,Ngroup]:= IntToStr(Xgroup[Ngroup].mark);
      end;
      CloseFile(F);
end;
 
procedure TForm1.Button2Click(Sender: TObject);
  var
  s :string;
  sel1,sel2,j:integer;
 begin
    for i:=0 to StringGrid1.RowCount-1 do
    for j:=0 to StringGrid1.ColCount-1 do
   begin
   if //выбрана какая-то строка в колонке mark
   then
                  begin
         sel1:=i+1;
         sel2:=j+1;
         break
                  end;
   end;
   if sel>0 then
   begin
    Xgroup[sel].mark:=StrToInt (StringGrid1.Cells[sel1,sel2]);
      end;
         end;
 
      ASsignFile(F,'C:\Text.txt');
    Rewrite(F);
 
    for I:=1 to Ngroup do
    begin
       s:= Xgroup[i].name ;
        writeln(F,s);
        s:=IntToStr(Xgroup[i].mark);
         writeln(F,s);
 
    end;
    closeFile(F);
 
end;
 
 
end.
Beren42 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа с файлами Dimarik Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 23.02.2011 11:11
Оборотная ведомость средствами SQL Dimych SQL, базы данных 11 03.09.2010 13:42
Экзаменационная ведомость (PHP) Light05 Помощь студентам 2 15.03.2010 06:53
Работа с файлами в Си shturman_ivanov Помощь студентам 0 27.12.2009 21:01
Работа с файлами Cpluser Общие вопросы C/C++ 2 16.02.2009 23:22