IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> StringGrid to TXT
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 20
Пол: Мужской

Репутация: -  0  +


Как сохранить даные со StringGrid в текстовый файл. Если в него введена матрица
Например
1 2 3
4 5 6
7 8 9
В таком же виде надо что бы эти даные сохранились в текстовый файл
1 2 3
4 5 6
7 8 9


нашел процедуру сохранение, но она сохраняет одно число на строку, а это не подходит
Код

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;


Тоесть примерно так
1
2
3
4
5
6
7
8
9

И как сделать что бы не сохранялись даные которые внесеные в ячейки позначеные серым цветом ?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Вот так, что-ли?

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 k := FixedRows to RowCount - 1 do begin
for i := FixedCols to ColCount - 1 do
Write(F, Cells[i, k]:5);
writeln(F);
end;
end;
CloseFile(F);
end;

 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 20
Пол: Мужской

Репутация: -  0  +


Теперь сохраняет так
Код

7
7
    0    0    0   10    0    0
    3    0    4    0   11    0
    0    4    0    0    0    0
    6   12    0    0    7    0
    0    0    8    9    0    0
    0    0    0    0    5    0

А надо вот так:
Код

0 0 0 10 0 0
3 0 4 0 11 0
0 4 0 0 0 0
6 12 0 0 7 0
0 0 8 9 0 0
0 0 0 0 5 0

Почему то еще в начале файл
Две семерки появляються
7
7
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Две семерки - это размеры Грида... Убери строки

    // Write number of Columns/Rows
Writeln(f, ColCount);
Writeln(f, RowCount);
, они не будут появляться.

Если не нравится нормальное форматирование (сравни те 2 фрагмента, которые ты привел, какой из них легче понять?), то замени

// вот это
Write(F, Cells[i, k]:5);
// на это:
Write(F, Cells[i, k], ' ');
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 20
Пол: Мужской

Репутация: -  0  +


Цитата(volvo @ 28.05.2007 23:38) *

Write(F, Cells[i, k], ' ');


Спасибо!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 31.10.2020 16:03
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name