AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Variablenverkettung: Wert einer Variable auslesen, die einem Pointer entspricht
Thema durchsuchen
Ansicht
Themen-Optionen

Variablenverkettung: Wert einer Variable auslesen, die einem Pointer entspricht

Ein Thema von Stewag · begonnen am 6. Okt 2023 · letzter Beitrag vom 6. Okt 2023
Antwort Antwort
Stewag

Registriert seit: 12. Jun 2008
175 Beiträge
 
Delphi 12 Athens
 
#1

Variablenverkettung: Wert einer Variable auslesen, die einem Pointer entspricht

  Alt 6. Okt 2023, 17:12
Ich habe drei Variablenlisten: Nennen wir sie der Einfachheit halber "Auto", "Motor" und "Leistung".

Ich möchte die Leistung des Motors eines Autos bestimmen.

'MotorN' ist dabei zum einen String, der einem Auto zugewiesen wird und gleichzeitig eine gleichnamige Variable, der eine Leistung zugewiesen ist.

Gesetzt wurde:
Auto1 := 'Motor1' // 'Motor1' = String
Motor1 := Leistung1 // Motor1 = Variable
Leistung1 := '99' bzw. 99 // String oder Integerwert

Mit Pchar(Auto1) kann ich den Motor auslesen.

Meine Frage ist: Wie kann ich über den Motor die Leistung auslesen?
Mit Pchar(Pchar(Auto1)) geht es nicht.

Oder lässt sich das Problem einfacher abbilden?
Steffen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

AW: Variablenverkettung: Wert einer Variable auslesen, die einem Pointer entspricht

  Alt 6. Okt 2023, 17:20
Also, da Delphi sowieso garnicht den Name der Variable in der RTTI speichert, ist die ganze Sache eh irrelevant.
(ja, nicht als Variablen, sondern als Feld in ein Klasse ... aber neee)

Delphi-Quellcode:
Autos: TStringList; // oder oder ein String-Array oder sonstwas
Motoren: TDictionary<string,string>;
Leistung: TDictionary<string,Integer>;
Autos = [Auto1, Auto2]
Motoren = [Auto1:Motor1, Auto2:Motor2]
Leistung = [Motor1:99, Motor2:150]

Oder warum nicht gleich eine Liste, Dictionary oder Array mit einem Record, welcher 3 Felder besitzt.

Delphi-Quellcode:
type
  TAuto = record // oder als "class"
    Auto: string;
    Motor: string;
    Leistung: Integer;
  end;
Delphi-Quellcode:
TList<TAuto> // TObjectList<TAuto> wenn als CLASS
TArray<TAuto>
TDictionary<string,TAuto> // also name des Autos, mit dessen Eigenschaften
$2B or not $2B

Geändert von himitsu ( 6. Okt 2023 um 17:23 Uhr)
  Mit Zitat antworten Zitat
Stewag

Registriert seit: 12. Jun 2008
175 Beiträge
 
Delphi 12 Athens
 
#3

AW: Variablenverkettung: Wert einer Variable auslesen, die einem Pointer entspricht

  Alt 6. Okt 2023, 22:43
Zitat:
da Delphi sowieso garnicht den Name der Variable in der RTTI speichert, ist die ganze Sache eh irrelevant.
Danke Himitsu, das hatte ich mir nicht klargemacht

Ich habe mich jetzt für eine einfache Funktion zur Abfrage der "Leistung" entschieden:
Code:
Leistung := GetLeistung(Pchar(Auto1))
Steffen
  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:14 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