AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Wie bekomm ich einen undefinierten Buffer in ein Array?
Thema durchsuchen
Ansicht
Themen-Optionen

Wie bekomm ich einen undefinierten Buffer in ein Array?

Ein Thema von hitzi · begonnen am 27. Okt 2007 · letzter Beitrag vom 28. Okt 2007
Antwort Antwort
Benutzerbild von hitzi
hitzi

Registriert seit: 2. Jan 2003
Ort: Eibau
768 Beiträge
 
Delphi 2010 Professional
 
#1

Wie bekomm ich einen undefinierten Buffer in ein Array?

  Alt 27. Okt 2007, 22:44
Hallo,

wie bekomm ich einen solchen Funktionsparamter in ein Array of Char:
function xyz(const Buffer; Len : integer); Buffer soll in ein Array of Char. Len ist die Größe von Buffer.

Gruss
Thomas
Besucht doch mal http://www.hitziger.net
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Wie bekomm ich einen undefinierten Buffer in ein Array?

  Alt 27. Okt 2007, 22:47
willst du ein Array of Char übergeben oder hast du eine Funktion mit diesem Funktionskopf und willst es in ein Array of Char kopieren?
Mit der Funktion Move kannst du ganz einfach speicher kopieren. Unter anderem auch von einem untypisiertem Bereich in ein Array of char.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von hitzi
hitzi

Registriert seit: 2. Jan 2003
Ort: Eibau
768 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Wie bekomm ich einen undefinierten Buffer in ein Array?

  Alt 27. Okt 2007, 22:50
Ich möchte es in das Array of Char kopieren. Wie macht man das mit move?
Thomas
Besucht doch mal http://www.hitziger.net
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Wie bekomm ich einen undefinierten Buffer in ein Array?

  Alt 27. Okt 2007, 22:57
move(Buffer, YourArray[0]);
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Wie bekomm ich einen undefinierten Buffer in ein Array?

  Alt 28. Okt 2007, 07:06
@sir: Fehlt da nicht noch die Länge?
Und je nachdem, was buffer ist, kannes auch so sein:
move(buffer^,YourArray[0],len);
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: Wie bekomm ich einen undefinierten Buffer in ein Array?

  Alt 28. Okt 2007, 07:30
Zitat von sirius:
@sir: Fehlt da nicht noch die Länge?
Stimmt, aber Sir Thornberry wollte auf die Aufrufsyntax des Buffers hinweisen
Zitat von sirius:
Und je nachdem, was buffer ist, kannes auch so sein:
move(buffer^,YourArray[0],len);
Nein, denn Buffer ist kein Zeiger, sondern eine untypisierte Variable.

Der vollständig korrekte Aufruf ist also:
Move (Buffer, YourArray, Len) oder
Move (Buffer, YourArray[Low(YourArray)], Len) In beiden Fällen wird implizit die Adresse des ersten Elementes von 'YourArray' übergeben.
Letztere Variante sollte man bei Strings verwenden:
Delphi-Quellcode:
SetLength (YourString, Len);
Move (Buffer, YourString[1], Len)
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#7

Re: Wie bekomm ich einen undefinierten Buffer in ein Array?

  Alt 28. Okt 2007, 16:36
Ich verwende immer CopyMemory dazu ..
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#8

Re: Wie bekomm ich einen undefinierten Buffer in ein Array?

  Alt 28. Okt 2007, 16:40
Zitat von Zacherl:
Ich verwende immer CopyMemory dazu ..
Bringt dir aber bei untypisierten Daten nichts und abgesehn davon:

Delphi-Quellcode:
procedure CopyMemory(Destination: Pointer; Source: Pointer; Length: DWORD);
begin
  Move(Source^, Destination^, Length);
end;


Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:57 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