Delphi-PRAXiS
Seite 4 von 7   « Erste     234 56     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   C++ 2 Arrays vergleichen\sortieren (https://www.delphipraxis.net/194449-2-arrays-vergleichen%5Csortieren.html)

EWeiss 23. Nov 2017 16:25

AW: 2 Arrays vergleichen\sortieren
 
Zitat:

Zitat von Neutral General (Beitrag 1386997)
Zitat:

Zitat von Zacherl (Beitrag 1386994)
Zitat:

Zitat von Neutral General (Beitrag 1386993)
Delphi-Quellcode:
MoveMemory(@buffer[K * sizeof(Short)], @A2[K], sizeof(Short));
geht auch.

Dann aber bitte ohne das
Delphi-Quellcode:
SizeOf(Short)
im Index :P

Nope. "buffer" ist ein Byte-Array ;)

ja?
Char <> Byte?
Delphi-Quellcode:
buffer: array [0 .. 2047] of Char;


gruss

Neutral General 23. Nov 2017 16:28

AW: 2 Arrays vergleichen\sortieren
 
Char wird in C/C++ als Ersatz für Byte benutzt. D.h. für Delphi 2009+ "Char" ist sogar explizit der falsche Datentyp weil er doppelt so groß ist wie das "char" in C++.
Du solltest es als Array[0..2047] of Byte übersetzen.

EWeiss 23. Nov 2017 16:30

AW: 2 Arrays vergleichen\sortieren
 
Zitat:

Zitat von Neutral General (Beitrag 1386999)
Char wird in C/C++ als Ersatz für Byte benutzt. D.h. für Delphi 2009+ "Char" ist sogar explizit der falsche Datentyp weil er doppelt so groß ist wie das "char" in C++.
Du solltest es als Array[0..2047] of Byte übersetzen.

Ahh danke das könnte einige meiner Probleme lösen ;)
Dann hatte ich hie schon den ersten Fehler.

Delphi-Quellcode:
MoveMemory(@Item, g_Prop[gP].order + K * sizeof(short), sizeof(short));
MoveMemory(@Item, PByte(@g_Prop[gP].order) + K * sizeof(short), sizeof(short));
Aber das Item inkrementiert immer noch nicht.
Na ja werde mal schauen.


gruss

Zacherl 23. Nov 2017 16:33

AW: 2 Arrays vergleichen\sortieren
 
Zitat:

Zitat von Neutral General (Beitrag 1386997)
Zitat:

Zitat von Zacherl (Beitrag 1386994)
Zitat:

Zitat von Neutral General (Beitrag 1386993)
Delphi-Quellcode:
MoveMemory(@buffer[K * sizeof(Short)], @A2[K], sizeof(Short));
geht auch.

Dann aber bitte ohne das
Delphi-Quellcode:
SizeOf(Short)
im Index :P

Nope. "buffer" ist ein Byte-Array ;)

Stimmt :-D In dem Falle würde ich dann den Buffer aber tatsächlich direkt mit
Delphi-Quellcode:
Short
statt
Delphi-Quellcode:
Byte
deklarieren. Macht auch von der Logik her mehr Sinn.

EWeiss 23. Nov 2017 16:41

AW: 2 Arrays vergleichen\sortieren
 
Zitat:

Zitat von Zacherl (Beitrag 1387001)
Zitat:

Zitat von Neutral General (Beitrag 1386997)
Zitat:

Zitat von Zacherl (Beitrag 1386994)
Zitat:

Zitat von Neutral General (Beitrag 1386993)
Delphi-Quellcode:
MoveMemory(@buffer[K * sizeof(Short)], @A2[K], sizeof(Short));
geht auch.

Dann aber bitte ohne das
Delphi-Quellcode:
SizeOf(Short)
im Index :P

Nope. "buffer" ist ein Byte-Array ;)

Stimmt :-D In dem Falle würde ich dann den Buffer aber tatsächlich direkt mit
Delphi-Quellcode:
Short
statt
Delphi-Quellcode:
Byte
deklarieren. Macht auch von der Logik her mehr Sinn.

Bei Short ist Item 65535 groß muss aber 0 sein ;) :?:
Ok dann werde ich Item auch als short definieren müssen.

gruss

Neutral General 23. Nov 2017 16:59

AW: 2 Arrays vergleichen\sortieren
 
