![]() |
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:
Wer sieht was, das ich nicht sehe?
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 THXbyTOX |
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 |
Re: zwei elemente im Array sind 'inkompatbleTypen' ???
so sieht das array aus:
Delphi-Quellcode:
Näheres dazu, was nicht kompatibel sein soll, bekomm ich leider nicht.
Terminliste: Array of Eventrec;
EventRec = Record Zeit :string; Datum :string; Grund : String; datetime:TDateTime end; Tox |
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 |
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:
(denn ShotStrings arbeiten anders)
EventRec = packed Record
Zeit : String[55]; // die 55 sind nur Beispiele Datum : String[55]; Grund : String[55]; datetime: TDateTime End; |
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 |
Re: zwei elemente im Array sind 'inkompatbleTypen' ???
Auf alle Fälle müssen es ShortStrings sein. Aber das erklärt deine Fehlermeldung nicht.
|
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 |
Re: zwei elemente im Array sind 'inkompatbleTypen' ???
Zitat:
|
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 14:43 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz