Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi array auslesen (https://www.delphipraxis.net/33416-array-auslesen.html)

eagle86 6. Nov 2004 16:13


array auslesen
 
Ich möchte den Inhalt eines Arrays in ein Memofeld übertragen. Der Inhalt des Arrays besteht aus einem Record mit Messdaten. Das Array soll maximal 50 Messdatensätze speichern also [1..50]. Ich glaube, dass ich den Inhalt des Records schon richtig auf das Array übertragen habe. Doch nun habe ich das Problem, dass ich ja erstmal das Array auslesen muss und irgendwie in eine Stringvariable schreiben muss, damit ich das überhaupt in das Memofeld übertragen kann. Nur ich habe keine Ahunug wie ich das machen soll. :wall:
Wäre über eure Hilfe sehr dankbar!

MfG eagle

alcaeus 6. Nov 2004 16:15

Re: array auslesen
 
Hi eagle86,

erstmal herzlich willkommen in der DP :hi: :dp:
Ein paar Infos zum Record musst du uns schon geben, sonst können wir nichts genaues sagen. Eins steht fest: die Daten des Records in einen String umwandeln :mrgreen:

Greetz
alcaeus

ibp 6. Nov 2004 16:16

Re: array auslesen
 
hallo herzlich willkommen bei dp :dp:

so wie du sie einliest, kannst du sie doch auch in ein memo schreiben

.. und ein wenig sc wäre angebracht!

[edit]1 sec zu langsam :thumb:[/edit]

eagle86 6. Nov 2004 16:29

Re: array auslesen
 
mein record:
Delphi-Quellcode:
tMessdaten = record
        Datum      :string;
        HTemperatur :real;
        TTemperatur :real;
        Niederschlag:real;
        Luftfeuchte :integer;
        Luftdruck  :real;
        Windgeschwindigkeit :real;
mein array:
Delphi-Quellcode:
tMessungen = array [1..50] of tMessdaten;
Versuch das ganze in das Array einzulesen:
Delphi-Quellcode:
procedure tForm1.EntryMeasure(var aMess : tMessungen; i:integer);
begin
for i:=1 to 50 do
with aMess[i] do
 begin
  datum:=edit1.text;
  Htemperatur:=strtofloat(edit2.text);
  Ttemperatur:=strtofloat(edit3.text);
  Niederschlag:=strtofloat(edit4.text);
  Luftfeuchte:=strtoint(edit5.text);
  Luftdruck:=strtofloat(edit6.text);
  Windgeschwindigkeit:=strtofloat(edit7.Text);
 end;
end;
Naja und nun soll halt der Inhalt des Arrays, wenn denn da überhaupt was drin ist :lol: , in ein Memofeld also Maximal 50 Datensätze.
ps: vielen dank für die schnellen antworten :thumb:

ibp 6. Nov 2004 16:35

Re: array auslesen
 
array in memo:
Delphi-Quellcode:
procedure tForm1.MeasureToMemo(var aMess : tMessungen);
var i:integer;
begin
  for i:=1 to 50 do
    with aMess[i] do
      Memo1.lines.add(datum+
                      floattostr(Htemperatur)+' '+
                      floattostr(Ttemperatur)+' '+
                      floattostr Niederschlag)+' '+
                      inttostr(Luftfeuchte)+' '+
                      floattostr(Luftdruck)+' '+
                      floattostr(Windgeschwindigkeit));
end;

eagle86 6. Nov 2004 16:41

Re: array auslesen
 
Ah super! Jetzt klappt es. Danke! :thumb:

ibp 6. Nov 2004 16:48

Re: array auslesen
 
kleiner tipp... schau dir mal tstringgrid an! sollte ideal für deine aufgabe sein! da kannst du die werte direkt bearbeiten und ansehen sieht dann aus wie bei excel!

KermitFrosch 7. Nov 2004 13:56

Re: array auslesen
 
Delphi-Quellcode:
procedure tForm1.EntryMeasure(var aMess : tMessungen; i:integer);
begin
for i:=1 to 50 do
with aMess[i] do
begin
  datum:=edit1.text;
  Htemperatur:=strtofloat(edit2.text);
  Ttemperatur:=strtofloat(edit3.text);
  Niederschlag:=strtofloat(edit4.text);
  Luftfeuchte:=strtoint(edit5.text);
  Luftdruck:=strtofloat(edit6.text);
  Windgeschwindigkeit:=strtofloat(edit7.Text);
end;
end;
Wie ich das hier sehe, wird das eine, was eingelesen wird, in jedes Array-Feld gepackt. Wie mache ich das denn, dass ich eine Folge von Messdaten ins erste Array-Feld packe und speichere und die nächste folge in das zweite Array-Feld kommt?

ibp 7. Nov 2004 15:24

Re: array auslesen
 
wenn es mehrere fleder zu bearbeiten sind, dann empfhele ich ^^ das stringgrid ansonsten solltest du einen button nehmen, der dann die werte aus den editfeldern liest und das in das array schreibt. da kannst du dir den index mit einer variablen merken, oder einfach ein dynamisches array verwenden und immer hinten dranhängen....

Vitus 9. Nov 2004 12:09

Re: array auslesen
 
Hallo Kermit,

Du brauchst irgendwo im Programm eine Zählvariable, die die Nummer des aktuellen Versuchs speichert.

Du könntest zB. eine Variable activeExperiment: Integer; global definieren.

Dann ist das einlesen einfach:

Code:
with aMess[activeExperiment] do
begin
  datum:=edit1.text;
  Htemperatur:=strtofloat(edit2.text);
  Ttemperatur:=strtofloat(edit3.text);
  Niederschlag:=strtofloat(edit4.text);
  Luftfeuchte:=strtoint(edit5.text);
  Luftdruck:=strtofloat(edit6.text);
  Windgeschwindigkeit:=strtofloat(edit7.Text);
end;
activeExperiment := activeExperiment+1;
Letzte Zeile nicht vergessen! Sonst schreibt der immer alle Werte nur in das erste Feld des Arrays ;)

Gruß
Vitus


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:44 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz