Autor Beitrag
Thomas450
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Sa 20.02.10 19:35 
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.

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 42
Erhaltene Danke: 2



BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: 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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: 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 ;-)

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".