Показать сообщение отдельно
  #3  
Старый 08.04.2014, 00:17
Аватар для Electronic_Arts
Electronic_Arts Electronic_Arts вне форума
Местный
 
Регистрация: 13.07.2006
Адрес: на земле
Сообщения: 562
Версия Delphi: Delphi 11
Репутация: 18
Восклицание

Цитата:
Сообщение от poli-smen
Видимо проблема в том, что в Delphi XE5 каждый символ строки занимает 2 байта, а размер буфера ты вычисляешь в символах, т.е. в 2 раза меньше необходимого.
Yahoooo как я не догадался ведь пробелы же это один байт а символы по 2

Решено!
Код:
var

  Buffer: Pointer;
  BufSize: word;
  i, j, k: Integer;
  s: string;
  p: PChar;
begin
{подготовим буфер к записи}
  BufSize := 0;
  for i := 0 to list.Count -1 do
    inc(BufSize, Length(list[i]) * 2);
  inc(BufSize);
  GetMem(Buffer, BufSize);
...
..
..

и один лишний пробел добавляем сюда
Код:
s1.Add('d:\pagefile.sys 0 0 ');
и все
__________________
Нет ничего не возможного. Вопрос только во времени...
Ответить с цитированием