AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Untervariablennamen eines Records in Variable speichern?
Thema durchsuchen
Ansicht
Themen-Optionen

Untervariablennamen eines Records in Variable speichern?

Ein Thema von tombi · begonnen am 24. Apr 2005 · letzter Beitrag vom 24. Apr 2005
Antwort Antwort
tombi

Registriert seit: 9. Apr 2005
2 Beiträge
 
#1

Untervariablennamen eines Records in Variable speichern?

  Alt 24. Apr 2005, 19:20
Hallo

ich habe folgenden Record:

Code:
type
  PZeiger = ^TElement;
  TElement = record
    rechts: PZeiger;
    nachname, vorname, strasse, plz, ort, email : string;
  end;
Nun möchte ich nach diesen 6 Angaben sortieren können. Da ich nicht für jeden Vergleich eine eigene Prozedur schreiben will, würde ich gerne wissen ob es eine Möglichkeit gibt die Namen der "Untervariablen" des Records in einer anderen Variablen zu speichern.
Im Klartext: Ich will anstelle von
Code:
...
if lauf.rechts.nachname>lauf.rechts.rechts.nachname
...
if lauf.rechts.vorname>lauf.rechts.rechts.vorname
...
if lauf.rechts.email>lauf.rechts.rechts.email
einfach nur
Code:
if lauf.rechts.variable>lauf.rechts.rechts.variable
schreiben, wobei der variable vorher dann halt nachname, vorname usw. zugewiesen wird.

Ist das möglich oder gibts da andere Möglichkeiten?
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Untervariablennamen eines Records in Variable speichern?

  Alt 24. Apr 2005, 19:46
Es gibt eine Möglichkeit, dabei musst du einen pointer auf die Strings speichern und kannst dann über diese zugreifen.

Beispiel:
Delphi-Quellcode:
procedure ShowTheString(AElement: TElement; AOffset: Cardinal);
begin
  ShowMessage(PString(Cardinal(@AElement.nachname) + AOffSet)^);
end;

[...]
type
  PString = ^String;
var LElement: TElement;
    LOffSet: Cardinal;
begin
  LElement.nachname := 'Nachname';
  LElement.vorname := 'Vorname';
  LElement.strasse := 'Straße';
  LElement.plz := 'PLZ';
  LElement.ort := 'Ort';
  LElement.email := 'Email';

  //LOffSet := 0; //Nachname
  //LOffSet := 4; //Vorname
  //LOffSet := 8; //Straße
  LOffSet := 12; //PLZ
  //LOffSet := 16; //Ort
  //LOffSet := 20; //Email
  ShowTheString(LElement, LOffSet);
end;
Je nach dem welchen wert "LOffSet" hat würdest du einen anderen String des Records angezeigt bekommen. Anstelle des Showmessage brauchst du also nur deinen vergleich in der "ShowTheString" machen.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
tombi

Registriert seit: 9. Apr 2005
2 Beiträge
 
#3

Re: Untervariablennamen eines Records in Variable speichern?

  Alt 24. Apr 2005, 20:58
Jau, vielen Dank, es funktioniert.
  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 03:17 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