Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Array kopieren (Array of array) (https://www.delphipraxis.net/167387-array-kopieren-array-array.html)

SimonRap 27. Mär 2012 14:03

Delphi-Version: 6

Array kopieren (Array of array)
 
Hey Leute,
ich hab mal wieder ne Frage... und vorerst ist zu sagen, ich würde nicht fragen, wenn ich nicht schon alles mögliche durchprobiert hätte oder wenn intensives Suchen einer Lösung geholfen hätte^^

Zur Sache:
Ich habe nen Record
Delphi-Quellcode:
 
TCFile = record
  //...
  buf:    array[1..1024] of char;
  //...
end;
//...
procedure xyz
var CFile: TCFile;
und an anderer Stelle habe ich
Delphi-Quellcode:
var bufs: array of array[1..1024] of char;

Nun möchte ich ganz einfach den Inhalt eines TCFiles in bufs übertragen...
Delphi-Quellcode:
 bufs[high(bufs)] := Copy (CFile.buf , 0 , SizeOf(CFile.buf) );
Da krieg ich nun die Fehlermeldung, dass Arrays und String inkompatible Typen sind^^
Ich steh grad ein wenig im Dunkeln... weiß jemand weiter?

Vielen Dank im Voraus,
Simon

mkinzler 27. Mär 2012 14:07

AW: Array kopieren (Array of array)
 
Speicherbereiche kannst du mit Move Kopieren

s.h.a.r.k 27. Mär 2012 14:08

AW: Array kopieren (Array of array)
 
@mkinzler: Aber bei array of array-Typen ging das doch nicht, oder? :gruebel:

SimonRap 27. Mär 2012 14:15

AW: Array kopieren (Array of array)
 
Vielen Dank für die schnelle Antwort :D
quasi
Delphi-Quellcode:
Move ( CFile.buf , bufs[high(bufs)] , SizeOf(CFile.Buf) ) ;
? (Kann hier gerade nicht testen)
Und ist das mit Copy nicht möglich?

Iwo Asnet 27. Mär 2012 14:18

AW: Array kopieren (Array of array)
 
Abhilfe, um ganz auf Move & Co zu verzichten:
Delphi-Quellcode:
Type
  TCharBuffer = Array Of Char;
  TMyRecord = Record
    Buf : TCharBuffer;
  End;

...
Var
  SomeData :Array Of TCharBuffer;
...

SomeData[i] := MyRec.Buf;

DeddyH 27. Mär 2012 14:18

AW: Array kopieren (Array of array)
 
Delphi-Quellcode:
type
  TZeile = array[0..19] of char;
  TListe = array of TZeile;
var
  Zeile: TZeile;
  Liste: TListe;
begin
  ZeroMemory(@Zeile, SizeOf(Zeile));
  StrPCopy(@Zeile, 'Hallo Welt');
  SetLength(Liste, 1);
  StrCopy(@Liste[0], Zeile);
  ShowMessage(Liste[0]);
end;

Iwo Asnet 27. Mär 2012 14:23

AW: Array kopieren (Array of array)
 
Ist StrCopy besser als eine Zuweisung? Oder nur grüner? :gruebel:

himitsu 27. Mär 2012 16:28

AW: Array kopieren (Array of array)
 
Deine Lösung (Iwo Asnet) ist sicherer und diese würde ich hier auch empfehlen.

Um mit Pointern rumzuhantieren, muß man das schon können, ansonsten kann es schnell mal knallen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:25 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