Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi zwei elemente im Array sind 'inkompatbleTypen' ??? (https://www.delphipraxis.net/17151-zwei-elemente-im-array-sind-inkompatbletypen.html)

Nikolas 28. Feb 2004 22:39


zwei elemente im Array sind 'inkompatbleTypen' ???
 
Ich versuche für einen Terminklalender eine function zu bauen um mir doppelte Eintragungen in einem array of Records (Terminliste) rauszuschneiden.

Nur hab ich hier einen Fehler bei dem ich keine Ahnung habe, was ich falsch gemacht habe:

Ich bekomm die Meldung 'Inkompatible Typen', obwohl es zwei Elemente aus einem array sind, und bei der Zuweisung ein paar Zeilen weiter wird auch nicht gemeckert :wall:

Delphi-Quellcode:
for i:=0 to length(Terminliste)-2 do
begin
        if Terminliste[i] = Terminliste[i+1] then <--- Hier gibts die Fehlermeldung
        begin
                for j := i to length(Terminliste)-2 do // Verrückung;
                begin
                Terminliste[ j ]:=Terminliste[ j +1];
                inc(loecher);
                end;
        end;
end; // of i:=0 to length(Terminliste)-2
Wer sieht was, das ich nicht sehe?

THXbyTOX

fkerber 28. Feb 2004 22:43

Re: zwei elemente im Array sind 'inkompatbleTypen' ???
 
Hi!

Was ist denn inkompatibel? (Also string und Integer oder ...?)
Was ist in dem Array drin?


Ciao fkerber

Nikolas 28. Feb 2004 22:46

Re: zwei elemente im Array sind 'inkompatbleTypen' ???
 
so sieht das array aus:
Delphi-Quellcode:
Terminliste: Array of Eventrec;

EventRec = Record    
        Zeit   :string;
        Datum  :string;
        Grund  : String;
        datetime:TDateTime
    end;
Näheres dazu, was nicht kompatibel sein soll, bekomm ich leider nicht.

Tox

fkerber 28. Feb 2004 22:53

Re: zwei elemente im Array sind 'inkompatbleTypen' ???
 
Hi!

Sind es bestimmt Einträge, Einträge an einer gewissen Stelle, besonderer Inhalt etc.?

Andere Frage:
Macht die 2. For-Schleife etwas? Das i bleibt doch dort immer gleich, oder sehe ich da was nicht? Das j verwendest du ja nicht.


Ciao fkerber

himitsu 28. Feb 2004 22:53

Re: zwei elemente im Array sind 'inkompatbleTypen' ???
 
Ich bin mir nicht ganz 100% sicher, aber selbsst wenn das geh'n würde...

werden dan nicht nur die Zeiger der Strings verglichen, welche natürlich unterschiedlich sind und nicht die Stringinhalte?



versuchs mal so:
Delphi-Quellcode:
EventRec = packed Record
    Zeit   : String[55]; // die 55 sind nur Beispiele
    Datum  : String[55];
    Grund  : String[55];
    datetime: TDateTime
  End;
(denn ShotStrings arbeiten anders)

Nikolas 28. Feb 2004 23:04

Re: zwei elemente im Array sind 'inkompatbleTypen' ???
 
@fkerber

es stehen nur einn paar strings und die datetiem drin, irgenwas apektakuläres gibts da nicht.

- Ich hab mein erstes post bezüglich des J editiert. Ob das ganze klappt konnte ich noch nicht testen

@himitsu

ich hab's mal mit dem packed array versucht, es machts nich besser :gruebel:

Aber Danke schon mal

Tox

Luckie 28. Feb 2004 23:09

Re: zwei elemente im Array sind 'inkompatbleTypen' ???
 
Auf alle Fälle müssen es ShortStrings sein. Aber das erklärt deine Fehlermeldung nicht.

Nikolas 28. Feb 2004 23:14

Re: zwei elemente im Array sind 'inkompatbleTypen' ???
 
Ich hab die Deklarartin für das Record mal in shirtstring geändert, aber mit dem gewohnten Erfolg :gruebel:

THXbyTOX

nailor 29. Feb 2004 10:07

Re: zwei elemente im Array sind 'inkompatbleTypen' ???
 
Zitat:

Zitat von Toxman
Ich hab die Deklarartin für das Record mal in shirtstring geändert, aber mit dem gewohnten Erfolg :gruebel:

THXbyTOX

sorry für OT, aber das das zweite durch i ersetzte O liest sich sehr witzig...

Chewie 29. Feb 2004 11:08

Re: zwei elemente im Array sind 'inkompatbleTypen' ???
 
Man kann Records zwar einander zuweisen, aber man kann sie nicht auf Gleichheit überprüfen. Entweder Element für Element vergleichen oder den Speicherbereich vergleichen:

Delphi-Quellcode:
if CompareMem(@Record1, @Record2, Sizeof(Record1)) then //...


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:02 Uhr.
Seite 1 von 2  1 2      

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