Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.06 c
3-1103797700
juice
2004-12-23 13:28
2005.01.30
Insert, ключевое поле


4-1102515267
Chaser
2004-12-08 17:14
2005.01.30
Как присвоить хинту иконки программы в трее значение переменной?


8-1097340594
Mihey_temporary
2004-10-09 20:49
2005.01.30
Проблема с заданием палитры для pf1bit


3-1103649983
dron-s
2004-12-21 20:26
2005.01.30
Общая сумма в DBGrid колонке


1-1106137821
Jungle
2005-01-19 15:30
2005.01.30
Синхронизация БД и ActiveDirectory





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский