Форум: "Основная";
Текущий архив: 2004.03.14;
Скачать: [xml.tar.bz2];
Вниздинамический Buffer Найти похожие ветки
← →
Alexis (2004-02-29 12:10) [0]допустим, объявляя в
var buffer:array[0..200] of char;
создаем довольно большой буфер для принятия значения при вызове какой-либо функции, например
GetWindowsVersion(buffer);
strpas(buffer);
Однако может возникнуть переполнение.Каким образом можно создавать буфер динамической длины, а затем обрабатывать его.
Заранее благодарю.
← →
Плохиш (2004-02-29 12:18) [1]GetMem напрмер
← →
Maxud (2004-02-29 12:19) [2]buffer: array of Char;
...
SetLength(Buffer, 200);
buffer[4] := "F";
← →
Anatoly Podgoretsky (2004-02-29 12:20) [3]Такой функции нет
var buffer: array of char;
← →
Alexis (2004-02-29 12:35) [4]
> Такой функции нет
Я понимаю что нет.По-моему в этой ситуации надо указатели использовать?
> SetLength(Buffer, 200);
Вопрос внимательно почитайте :)
← →
Defunct (2004-02-29 13:50) [5]Alexis © (29.02.04 12:35) [4]
>> SetLength(Buffer, 200);
> Вопрос внимательно почитайте :)
А что не так?
Вы же можете написать, SetLength(Buffer, NewSize); где NewSize - переменная с требуемым значением.
← →
Alexis (2004-02-29 14:25) [6]
> А что не так?
> Вы же можете написать, SetLength(Buffer, NewSize); где NewSize
> - переменная с требуемым значением.
K primeru, ja citaju iz reestra znacenije funkcijej, kotoroja peredaet znacenije v buffer.Ja ved zaranee ne znaju kakoj dliny budet znacenije.
← →
Romkin (2004-02-29 14:26) [7]Строку использовать. Что все уперлись в массив?
Кстати, что за функция GetwindowsVersion? Что-то я такой не знаю.
Как правило, функции API возвращают длину буфера. Или есть парная, например, GetWindowText и GetWindowTextLength. Использование простое:
var
S: string;
Len: integer;
Len := GetWindowTextLength(Handle);
if Len = 0 then
raiseLastOSError;
SetLength(S, Len);
if GetWindowText(Handle, PChar(S), Len) = 0 then
raiseLastOSError;
//и тд...
← →
Verg (2004-02-29 14:31) [8]Практически все подобного сорта функции умеют сообщать, что размер заданного буфера недостаточен. Мало, того, большинство при этом сообщают "сколько надо".
Либо работают с известными максимальными значениям размеров.
Так что, как говорится, с больной головы на здоровую.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.03.14;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.012 c