AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Durchlaufen eines Records

Ein Thema von DelphiManiac · begonnen am 29. Nov 2007 · letzter Beitrag vom 29. Nov 2007
Antwort Antwort
DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#1

Durchlaufen eines Records

  Alt 29. Nov 2007, 11:49
Hallo,

ich habe folgendes Problem,

ich habe einen Record, der mehrere Datentypen in sich trägt, diesen würde ich gerne durchlaufen (von der 1. bis zur letzten Variable) und diese auf einen bestimmten Wert prüfen (0xFFFF).

Mein Record sieht folgendermaßen aus:

Delphi-Quellcode:
 TSitzung =record
      Identifier :Integer;
      HerstellDatum :ShortString;
      Seriennummer :ShortString;
      GeraeteTyp :ShortString;
      Sensortyp :Shortstring;
      SoftwareVersion :ShortString;
      SoftwareDatum :ShortString;
      SoftwareRelease :integer;
      SoftwareSubRelease:integer;
      Sprache :Integer;
      Druck :Extended;
      Druck_old :Extended;
      Temp :Extended;
      Temp_old :Extended;
      TempOffset :Smallint;
      CO2 :Extended;
      CO2_old :Extended;
      ADCDruck :Smallint;
      ADCDruck_Old :Smallint;
      ADCDruckGain :integer;
      ADCDruckSF :integer;
      ADCDruckFS :Smallint;
      ADCDruckHS :Smallint;
      ADCDruckLS :Smallint;
      ADCDruckOffset :double;
      ADCTempFS :Smallint;
      ADCTempHS :Smallint;
      ADCTempLS :Smallint;
      ADCTemp :integer;
      ADCTemp_old :integer;
      ADCTempGain :integer;
      ADCTempSF :integer;
      DAC1_4mA :integer;
      DAC1_20mA :integer;
      DAC2_4mA :integer;
      DAC2_20mA :integer;
      PRef :Single;
      TRef :Single;
      Co2Offset :Single;
      AlarmHH :Integer;
      AlarmH :Integer;
      AlarmL :Integer;
      ....
Ist dies möglich, oder muss ich einen anderen Weg finden?

Gruß und danke Euch!
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.195 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Durchlaufen eines Records

  Alt 29. Nov 2007, 11:53
Und was sollt 0xFFFF bei einem String bzw. einem Extended bedeuten?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#3

Re: Durchlaufen eines Records

  Alt 29. Nov 2007, 12:36
Nunja bei einem String müsste es 0xFF als ASCII sein,
(so ein Sonderzeichen *y)

Aber mir geht es eigentlich um die Ganzzahlen, denke, dass ist nicht ohne weiteres möglich müsste wahrscheinlich ein
typgleichen record erstellen, oder?

Gruß
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#4

Re: Durchlaufen eines Records

  Alt 29. Nov 2007, 13:17
Mach doch aus dem Record eine Klasse!!
Damit eröffnest du dir völlig neue Möglichkeiten.
Andreas
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#5

Re: Durchlaufen eines Records

  Alt 29. Nov 2007, 13:33
Willste wissen ob der gesamte Record Speicherplatz mit 0xff gefüllt ist?

Delphi-Quellcode:
function IsInvalid(ARecord: TSitzung): boolean;
var
  lPtr: PByte;
  lEnd: Pointer;
begin
  result := true;

  lPtr := @ARecord;
  lEnd := lPtr;
  Inc(lEnd, SizeOf(TSitzung));

  while ( lEnd < lPtr ) do
  begin
    if lPtr^ <> $ff then
    begin
      result := false;
      break;
    end;
    Inc(lPtr);
  end;
end;
Aber grundsätzlich hast du ein Designproblem, wenn du bei einem Record so etwas abfragen müsstest. Ich lege dir auch shmia Vorschlag an's Herz.
  Mit Zitat antworten Zitat
DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#6

Re: Durchlaufen eines Records

  Alt 29. Nov 2007, 15:07
Ihr habt recht OOP lässt grüßen..

Nungut, dann mach ich mir eine Klasse die mir eine Methode anbietet, die dieses überprüfung implementiert

Also danke schonmal.

Gruß
DelphiManiac
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#7

Re: Durchlaufen eines Records

  Alt 29. Nov 2007, 15:34
Zitat von DelphiManiac:
Ihr habt recht OOP lässt grüßen..
Nungut, dann mach ich mir eine Klasse die mir eine Methode anbietet, die dieses überprüfung implementiert
Gut, dann hat's ja geschnackelt.
Wenn ich mir die Daten in dem Record so ansehe, können's auch 2 oder mehr Klassen werden.
Objekte lassen sich ja auch verschachteln, bzw. man kann ein Objekt in ein Anderes einbetten.
Andreas
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz