![]() |
Array kopierern
Hallo,
komischerweise habe zudem (ja recht trivialen Thema) nicht in der Suche gefunden, nun gut, Ich habe zwei Puffer=
Delphi-Quellcode:
Nun will ich den Inhalt (nur den Inhalt will nicht den Fehler machen und den Zeiger kopieren) des einen Puffers in den anderen übertragen.
OutPuffer: array [0..6] of byte;
InPuffer: array [0..6] of byte; Natürlich könnte ich eine Schleife nehmen, die mir die Werte durch den Index einträgt, aber es gibt da doch bestimmt eine Funktion, die das für mich macht, oder?! Da gab es doch irgendwas mit Copy,... Viele Grüße DM |
Re: Array kopierern
Einfach mal die Hilfe zu
![]() |
Re: Array kopierern
Hi,
da es sich um kein dynamisches Array handelt, kannst du sie glaub ich einfach zuweisen. Bei dynamischen Arrays solltest du aber Copy verwenden, von Low(MyArray), Anzahl der Zeichen: Length(MyArray). :) Mfg FAlter |
Re: Array kopierern
Hi,
ja habe ich, aber ein Aufruf
Delphi-Quellcode:
scheitert mit der Meldung "Inkompatible Typen"...
OutPuffer := Copy (InPuffer,0,6);
|
Re: Array kopierern
@FAlter
Bist du dir sicher, das das erlaubt ist:
Delphi-Quellcode:
Gruß
OutPuffer := InPuffer; // Wird hier nicht der Zeiger kopiert???
DM |
Re: Array kopierern
Nur ein Gedanke:
Delphi-Quellcode:
type TPuffer = array [0..6] of byte;
var OutPuffer, InPuffer: TPuffer; ... OutPuffer := Copy(InPuffer,Low(InPuffer),Length(InPuffer)); |
Re: Array kopierern
Es macht anscheindend einen Unterschied ob ich dass mache:
Delphi-Quellcode:
oder ob ich einen Typ definiere:
OutPuffer : array [0..6] of byte;
InPuffer : array [0..6] of byte; OutPuffer := InPuffer;
Delphi-Quellcode:
TRxTxBuffer : array [0..6] of byte;
OutPuffer : TRxTxBuffer; InPuffer : TRxTxBuffer; |
Re: Array kopierern
@DeddyH
genau das war es!!! Da hatten wir wohl beide den gleichen Gedanken :-)))) :) |
Re: Array kopierern
Steht so sogar in der Delphi-Hilfe drin:
Zitat:
|
Re: Array kopierern
Hi,
was du hast ist ein statisches Array. Das funktioniert anders als ein dynamisches.
Delphi-Quellcode:
Ein dynamisches Array verwendet einen Zeiger auf die Stelle, wo die Daten stehen, und die Länge kann per SetLength eingestellt werden.
var
StaticArray: array[0..9] of Integer; //feste Länge DynamicArray: array of Integer; //variable Länge Ein statisches Array wird dagegen direkt und nicht über Zeiger angesprochen, daher sollte eine Zuweisung keine Probleme bereiten.
Delphi-Quellcode:
Funktioniert einwandfrei. Wichtig ist: Entweder du definierst einen Typ, oder du nennst die Variablen in einem Rutsch (also per Komma getrennt), da sie sonst evtl. als unterschiedliche Typen angesehen werden.
var
a, b: array[0..6] of integer; begin a := b; end; Lasst mich doch auch mal zu Wort kommen mir euren roten Kästen hier. Copy ist unnötig in diesem Fall. Und ich kann es nicht leiden, wenn ich mir die Arbeit mache, etwas zu erklären, und es schon längst abgeschickt hätte, nur dass mich der rote Kasten daran gehindert hat, und dann kommt der nächste rote Kasten, und dann der dritte, in dem fast das gleiche steht wie ich geschrieben habe. :wall: Das kann doch nicht der Sinn des roten Kastens sein. Mfg FAlter |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:21 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