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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.04.2012, 15:15   #1
nimbus2000
Пользователь
 
Регистрация: 08.02.2012
Сообщений: 20
Печаль Сохранение и считывание файлов в стринггриде

Код:
implementation

{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
Type MyRec=Record
           Name:string[10];
           Surname:string[10];
           Age:integer;
           city:string[10];
           street:string[10];
        End;
Var MyVar:MyRec;  f:File of MyRec; i:integer;
begin
AssignFile(f,'d:\text.txt');
Rewrite(f);
for  i:=1 to stringgrid1.rowCount-1 do begin
  MyVar.Name:=stringgrid1.Cells[1,i];
  MyVar.Surname:=stringgrid1.Cells[2,i];
  MyVar.Age:=strtoint(stringgrid1.Cells[3,i]);
  MyVar.City:=stringgrid1.Cells[4,i];
  MyVar.Street:=stringgrid1.Cells[5,i];  
  Write(f,MyVar);
end;
Closefile(f);

end;
procedure TForm1.Button2Click(Sender: TObject);

Type MyRec=Record
           Name:string[10];
           Surname:string[10];
           Age:integer;
           city:string[10];
           street:string[10];
        End;

Var MyVar:MyRec;  f:File of MyRec; i:integer;
begin
  AssignFile(f,'d:\text.txt');
  Reset(f);
  i := FileSize(f); 
  stringgrid2.rowCount := i ;
  for  i:=1 to stringgrid2.rowCount-1 do begin
     Read(f, MyVar);
     stringgrid2 .Cells[1,i] := MyVar.Name;
     stringgrid2.Cells[2,i] := MyVar.Surname;
     stringgrid2.Cells[3,i] := IntToStr(MyVar.Age);
     stringgrid2.Cells[4,i] := MyVar.City;
     stringgrid2.Cells[5,i] := MyVar.Street;
  end;
  Closefile(f);
end;
Проблема вот в чем:сам файл создаётся ,но в него ничего не записывается.Может это как-нибудь связано с ОС?у меня 7-ка стоит если чё.Или всё-таки ошибка в программе?Хелп плиз.

Последний раз редактировалось Stilet; 15.04.2012 в 15:56.
nimbus2000 вне форума Ответить с цитированием
Старый 15.04.2012, 15:32   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Вот так у меня работает:
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    Button1: TButton;
    Button2: TButton;
    StringGrid2: TStringGrid;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

type MyRec = record
    Name: string[10];
    Surname: string[10];
    Age: integer;
    city: string[10];
    street: string[10];
  end;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var MyVar: MyRec;
  f: file of MyRec;
  i: integer;
begin
  AssignFile(f, 'text.txt');
  Rewrite(f);
  for i := 1 to stringgrid1.rowCount - 1 do begin
    MyVar.Name := stringgrid1.Cells[1, i];
    MyVar.Surname := stringgrid1.Cells[2, i];
    MyVar.Age := strtoint(stringgrid1.Cells[3, i]);
    MyVar.City := stringgrid1.Cells[4, i];
    MyVar.Street := stringgrid1.Cells[5, i];
    Write(f, MyVar);
  end;
  Closefile(f);
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  MyVar: MyRec;
  f: file of MyRec;
  i: integer;
begin
  AssignFile(f, 'text.txt');
  Reset(f);
  stringgrid2.rowCount := FileSize(f) + 1;
  for i := 1 to stringgrid2.rowCount - 1 do begin
    Read(f, MyVar);
    stringgrid2.Cells[1, i] := MyVar.Name;
    stringgrid2.Cells[2, i] := MyVar.Surname;
    stringgrid2.Cells[3, i] := IntToStr(MyVar.Age);
    stringgrid2.Cells[4, i] := MyVar.City;
    stringgrid2.Cells[5, i] := MyVar.Street;
  end;
  Closefile(f);
end;

end.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 15.04.2012, 16:56   #3
nimbus2000
Пользователь
 
Регистрация: 08.02.2012
Сообщений: 20
По умолчанию

У меня всё-равно не работает ХЕЛППППППППП
nimbus2000 вне форума Ответить с цитированием
Старый 15.04.2012, 17:01   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Зачем вам путь d:\text.txt?
Создайте файл около exe-файла. Возможно, у программы не хватает полномочий писать в ту папку.
Прикладываю работающий проект.
Вложения
Тип файла: zip stringgrid.zip (248.5 Кб, 10 просмотров)
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 15.04.2012 в 17:08.
BDA вне форума Ответить с цитированием
Старый 15.04.2012, 17:06   #5
nimbus2000
Пользователь
 
Регистрация: 08.02.2012
Сообщений: 20
По умолчанию

создал в ту же папку,где и ,собст-но,сама прога.Не хочет работать=((Тупая 7-ка
nimbus2000 вне форума Ответить с цитированием
Старый 15.04.2012, 17:43   #6
nimbus2000
Пользователь
 
Регистрация: 08.02.2012
Сообщений: 20
По умолчанию

Урааа Ваща версия работает))спасиб,только вот ещё остался один вопрос.Как сделать так,чтобы в блокноте он не на китайском писал.Как кодировку сменить,а то он иероглифи рисует вместо букв
nimbus2000 вне форума Ответить с цитированием
Старый 15.04.2012, 17:51   #7
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Никак. Это не текстовый файл, а файл записей. При таком способе записи никак красиво не отобразить.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 15.04.2012, 17:54   #8
nimbus2000
Пользователь
 
Регистрация: 08.02.2012
Сообщений: 20
По умолчанию

балин.Ещё фигня одна выскочила.Кароч если писать не числа,то ошибку выдаёт.Мне ж нужен типизированный файл
nimbus2000 вне форума Ответить с цитированием
Старый 15.04.2012, 17:56   #9
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Если писать вместо возраста не числа, то конечно выдаст.
Типизированный файл может содержать что угодно: и строки, и числа и т.д.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 15.04.2012, 18:01   #10
nimbus2000
Пользователь
 
Регистрация: 08.02.2012
Сообщений: 20
По умолчанию

где нужно писать числа я пишу числа,(а вданной программе числом является только 3 столбец )всё отсальное тип -строки.Но когда ввожу строку ,то ругается,А сели всё -числа то ок.эт фигово(
nimbus2000 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Считывание бинарных файлов pufystyj Общие вопросы C/C++ 2 11.02.2012 22:02
сохранение/считывание данных при закрытии/открытии программы Ирида C++ Builder 3 21.10.2011 13:48
Считывание и сохранение системного время при нажатии кнопки Svetik3012 Общие вопросы Delphi 9 02.05.2011 16:31
Сохранение информации в файле и считывание из него Draips Помощь студентам 3 28.12.2010 18:45