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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.04.2011, 18:56   #1
Archetype
Пользователь
 
Регистрация: 09.12.2009
Сообщений: 38
Печаль Перенос массива из StringGrid во внутр приложение

Уважаемые форумчане =( Как говорится лень матушка ушла, и понял, что первый курс освоил как-то плохо, что плохо помню такие тривиальные вещи.
В общем прошу помощи. Есть задача, в которой забиваются в СГ отметки учеников. Надо в следущем приложении подвести подсчеты. А для этого из СГ надо передать приложению данные(студентов и оценок) в него. Я хотел сделать массив из СГ, и его сохранить в файл, а потом уже считать из файла и работать дальше. И запутался. Помогите мне сохранить этот долбаный массив в файл ((((
ЗЫ:Предметов 4(столбцы) Кол-во учеников задает пользователь(поэтому и n)




Цитата:
implementation
fix_n, fix_m:integer;
n, m, i, j: integer;
a: array of array of real;
------------------------------------
procedure TForm1.BitBtn3Click(Sender: TObject);
begin
n:=SG1.ColCount;
m:=SG1.RowCount;
fix_n:=SG1.FixedCols;
fix_m:=SG1.FixedRows;
SetLength(a,n-fix_n);
for i:=0 to n-fix_n-1 do
SetLength(a[i],m-fix_m);

for i:= fix_n to n-1 do
for j:= fix_m to m-1 do
a[i-fix_n,j-fix_m]:= StrToFloat(SG1.Cells[i,j]);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
x,y:Integer;
t:TextFile;
begin
AssignFile(t,'data.arc');
Rewrite(t);
for x:=i to n do
begin
for y:=j to 4 do
begin
Write(t, a[x,y]);
end;
Writeln(t);
end;
CloseFile(t);
end;
Понимаю что глупый вопрос, но прошу помочь и объяснить. Надо же эти азы усвоить %)

Последний раз редактировалось Archetype; 25.04.2011 в 19:26. Причина: опечатка
Archetype вне форума Ответить с цитированием
Старый 25.04.2011, 20:04   #2
Archetype
Пользователь
 
Регистрация: 09.12.2009
Сообщений: 38
По умолчанию

Ну народ, никто не знает что ли? ((
Archetype вне форума Ответить с цитированием
Старый 25.04.2011, 20:31   #3
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Цитата:
Помогите мне сохранить этот долбаный массив в файл
Не разбирался в вашем коде, но в общем случае это будет выглядеть так
Код:
procedure TForm1.Button2Click(Sender: TObject);
Var
  FF:TextFile;
  i,j:Byte;
begin
  AssignFile(FF,'C:\Matrix.txt');
  Rewrite(FF);
  With StringGrid1 do
  Begin
    For i:=0 to RowCount-1 do
    Begin
      For j:=0 to ColCount-1 do
      Write(FF,Cells[j,i]:3);
      Writeln(FF)
    End;
  End;
  CloseFile(FF)
end;
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Старый 25.04.2011, 20:52   #4
Азамат Казанчев
Форумчанин
 
Регистрация: 25.04.2011
Сообщений: 110
По умолчанию

а зачем в файл, может я не понял , но не лучше ли сразу с сг работать, с и так можно как с массивом оперировать, ниже пример не по твоей теме но на подобие из мое программы
StringGrid1.Cells[0,105]:=s5;
for j:=1 to 103 do
begin
if stringgrid1.cells[0,j]=stringgrid1.Cells[0,105] then
s4:=stringgrid1.Cells[1,j];
end;
Азамат Казанчев вне форума Ответить с цитированием
Старый 25.04.2011, 21:00   #5
Archetype
Пользователь
 
Регистрация: 09.12.2009
Сообщений: 38
По умолчанию

В задании просто требуют использования 2х приложений, с передачей данный через файл. Вот я и ломаю мозги, так бы уже давно сделал
Archetype вне форума Ответить с цитированием
Старый 25.04.2011, 21:09   #6
Archetype
Пользователь
 
Регистрация: 09.12.2009
Сообщений: 38
По умолчанию

ГетМакс, спасибо большущее! Тут репутацию какую-нибудь можно повышать?
Archetype вне форума Ответить с цитированием
Старый 25.04.2011, 21:13   #7
Азамат Казанчев
Форумчанин
 
Регистрация: 25.04.2011
Сообщений: 110
По умолчанию

понятно, тогда, если надо передать приложению данные(студентов и оценок), только эти 2 поля, то используй тот же пример что я привел, только сразу задавай какие поля ты должен записать в файл и все. Если нет, то какие массивы ты можешь создавать?
сделай так чтобы первое поле в сг было первой строкой в твоем файле, может так пойдет?
Азамат Казанчев вне форума Ответить с цитированием
Старый 26.04.2011, 17:22   #8
Archetype
Пользователь
 
Регистрация: 09.12.2009
Сообщений: 38
По умолчанию

Гмм.. Спасибо. Сохраняет теперь все четко.
Теперь маленькая проблема с загрузкой
Код:
procedure LoadGrid(StringGrid1:TStringGrid; FileName:string);
var
f: textfile;
temp, x, y: integer;
tempstr: string;
begin
assignfile(f, 'X:/Data.txt');
reset(f);
readln(f, temp); // ñ÷èòûâàíèå êîëè÷åñòâà êîëîíîê
StringGrid1.colcount := temp;
readln(f, temp); // ñ÷èòûâàíèå êîëè÷åñòâà ñòðîê
StringGrid1.rowcount := temp;
for X := 0 to StringGrid1.colcount - 1 do
for y := 0 to StringGrid1.rowcount - 1 do
begin
readln(F, tempstr);
StringGrid1.cells[x, y] := tempstr; // ñ÷èòûâàíèå äàííûõ
end;
closefile(f);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
    LoadGrid(StringGrid1; 'X:\Data.txt');
end;
в процедуре щелчка по кнопе выдает Not enough actual parameters.
Почему?
Archetype вне форума Ответить с цитированием
Старый 26.04.2011, 17:54   #9
Archetype
Пользователь
 
Регистрация: 09.12.2009
Сообщений: 38
По умолчанию

Народ, помогите нубу, пожалуйста >.< Завтра же прогу сдавать
Archetype вне форума Ответить с цитированием
Старый 26.04.2011, 18:19   #10
OlegVE
Форумчанин
 
Регистрация: 27.09.2010
Сообщений: 376
По умолчанию

Код:
...
assignfile(f, FileName);
...
LoadGrid(StringGrid1, 'X:\Data.txt');
...
Добавка
И посмотрите это
http://www.delphisources.ru/pages/fa...ialog.php.html

Последний раз редактировалось OlegVE; 26.04.2011 в 18:26.
OlegVE вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
StringGrid и перенос по словам =) Djem1991 Общие вопросы Delphi 2 19.12.2009 21:24
Перенос из StringGrid в TreeView lol2009 Помощь студентам 0 25.04.2009 16:51
Перенос слов в StringGrid artemavd Общие вопросы Delphi 1 17.03.2009 15:58