Форум: "Основная";
Текущий архив: 2003.09.04;
Скачать: [xml.tar.bz2];
ВнизОтвести память под текст Найти похожие ветки
← →
Micah'GF (2003-08-23 20:57) [0]Делаю так:
pPTR := AllocMem(Length(Edit1.Text));
dwSize := Length(Edit1.Text);
Move(Edit1.Text, pPTR, Length(Edit1.Text));
а как будет правильней чтоб потом можно было сделать так:
ListBox1.Items.Add( pPTR )
ЗЫ. ну не умею я еще работать с пямятью :[
← →
Anatoly Podgoretsky (2003-08-23 21:26) [1]ListBox1.Items.Add(Edit1.Text)
← →
Micah'GF (2003-08-23 22:14) [2]тогда вопрос немного подругому...
нужно загрузить текст из файла в Edit1.Text, а зтем еще в Memo1.Text ... только функцией FileRead() ( TextFile не предлагать)
← →
Palladin (2003-08-23 22:36) [3]а почему не предлагать?
ну если хочешь
function ReadString(var f:file):string;
var
Readet,CBZ:integer;
buffer:array of byte;
function EndOfString:boolean;
var
i:integer;
begin
CBZ:=Readet;
result:=true;
if Readet=0 then exit;
for i:=0 to Readet do if buffer[i]=0 then
begin
CBZ:=i;
exit;
end;
result:=false;
end;
procedure AddToResult;
begin
SetLength(Result,Length(Result)+CBZ);
Move(Buffer[0],Result[Length(Result)-CBZ+1],CBZ);
end;
begin
SetLength(Result,0);
SetLength(Buffer,1024);
while true do
begin
BlockRead(f,Buffer[0],Length(Buffer),Readet);
if not EndOfString then AddToResult else
begin
AddToResult;
break;
end;
end;
end;
← →
Anatoly Podgoretsky (2003-08-23 22:53) [4]Ну так загрузи в переменную типа string и затем присвой ее
← →
Palladin (2003-08-23 23:29) [5]Ошибочка вышла
вместо
for i:=0 to Readet do if buffer[i]=0 then
надоть
for i:=0 to Readet-1 do if buffer[i]=0 then
← →
IntLex (2003-08-24 09:48) [6]>>Micah"GF
А вообще-то, надо не:
>>pPTR := AllocMem(Length(Edit1.Text));
а так:
pPTR := AllocMem(Length(Edit1.Text)+1);
1 байт для $0
← →
Micah'GF (2003-08-24 17:20) [7]все неподходит...
во-первых файл бинарный - в нем текст, а во-вторых читаю не я, а dll , но я точно знаю что читает она с помошью функци FileRead() ..
Процедуре передается только адрес буфера в виде pointer. В него будет загружен этот текст... Так вот мне надо правильно распределить пямять (именно распределить (лучше не использовать динамические массивы)) и потом правильно использовать полученое содержимое (хотябы объясните как в переменную string поместить это содержимое...
← →
Song (2003-08-24 17:48) [8]CreateFileMapping(), MapViewOfFile()
Можно ещё через TStream
← →
sniknik (2003-08-24 18:01) [9]> все неподходит...
да ну? по моему все в "кассу" как ответ на первый вопрос. для второго -> Micah"GF (24.08.03 17:20) [7] можно сделать так
var s: string;
begin
s := StringOfChar(#0, 10{размер});
Процедуре_передается_только_адрес_буфера_в_виде_pointer(@s[1]);
....
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.09.04;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c