Форум: "KOL";
Текущий архив: 2005.01.30;
Скачать: [xml.tar.bz2];
ВнизChar & Error Найти похожие ветки
← →
NiceSC (2004-06-23 01:53) [0]type
SetOfChars = Set of Char;
var
setChar:setofchars;
begin
...
setChar:=[ #10..#13]; // строкаС
...
Если не убрать строкуС, то при выходе из основной процедуры возникает ошибка и программа падает???
← →
Alex44 (2004-06-23 11:27) [1]Mozhno popodrobnee? setChar---eto ne stroka, a set (v dannom sluchae---prosto 256 bits = 32 bytes)! Mozhet, ne nuzhno pytat"sya ee k stroke privodit"?
← →
savva © (2004-06-23 12:57) [2]вообще то я не знаю что написанное вами означает, потому как описав множество Set of Char вы описали тип, возможными которого могут быть значения с #0 до #255.
И если строкойsetChar:=[ #10..#13];
Вы хотите добавить в переменную типаSetOfChars
3 значения, то я советую Вам использовать для этого операции видаsetChar := [];
setChar := setChar + [ #10];
или же проседуру Include (она вроде более эффективна).
Маленький кусочек из F1.Exclude procedure
Removes an element from a set.
Include procedure
Adds an element to a set.
← →
Gandalf © (2004-06-23 23:58) [3]кода мало
← →
nicesc (2004-06-24 15:02) [4]Вот докопался, при попытке освободить память, вываливается Error
FreeMem(strTemp,SizeOf(strTemp)-1);
Это строка типа PChar которая динамически уменьшается в процессе...
Память выделял Так: GetMem(strTemp,StrLen(strWork));
← →
SPeller © (2004-06-24 20:22) [5]Не надо ничего уменьшать. Один раз выделил по максимуму и используешь. А когда не надо — просто FreeMem( strTemp );
← →
nicesc (2004-06-24 23:22) [6]Пробовал и так, пишет Runtime error 204 at 0040244C
← →
nicesc (2004-06-25 00:36) [7]Решил проблему (спасибо ZX)
делать надо так:
var
p:pointer;
strTemp:PChar;
begin
GetMem(P,strLen);
strTemp:=PChar(p);
...
...
FreeMem(P)
Почему такие проблемы с PCHAR???
У меня не работает даже такой код:
Getmem(MyStr,10);
Freemem(MyStr); // -> RunTime error 204
← →
Gandalf © (2004-06-25 21:15) [8]Либо у меня браузер глючит, либо что. У тебя код в кустах... если ты выделил 10 байт и работаешь с 1000 то у тебя точно будут проблемы. По коду не ясно...
← →
nicesc (2004-06-25 21:45) [9]Да я для примера привёл!
Ну например создаю проект, новый
и выделяю память и тут же её высвобождаю:
begin
Getmem(MyStr,10);
Freemem(MyStr) // RunTime
end;
Проверьте именно на PChar!
Кол 1.85
с заменой system
← →
Gandalf © (2004-06-25 22:03) [10]У меня все гуд. KOL 1.91 Delphi 7 WinXP SP1 RUS
А все же мне Freemem(MyStr,10); больше по вкусу.
← →
nicesc (2004-06-25 23:34) [11]Gandalf
Всё парни приношу свои извенения, разобрался, уки кривые, не давала освободить правильно память команда:
StrTemp:=@StrTemp[iTag];
← →
SPeller © (2004-06-26 07:08) [12]Ну вот видишь. Никогда не теряй указатели на память, потом освобождать ведб надо. А вот на счет выделения - так я по полтора гигабайта выделял GetMem"ом, чтобы создать нехватку памяти и сброс остальных прог в своп. Но это уже оффтопик :)
Страницы: 1 вся ветка
Форум: "KOL";
Текущий архив: 2005.01.30;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.041 c