Einzelnen Beitrag anzeigen

supermuckl

Registriert seit: 1. Feb 2003
1.340 Beiträge
 
FreePascal / Lazarus
 
#1

MMF exception bei schreiben von vielen daten o_O

  Alt 23. Jun 2004, 03:47
habe folgenden code mit dem ich in ein memory mapped file schreibe:

Delphi-Quellcode:
var
packet:string;
iLen:int64;
DataFile: PByte;
begin

for i2 := 0 to 999 do begin
 packet := packet+'lllllbbbbbbbbbaaaaaaaaaalllllllaaaaaaaaabbbbbbb';
end;

iLen := length(packet);

StrLCopy(Pchar(DataFile),pchar(packet),iLen);

das öffnen des MMF und schließen hab ich mal ausgelassen weil das funktioniert

ich bekomme folgenden fehler in der StrLCopy zeile:

---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Project1.exe ist eine Exception der Klasse EAccessViolation aufgetreten. Meldung: 'Zugriffsverletzung bei Adresse 004088E5 in Modul 'Project1.exe'. Schreiben von Adresse 01261000'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
---------------------------
OK Hilfe
---------------------------


wenn ich allerdings nich 999 schleifendurchgänge verwende sondern nur 9 ( bei 99 kommt auch exception ) dann funktioniert alles perfekt !

das MMF wurde aber nicht "zu klein" dimensioniert ( hab schon bis 900 mb getestet und funktioniert )

was kann da der auslöser sein? kann die funktion StrLCopy einfach nicht soviel auf einmal kopieren? oder stimmt was mit pchar nicht ?
bin ratlos

// nachtrag
wenn ich statt:
iLen := length(packet);

folgendes verwende:
iLen := SizeOf(packet)-1;

so wie es in de hilfe für StrLCopy steht
dann krieg ich maximal 3 zeichen + ein leerzeichen ( vermutlich auch noch ein 0 terminator dabei ) maximal in das MMF file rein
mit length krieg ich mein gesamtes paket rein.. aber halt nur bis zu der größe wo die exception mich nervt

auch wäre es cool wenn ich den nullterminator da nicht mit drin hätte ( schreiben ohne 0 terminator ) weil mir das ziemlich im weg ist fürs binäre daten schreiben
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!
  Mit Zitat antworten Zitat