Forum

funkcja maxavail w Delphi

[+] Twoje konto

Subskrybuj kanał najnowszych wypowiedzi w tym temacie

Wątek Forum > Porady > Programowanie > funkcja maxavail w Delphi

Jaki jest odpowiednik funkcji maxavail w Delphi?
Idź do strony:1
Ocena: (Ocen: 0)
Wypowiedzi 1 - 4 z 4
 Zarejestrowany, zwieszony shizoidman Kopiuj nick (81.26.5.*->81.26.0.*) |  
Wypowiedź dodana: 23 kwietnia 2010, 13:50:27 | Wypowiedź edytowana Ostatnio edytowana: 23 kwietnia 2010, 21:35:28 po raz 1-wszy przez: Dżyszla
« Opcje

Czy wie ktoś jakie są odpowiedniki funkcji z Pascala w Delphi albo jaki moduł trzeba dołączyć aby normalnie działały? Chodzi mi o MaxAvail lub też memavail

FUNCTION DopiszDane;
Var
wsk : TwskPomiary;
ok : Boolean;
Begin
wsk:=wskKon;
ok:=True;
if MaxAvail >= SizeOf(TPomiary) then //????? o to pytam
Begin
Try
If wsk<>nil Then
Begin
New(wskKon);
wskKon^.dana:=dana;
wskKon^.wskaznik:=nil;
wsk^.wskaznik:=wskKon;
End
Else ...jakieś dalsze instr.

 Gość REKLAMA Kopiuj nick (*->*)
Wypowiedź dodana: 23 kwietnia 2010, 13:50:28

AvatarAdministrator Dżyszla Mężczyzna Kopiuj nick (83.2.108.*) |  
Wypowiedź dodana: 23 kwietnia 2010, 21:34:18
« Opcje

Czy ta funkcja ma zwracać wielkość dostępnej pamięci? Zasadniczo nie jest potrzebna, jeśli jej zadaniem jest ochrona przed próbą zarezerwowania zbyt dużego rozmiaru pamięci - obsługę powstającego w takiej sytuacji wyjątku zapewni blok try..except.


mgr inż. Dżyszla

Nie odpisuję na problemy zgłaszane na e-mail lub PW!

Także dzięki firmie Netlook.pl możesz za darmo korzystać z tej strony!

 Gość shizoidman Kopiuj nick (95.48.185.*)
Wypowiedź dodana: 22 czerwca 2010, 12:15:43
« Opcje

Polskie litery Delphi - pomyliłem wątek:
Tak maxavail ma sprawdzać dostępny blok pamięci, jest to zabezpieczenie przed przeładowaniem, program "obrabia" plik z pomiarami (200 próbek) prąd i prędkośćsilnika, dlatego chcę go zabezpieczyć przed "wysypaniem" dokładnie identyfikuje parametry silnika pr. stałego chcę wiedzieć czy jest jakiś zamiennik tej funkcji bo w delophi 7 kompilator wyrzuca mi komunikat undeclared identifier maxavail, ta funkcja tu pewnie nie jest potrzebna bo komuter dysponuje na tyle dużą pamięcią że przeładowanie mu nie grozi, ale czy jest taka funkcja?

AvatarAdministrator Dżyszla Mężczyzna Kopiuj nick (83.2.108.*) |  
Wypowiedź dodana: 22 czerwca 2010, 17:57:16 | Wypowiedź edytowana Ostatnio edytowana: 22 czerwca 2010, 17:59:59 po raz 2-gi przez: Dżyszla
« Opcje

W przypadku systemu Windows można pobrać taką daną z samego systemu poprzez WinAPI:

var
Memory : TMemoryStatus;
begin
Memory.dwLength:=SizeOf(Memory);
GlobalmemoryStatus(Memory);

with Memory,Memo1.Lines do begin
Add(FloatToStr(dwMemoryLoad) + '% używanej pamięci');
Add(FloatToStr(dwTotalPhys / 1024) + ' kB całkowitej pamięci');
Add(FloatToStr(dwAvailPhys / 1024) + ' kB dostępnej pamięci');
Add(FloatToStr(dwTotalPageFile / 1024) + ' kB może być umieszczone w pliku stron');
Add(FloatToStr(dwAvailPageFile / 1024) + ' kB dostępnej pamięci pliku stron');
Add(FloatToStr(dwTotalVirtual / 1024) + ' kB całkowitej pamięci wirtualnej');
Add(FloatToSTr(dwAvailVirtual / 1024) + ' kB dostępnej pamięci wirtualnej');
end;
end;

Jednakże raz jeszcze podkreślam - bazowanie na tej danej jako chroniącej przed wyjątkiem braku pamięci jest błędne! Chociażby w momencie pomiędzy pobraniem ilości wolnej pamięci a rezerwacją inny proces dokona rezerwacji (pracujemy w środowisku wielozadaniowym!). Wówczas i tak nie uda się dokonać rezerwacji. Co więcej - wolna pamięć w systemie Windows może być pojęciem względnym, jeśli pracujemy z dynamicznym plikiem wymiany.

Dlatego powtarzam: tylko i wyłącznie try..except i przechwytywanie wyjątku EOutOfMemory - tylko takie jest właściwe postępowanie w programowaniu!


mgr inż. Dżyszla

Nie odpisuję na problemy zgłaszane na e-mail lub PW!

Także dzięki firmie Netlook.pl możesz za darmo korzystać z tej strony!

 
Idź do strony:1

[+] Pokaż/odśwież listę czytających i monitorujących ten wątek

Podobne tematy:
Tytuł wątkuDziałWypowiedziWyświetleńOcenaOstatnia wypowiedź
WątekCertyfikat z Delphi
Jak zdobyć tytuł Certyfikowanego Programisty Delphi - egzaminy, koszty, wymagania, poziom trudności
Porady / Programowanie2146 15.08.2012 09:59:54
WątekOptymalny, wysokowydajny kod w Delphi
Komentarze do porady Optymalny, wysokowydajny kod w Delphi
Komentarze / Porady4248 20.02.2016 16:37:53
WątekPR - PageRank Helper - Delphi Unit
Komentarze dotyczące programu PR - PageRank Helper - Delphi Unit
Komentarze / Moje programy i teksty11302 14.01.2009 14:59:45
Wątektablice w delphiPorady / Programowanie2129 15.10.2008 19:08:05
WątekPolskie litery w DelphiPorady / Programowanie3207 18.02.2006 11:21:56

Nowa wypowiedź

Nowa wypowiedź
Nie jesteś zalogowany; będziesz traktowany jako gość!
Zaloguj Zaloguj
Nick (gość): | Przepisz ten kod [?]: d98dd:
Tekst:

 

Subskrybuj kanał najnowszych wypowiedzi w tym temacie


Chcesz mieć też takie forum na swojej stronie? Napisz!

Strona istnieje od 25.01.2001
Ta strona używa plików Cookie
Helion.pl  
archive To tylko kopia strony wykonana przez robota internetowego! Aby wyświetlić aktualną zawartość przejdź do strony.
Ładowanie...

Optymalizowane dla przeglądarki Firefox
© Copyright 2001-2017 Dawid Najgiebauer. Wszelkie prawa zastrzeżone.
Ostatnia aktualizacja podstrony: 22.09.2014 12:12
Wszystkie czasy dla strefy czasowej: Europe/Warsaw