![]() |
Inhalt eines dynamischen Array in einen String kopieren
Hi Leute,
ich entschuldige mich schon mal im Voraus für die Frage. Bei der Suche bin ich wahnsinnig geworden; bekomme alle Threads mit den Stichworten String und Array; einfach zu viel. Folgende Aufgabe: Ich habe ein dynamisches Array A : Array of Byte und möchte deren Inhalt in einen String kopieren. Ich stell mich grad zu blöd an. Muss dabei bemerken, dass ich das nicht über eine Schleife sondern mittels move oder Copy mit "einem Ruck" erledigen will. Mach ich es so:
Delphi-Quellcode:
bekomme ich Fehlermeldungen wie:
SetLength(SData, Length(FReceivedData));
system.Move(@FReceivedData[0], SData[1], Length(FReceivedData)); SetLength(FReceivedData, 0); Zitat:
Ich denke, hier kann mir sicher einer schnell aus meinem Dilemma helfen. Dank und Gruß oki |
Re: Inhalt eines dynamischen Array in einen String kopieren
Lass doch mal das @ weg:
Delphi-Quellcode:
system.Move(FReceivedData[0], SData[1], Length(FReceivedData));
|
Re: Inhalt eines dynamischen Array in einen String kopieren
Hi,
dann meckert zwar der Compiler nicht mehr, aber in SData steht nur Müll. Auf jeden Fall nicht das, was in FReceivedData steht. Gruß Oki |
Re: Inhalt eines dynamischen Array in einen String kopieren
Und wenn Du das letzte SetLength einmal weglässt?
Delphi-Quellcode:
SetLength(SData, Length(FReceivedData));
system.Move(FReceivedData[0], SData[1], Length(FReceivedData)); //SetLength(FReceivedData, 0); |
Re: Inhalt eines dynamischen Array in einen String kopieren
Zitat:
Wie sind FReceivedData und SData deklariert? Welche Delphi-Version setzt du ein? |
Re: Inhalt eines dynamischen Array in einen String kopieren
Hi Leute,
muss grad für 1,5 h weg. Hier noch schnell: FReceiveData setze ich 0 um die empfangenen Daten zu löschen (hole sie mit Sdata ab). SData ist ein string, den ich mit den Daten als String hochreichen möchte. Manchmal empfange ich nur ASCII. Gruß oki |
Re: Inhalt eines dynamischen Array in einen String kopieren
Ich hab's mal für mich umgesetzt, so klappt es:
Delphi-Quellcode:
Gruß
var
i : integer; a1: array of byte; s1: string; begin setlength(s1,50); setlength(a1,50); for i:=0 to 49 do a1[i]:=$20+i; move(a1[0],s1[1],50); showmessage(s1); K-H |
Re: Inhalt eines dynamischen Array in einen String kopieren
Wenn FReceivedData ein "Array of Byte" und SData ein "AnsiString" (oder Ähnliches) ist:
Delphi-Quellcode:
Wobei das mit dem Move eigentlich auch funktionieren sollte :gruebel:
SData := AnsiString(Pointer(FReceivedData));
UniqueString(SData); FReceivedData := nil;
Delphi-Quellcode:
Bist du ganz sicher, daß "aber in SData steht nur Müll" an diesen Befehlen liegt?
SetLength(SData, Length(FReceivedData));
MoveMemory(@SData[1], @FReceivedData[0], Length(FReceivedData)); FReceivedData := nil; |
Re: Inhalt eines dynamischen Array in einen String kopieren
Nur so am Rande: Move ist intern meine ich auch nichts weiter als eine Schleife über Bytes.
|
Re: Inhalt eines dynamischen Array in einen String kopieren
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:20 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