![]() |
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 |
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 |
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] |
Re: array auslesen
mein record:
Delphi-Quellcode:
mein array:
tMessdaten = record
Datum :string; HTemperatur :real; TTemperatur :real; Niederschlag:real; Luftfeuchte :integer; Luftdruck :real; Windgeschwindigkeit :real;
Delphi-Quellcode:
Versuch das ganze in das Array einzulesen:
tMessungen = array [1..50] of tMessdaten;
Delphi-Quellcode:
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.
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; ps: vielen dank für die schnellen antworten :thumb: |
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; |
Re: array auslesen
Ah super! Jetzt klappt es. Danke! :thumb:
|
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!
|
Re: array auslesen
Delphi-Quellcode:
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?
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; |
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....
|
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:
Letzte Zeile nicht vergessen! Sonst schreibt der immer alle Werte nur in das erste Feld des Arrays ;)
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; 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