Entwickler-Ecke

Basistechnologien - Byte-Array schrittweise beschreiben


Thomas450 - Sa 20.02.10 19:35
Titel: Byte-Array schrittweise beschreiben
Hallo,

ich möchte aus einer speicherprogrammierbaren Steuerung Daten (1024 Bytes) lesen und in ein Byte-Array eintragen. Der Lesebefehl liefert pro Aufruf aber nur maximal 222 Bytes. Ich muss den Befehl daher mehrfach aufrufen und die gelesen Daten nacheinander in das Byte-Array eintragen. Bibt es eine Möglichkeit die jeweilige Position im Array an den Lesebefehl zu übergeben? Dieser erwartet ein Byte-Array.


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
//Deklaration Lesebefehl
public int readBytes(int area, int DBnumber, int start, int len, byte[] buffer);

public void daten_lesen()
{
  int res, pos, len;
  byte[] buf;
  buf = new byte[1014];

  len = 222;

  pos = 0;
  res = dc.readBytes(libnodave.daveDB, db, pos, len, buf[0???]);

  pos = 222;
  res = dc.readBytes(libnodave.daveDB, db, pos, len, buf[222???]);

  //usw... (wird später natürlich ne Schleife)
}



Gruß Thomas


Moderiert von user profile iconChristian S.: Topic aus C# - Die Sprache verschoben am Sa 20.02.2010 um 18:45


c#surfer - So 21.02.10 00:32

Ich kann dir deine Frage nicht beantworten, da ich nicht weiss, was in deinem code dc ist. Aber falls es nicht so fkt wie du möchtest, kannst du die Daten zuerst in ein temporäres array lesen und dann mittels Array.Copy in das endgültige array an eine beliebige Stelle kopieren.


Thomas450 - So 21.02.10 13:01

Bei dc handelt es sich um die Instanz einer Klasse mit den Zugriffsfunktionen.

"static libnodave.daveConnection dc;"

Kann ich beim Aufruf der Funktion in C# einen Verweis oder einen Zeiger auf die Stelle im Array angeben?

Gruß Thomas


Christian S. - So 21.02.10 13:03

user profile iconThomas450 hat folgendes geschrieben Zum zitierten Posting springen:
Kann ich beim Aufruf der Funktion in C# einen Verweis oder einen Zeiger auf die Stelle im Array angeben?
Nein, solche wilden Pointereien gibt es in der managed Umgebung nicht mehr ;-)