![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Здраствуйте!!!
Помогите пожалуйста!!!Сижу уже неделю, не могу сделать!Мне надо сохранить содержимое StringGrid (2 столбца и 15 строк) с помощью OpenDialog в текстовый файл. И в последующем можно было открыть в этот же StringGrid любой текстовый файл!!! Всё испробовала!Не получается ![]() |
|
#2
|
||||
|
||||
|
Цитата:
Проблема всяко в 73 строке! А теперь без шуток. За Вас накто тут писать не будет. Говорите сразу, что не получается, как пытаетесь, и так далее. Что могу сказать по сообщению: 1. OpenDialog используется при открытии (open), а не сохранении (save) файла. Используйте SaveDialog. 2. ****Dialog-и ничего не открывают и не сохраняют, они лишь помогают получить имя файла от пользователя. 3. StringGrid сам никуда сохраняться не умеет - вам надо написать два вложенных цикла, и в них "перепарсить" грид в тот же StringList. А после этого уже Код:
StringList.SaveToFile(SaveDialog1.FileName); |
|
#3
|
|||
|
|||
|
Извините, что не понятно написала!Ниже код, для открытия! Он открывает только i-ый столбец, j-ую не могу открыть((((
Код:
procedure TForm1.N2Click(Sender: TObject);
var
i: integer;
InFile: TextFile; //текстовый файл для идентификации файла
fname, InString: String; //строковые перменные , fname- текст для имени файла
begin
If OpenDialog1.Execute then
begin
fname:=OpenDialog1.FileName;
AssignFile(InFile,fname); //имя файла его определяет из OpenDialog1
Reset(InFile); //открывает существующий файл
i:=0;
While not Eof(InFile) do
Begin
Readln(InFile,InString);
a[i]:= StrToInt(InString);
stringGrid1.Cells[0,i]:=IntToStr(a[i]);
i:=i+1;
end;Последний раз редактировалось Admin, 11.05.2010 в 20:29. |
|
#4
|
|||
|
|||
|
Пробовала анологично сделать j-ый столбец, он не получается, то ошибка, то он всё открывает в i-ом столбце соединяя числа!
|
|
#5
|
||||
|
||||
|
Можно так...
Код:
// Save a TStringGrid to a file
procedure SaveStringGrid(StringGrid: TStringGrid; const FileName: TFileName);
var
f: TextFile;
i, k: Integer;
begin
AssignFile(f, FileName);
Rewrite(f);
with StringGrid do
begin
// Write number of Columns/Rows
Writeln(f, ColCount);
Writeln(f, RowCount);
// loop through cells
for i := 0 to ColCount - 1 do
for k := 0 to RowCount - 1 do
Writeln(F, Cells[i, k]);
end;
CloseFile(F);
end;
// Load a TStringGrid from a file
procedure LoadStringGrid(StringGrid: TStringGrid; const FileName: TFileName);
var
f: TextFile;
iTmp, i, k: Integer;
strTemp: String;
begin
AssignFile(f, FileName);
Reset(f);
with StringGrid do
begin
// Get number of columns
Readln(f, iTmp);
ColCount := iTmp;
// Get number of rows
Readln(f, iTmp);
RowCount := iTmp;
// loop through cells & fill in values
for i := 0 to ColCount - 1 do
for k := 0 to RowCount - 1 do
begin
Readln(f, strTemp);
Cells[i, k] := strTemp;
end;
end;
CloseFile(f);
end;
// Save StringGrid1 to 'c:\temp.txt':
procedure TForm1.Button1Click(Sender: TObject);
begin
SaveStringGrid(StringGrid1, 'c:\temp.txt');
end;
// Load StringGrid1 from 'c:\temp.txt':
procedure TForm1.Button2Click(Sender: TObject);
begin
LoadStringGrid(StringGrid1, 'c:\temp.txt');
end; |