Autor Beitrag
mb09092
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Di 20.07.10 19:00 
Hallo Zusammen!

Hab ein kleines Problem:

Bin am Programmiern eines Regressionsformulars, d.h. man füttert ein Stringgrid mit x- und y-Werten und bekommt vom Programm eine Exponentielle Regression ausgeführt.
Tut soweit alles wunderbar, nur häng ich jetzt beim Speichern.

Ich will die vom Benutzer eingegebenen x- und y-Werte auf Festplatte abspeichern können um später wieder laden zu können.

Hab dazu einen Record definiert und ein Array...

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
type
  Rec = record
    xWert:double;
    yWert:double;
    end;


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
var
  Anz:integer;
  Regressionsformular: TRegressionsformular;
  r,a,b:double;
  Speicherarray:array[1..1000of rec;
  Speicherung : file of rec;



Dann hab ich in der Speicherprocedur folgenden Quelltext geschrieben, um zuerst jede Zeile des Grids in das Record zu speichern und dann diese Zeile in ein Array der Stelle i...usw
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
procedure TRegressionsformular.Speichern_buClick(Sender: TObject);

var i:integer;

begin
for i := 1 to Tab.RowCount-1 do
begin
  rec.xWert:=strtofloat(Tab.Cells[1,i]); // Beim Debuggen bekomm ich einen Fehler...
  rec.yWert:=strtofloat(Tab.Cells[2,i]); // (E2096: Methodenbezeichner erwartet)
  Speicherarray[i]:=rec;
end;

if Festspeichern.execute then
begin
  AssignFile(Speicherung,FestSpeichern.FileName);
          Rewrite(Speicherung );
          for i := 1 to Tab.RowCount-1 do
            begin
              write(Speicherung,Speicherarray[i]);
            end;
            closeFile(Speicherung);
end;


end;

Kann mir jemand sagen was ich falsch gemacht hab also warum es nicht funktioniert und wie es richtig heißen müsste??

Danke schonmal!

Grüße
Seba

Moderiert von user profile iconNarses: Doppelslahes am Zeilenanfang im Code entfernt und Highlight-Tags ergänzt.


Zuletzt bearbeitet von mb09092 am Di 20.07.10 19:22, insgesamt 1-mal bearbeitet
mb09092 Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Di 20.07.10 19:02 
Das ist eine gute Idee, nur: könntest du mir sagen wie du das genau meinst?

Bin neu hier :-)

Hab halt den Qualltext ausm RADStudio rauskopiert...
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: Di 20.07.10 19:07 
kurz erklärt '[delphi]dein quelltext[/delphi]'
oder im Editor auf Bereiche gehen :wink:
und :welcome: hier

Gruss Alf

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
mb09092 Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Di 20.07.10 19:22 
Danke euch schonmal dafür :-)

Jetzt mal schaun was aus meinem Prob wird...
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 20.07.10 21:08 
Du greifst auf rec zu, das ist aber der Recordtyp. (Deshalb sollte das auch TRec heißen...)

Entweder deklarierst du dir eine Variable und greifst auf die jeweils zu oder du machst es ganz einfach:
ausblenden Delphi-Quelltext
1:
2:
  Speicherarray[i].xWert := StrToFloat(Tab.Cells[1, i]);
  Speicherarray[i].yWert := StrToFloat(Tab.Cells[2, i]);

Für diesen Beitrag haben gedankt: mb09092