AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Klassen mit verschiedenen Datentypen vergleichen ?
Thema durchsuchen
Ansicht
Themen-Optionen

Klassen mit verschiedenen Datentypen vergleichen ?

Ein Thema von Urba · begonnen am 28. Jun 2003 · letzter Beitrag vom 28. Jun 2003
Antwort Antwort
Urba

Registriert seit: 8. Dez 2002
Ort: Ketsch
120 Beiträge
 
Delphi 6 Personal
 
#1

Klassen mit verschiedenen Datentypen vergleichen ?

  Alt 28. Jun 2003, 15:25
Hallo Leute,

Ich habe folgendes Problem :

Ich habe mir 2 Klassen gebastelt

Delphi-Quellcode:
type TKlasse1 = class
  Zahl1 : integer;
  Txt1 : string;
end;

type TKlasse2 = class
  Zahl2 : Integer;
  Txt2 : String;
end;
Diese werden durch 2 Arrays verwendet

Delphi-Quellcode:
aKlasse1 = array [1..1000] of TKlasse1;
aKlasse2 = array [1..1000] of TKlasse2;
So, diese beiden Arrays möchte ich nun vergleichen, aber die unterschiedlichen Datentypen innerhalb der Klassen sind das Problem. Bisher wollte ich es folgendermaßen probieren :

Delphi-Quellcode:
var I : Integer;
...
for I := 1 to 1000 do begin
  if aKlasse1[I] = aKlasse2[E] then ... //Meldung dass gleich
  else ... // Meldung dass ungleich
end;
Das Problem ist jetzt dass ich nicht die richtigen Abgleichungen bekomme, ich aber auch nicht die einzelnen Einträge der Klassen (Zahl und Txt) unterschen möchte, da sich diese vorraussichtlich noch ändern können.
Daher meine Frage : Ist es möglich 2 Klassen verschiedener Datentypen zu vergleichen. Soweit ich noch weiss gibt es eine solche Funktion in Java auch, daher gehe ich eigentlich davon aus, dass sie auch in Delphi vorhanden ist.

Kann mir jemand helfen ?

Mit freundlichen Grüßen
Urba
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#2

Re: Klassen mit verschiedenen Datentypen vergleichen ?

  Alt 28. Jun 2003, 15:36
Hallo,
Zitat von Urba:
Delphi-Quellcode:
var I : Integer;
...
for I := 1 to 1000 do begin
  if aKlasse1[I] = aKlasse2[E] then ... //Meldung dass gleich
  else ... // Meldung dass ungleich
end;
Sollte wohl so aussehen. Oder hast Du Dir was beim E dabei gedacht?
Delphi-Quellcode:
var I : Integer;
...
for I := 1 to 1000 do begin
  if aKlasse1[I] = aKlasse2[I] then ... //Meldung dass gleich
  else ... // Meldung dass ungleich
end;
Grüsse, Daniel
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.108 Beiträge
 
Delphi 11 Alexandria
 
#3
  Alt 28. Jun 2003, 15:42
Moin Urba,

vielleicht hast Du ja auch nicht alles gezeigt, aber wäre ein record in diesem Falle nicht günstiger als eine Klasse?

Ausserdem:
Warum zwei Deklarationen für den gleichen Inhalt?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Urba

Registriert seit: 8. Dez 2002
Ort: Ketsch
120 Beiträge
 
Delphi 6 Personal
 
#4
  Alt 28. Jun 2003, 15:42
@Daniel :

Das mit dem E war ein Versehen, es soll schon I heissen, wie du schon geschrieben hast.

Das Problem ist, dass es scheinbar genau so NICHT funktioniert. Ich bekomme zumindest keine Meldung bei Unterschieden (und ja ich bin mir sicher dass Unterschiede drin sind )

@Christian

Das mit den Klassen hat schon seinen Sinn und die Inhalte der beiden Klassen ist nur als Beispiel gedacht, ich habe in meinem Programm Integer, Byte, Bollean, String etc. als Datentypen (sollte daher nur als Beispiel gelten)
Es gibt keine blöden Fragen, nur blöde Antworten
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.108 Beiträge
 
Delphi 11 Alexandria
 
#5
  Alt 28. Jun 2003, 15:44
Moin Urba,

vielleicht solltest Du auch noch mal dazuschreiben, wie Du die Instanzen der Klassen bildest.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Urba

Registriert seit: 8. Dez 2002
Ort: Ketsch
120 Beiträge
 
Delphi 6 Personal
 
#6
  Alt 28. Jun 2003, 15:48
@Christian

Ich weiss zwar nicht wie ich sonst Klassen initialisieren sollte, als wie ich es mache, aber hier bitteschön

Code:
aKlasse1[1] := TKlasse1.Create;
Es gibt keine blöden Fragen, nur blöde Antworten
  Mit Zitat antworten Zitat
Touchdown

Registriert seit: 17. Feb 2003
227 Beiträge
 
#7
  Alt 28. Jun 2003, 17:43
Da brauchen wohl ein paar Leute Nachhilfe in OOP

Delphi-Quellcode:

  if aKlasse1[I] = aKlasse2[E] then ... //Meldung dass gleich
Du vergleichst hier nur Pointer, haben die Pointer unterschiedliche Klassen wirst du niemals ein 'true' erhalten. Selbst wenn du zwei Pointer des selben Typs vergleichst und alle Werte der Pointer gleich sind, wird auch niemals ein 'true' dabei rauskommen. Ein 'true' gibts nur wenn beide Pointer tatsächlich auf den selben Speicherbereich zeigen.

Du kommst nicht drum herum die Werte der Pointer zu prüfen, mach dir ne schöne Methode und gut is

Man braucht auch nicht zwei Klassen die letztendlich die selben Eigenschaften und Variablen haben, macht überhaupt keinen Sinn!
function getallfornothing: TGoldesel;
begin
result := TGoldesel.create;
end;
  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 16:53 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