Emil denk nach bevor du was tust! (sorry :?)
Wenn du den Buffer als Array of Short deklarierst musst du natürlich die Länge des Arrays halbieren und du musst bei der Indizierung aufpassen!

Nur die Deklaration zu ändern bringt Chaos.

EWeiss 23. Nov 2017 17:06

AW: 2 Arrays vergleichen\sortieren
 
Zitat:

Zitat von Neutral General (Beitrag 1387005)
Emil denk nach bevor du was tust! (sorry :?)
Wenn du den Buffer als Array of Short deklarierst musst du natürlich die Länge des Arrays halbieren und du musst bei der Indizierung aufpassen!

Nur die Deklaration zu ändern bringt Chaos.

Danke für den Hinweis. Das wusste ich nicht
Ich versuche es :)

gruss

EWeiss 23. Nov 2017 20:35

AW: 2 Arrays vergleichen\sortieren
 
Trotz alledem auch wenn einige denken (Uwe Rabe als Beispiel) das ich blöd wäre habe ich mit meiner alten Sprite Engine meinen Video Player fertig gestellt.
Zitat:

daß Du und Delphi einfach nicht füreinander geschaffen seid.
Das ich es mir jetzt etwas einfacher machen will nun da kann ich nur draus lernen.
Das Delphi nicht gleich C++ ist, ist mir auch bekannt.

Na was soll's. ich kann damit leben.
Wollte das nur gesagt haben.

gruss

Uwe Raabe 23. Nov 2017 23:14

AW: 2 Arrays vergleichen\sortieren
 
Zitat:

Zitat von EWeiss (Beitrag 1387021)
Trotz alledem auch wenn einige denken (Uwe Rabe als Beispiel) das ich blöd wäre

Habe ich nie behauptet! Das war lediglich ein wohlmeinender Kommentar auf deine Äußerungen:

Zitat:

langsam nervt Delphi nur noch
...
Ein char bleibt ein char egal ob in c++ oder Delphi, ein Array bleibt ein Array.
Warum macht der Compiler unter Delphi so einen Aufstand.
...
Also warum funktioniert es unter C++ und nicht mit Delphi.
...
Um so mehr ich mit C++ Arbeite um so mehr stelle ich fest wie verkorkst die Sprache Delphi(Compiler) eigentlich ist.

Solche Kommentare höre ich häufig von Leuten, die mit C++ gut zurecht kommen, aber halt mit Delphi ihre Probleme haben. Das liegt weder an C++ noch an Delphi noch an den Leuten, sondern einfach an der Kombination. Das macht diese Leute auch nicht blöd oder doof - das hat einfach was mit der Denkweise zu tun. Ich würde mich sicher genauso schwer tun, wenn ich mit C++ arbeitete. Deswegen muss ich diese Sprache ja nicht gleich für hirnrissig erklären. Wenn du eine Reaktion wie die meine nicht haben willst, dann halte dich doch einfach an dein eigenen Worte:
Zitat:

Jetzt keinen erneuten Hype um Delphi hier sachlich bleiben.

EWeiss 23. Nov 2017 23:19

AW: 2 Arrays vergleichen\sortieren
 
Zitat:

Habe ich nie behauptet!
Aber es kam so rüber.

Zitat:

Wenn du eine Reaktion wie die meine nicht haben willst, dann halte dich doch einfach an dein eigenen Worte:
Ich denke auch, aber weist du das kam so abfällig herüber.. vielleicht solltest du deine Wortwahl auch einmal überdenken.

Nichts destotrotz hat sich erledigt und ich bin niemanden böse das er sich wehrt wenn es um sein geliebtes Delphi geht. (Ich werde es in der Zukunft unterlassen)
Ich bin kein Profi will das nochmal in den Raum stellen.

Zum Thema mich hat das nur mit dem MoveMemory geärgert das man hier hunderte von Konvertierungen machen muss
um am ende das gleiche Ergebnis zu bekommen wie unter den anderen Sprachen auch.

Dabei wie gesagt ist es eine einfach Win32 API wo man sich am ende auch nicht schlüssig ist
was denn nun MoveMemory oder CopyMemory wobei beides das gleiche ist.


gruss


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:39 Uhr.
Seite 4 von 7   « Erste     234 56     Letzte »    

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