Imam "nqkakuv" problem
4 отговора
214 прегледа
Imam "nqkakuv" problem
Znachi polzvam s memory mapping, za da uskorq rabotata s edin fail. No ima nqkakuv tech (v 1 red kod), koito ne moga da si ovbqsnq. Moje bi problema e drugade, ne znam, no se nadqvam nqkoi da pomogne.
var
PData: PChar;
procedure Load(AFileName: string);
begin
CreateMapping(AFileName, PData); //CreateMapping mi dava pointer kum mapping-a
end;
procedure Unload;
begin
UnmapViewOfFile(PData); //neshto takova beshe za osvobojdavane na mapping-a
end;
function ReadData(const APos, ALenght: Integer): string;
begin
SetLength(Result, ALength);
Move((PData + APos)^, Result[1 ], ALength); //ei tuka ima iztichane
end;
Pri 40 000 posledovatelni prochitaniq ostavat nqkude 6MB v pametta. Vsushtnost az obhojdam celiq fail (toi e kum 6MB) i moje bi pri chetene vinagi ostava prochetenoto v pametta zadelena za moq proces, ne sum siguren tochno
Ako ne znaete tova e edin ot bugovete v moq rechnik, nadqvam se posledniq (ili pone posledniq seriozen
)
by Waz Gaa
[email protected]
var
PData: PChar;
procedure Load(AFileName: string);
begin
CreateMapping(AFileName, PData); //CreateMapping mi dava pointer kum mapping-a
end;
procedure Unload;
begin
UnmapViewOfFile(PData); //neshto takova beshe za osvobojdavane na mapping-a
end;
function ReadData(const APos, ALenght: Integer): string;
begin
SetLength(Result, ALength);
Move((PData + APos)^, Result[1 ], ALength); //ei tuka ima iztichane
end;
Pri 40 000 posledovatelni prochitaniq ostavat nqkude 6MB v pametta. Vsushtnost az obhojdam celiq fail (toi e kum 6MB) i moje bi pri chetene vinagi ostava prochetenoto v pametta zadelena za moq proces, ne sum siguren tochno
Ako ne znaete tova e edin ot bugovete v moq rechnik, nadqvam se posledniq (ili pone posledniq seriozen
by Waz Gaa
[email protected]
Re: Imam "nqkakuv" problem
TFileStream не ти ли върши работа /като скорост/?
--------------------------------------
Започва Път от моят праг...
--------------------------------------
Започва Път от моят праг...
Re: Imam "nqkakuv" problem
Mi MemMap mislq, che e nai-dobro. Mai bqh po edno vreme sus streams, no vidqh, che ima razlika, ne sum absoliutno siguren. Kato moga shte proverq, no i predpochitam MemMap, taka che se nadqvam nqkoi da pomogne. 
by Waz Gaa
[email protected]
by Waz Gaa
[email protected]
Re: Imam "nqkakuv" problem
Da nqma neshto obshto s tova che Result[0] e pyrviqt simvol?
Re: Imam "nqkakuv" problem
Вече стана дума за това, че типа string в последните 32 битови Delphi-та е динамичен и по-голям от 255 байта. Нещо повече, ако напишеш Result[ 0 ], още компилатора дава следната грешка:
Element 0 inaccessible - use 'Length' or 'SetLength'
Четете, бе хора!
---
Не е важно да си добър, важното е да си ман-и-як!
Element 0 inaccessible - use 'Length' or 'SetLength'
Четете, бе хора!
---
Не е важно да си добър, важното е да си ман-и-як!