Форум: "Начинающим";
Текущий архив: 2008.06.22;
Скачать: [xml.tar.bz2];
ВнизPointer в string Найти похожие ветки
← →
Res (2008-05-19 11:12) [0]Здравствуйте. Подскажите пожалуйста как Pointer перевести в string.
Данный код показывается пустоту :( непонимаю.
Htemp,HResInfo,HGlobal: THandle;
Ptr: Pointer; Size: Longint;
temp,temp3:^string;
temp2:string;
begin
HResInfo := FindResource(Htemp, PAnsiChar(ResName), PAnsiChar(ResType));
if HResInfo = 0 then exit;
HGlobal := LoadResource(Htemp, HResInfo);
if HGlobal = 0 then exit;
ptr:=LockResource(HGlobal);
size:=SizeOfResource(HTemp, HResInfo);
new (temp3);
temp3:=@temp2;
temp3:=ptr;
messagebox(0,PAnsiChar(temp2),"",0);
Заранее благодарен.
← →
Amoeba © (2008-05-19 11:18) [1]
> temp,temp3:^string;
Указатель на указатель. Такого делать не надо!
> new (temp3);
> temp3:=@temp2;
> temp3:=ptr;
Вообще бред.
← →
Res (2008-05-19 11:20) [2]Просто был пример:
var
p1: ^string;
s1: string;
begin
s1 := "NotTest";
new(p1);
p1 := @s1;
p1^ := "Test";
Label1.Caption := s1
Немогли бы Вы подсказать, как исправить?
← →
Сергей М. © (2008-05-19 11:26) [3]Какие-то непонятные пляски с бубном ..
Htemp,HResInfo,HGlobal: THandle;
pStr: PChar;
Size: Longint;
Str: String;
...
HResInfo := FindResource(Htemp, PAnsiChar(ResName), PAnsiChar(ResType));
if HResInfo = 0 then exit;
HGlobal := LoadResource(Htemp, HResInfo);
if HGlobal = 0 then exit;
// size:=SizeOfResource(HTemp, HResInfo); //размер нужен, если строка не нуль-терминированная
pStr:=LockResource(HGlobal);
// SetLength(Str, size);
// Move(pStr^, PChar(Str)^, Size); //для случая не нуль-терминированной строки
Str := StrPas(pStr); //подразумевается, что в ресурсе хранится нуль-терминированная ANSI-строка
messagebox(0,PChar(Str),"",0);
← →
palva © (2008-05-19 11:30) [4]
> Немогли бы Вы подсказать, как исправить?
А что вы хотите, чтобы было? Если своими словами. Ваш код лично мне непонятен. Почему переменной p1 присваивается значение, которое затирается в следующей же строчке?
← →
Хитрий Лис (2008-05-19 11:52) [5]
Format
Format strings
F1
← →
TForumHelp © (2008-05-29 10:55) [6]
> Данный код показывается пустоту :( непонимаю.
а что он еще должен показывать? имхо - бред полнейший.
← →
Ega23 © (2008-05-29 11:02) [7]
> Подскажите пожалуйста как Pointer перевести в string.function FiletoString(const FileName : string) : string;
var
fs : TFileStream;
ss : string;
begin
Result := "";
if not FileExists(FileName) then Exit;
fs := TFileStream.Create(FileName, fmOpenRead or fmShareDenyNone);
try
fs.Position := 0;
SetLength(Result, fs.Size);
fs.ReadBuffer(PChar(Result)^, fs.Size);
finally
fs.Free;
end;
end;
пример, конечно, дурной, ибо на самом деле файл можно и более приятными способами читать.
Но про "pointer" в "string" - демонстрирует.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.06.22;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.043 c