Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > преобразовать string в array of char и обратно


Автор: lebaon 15.8.2006, 16:19
есть переменная типа string ,
есть array [1..2048] of char,
нужно преобразовать данные между ними, вопрос как? smile  smile 
delphi 2003

Автор: Romikgy 15.8.2006, 16:21
string ()
Pchar()

Автор: Alexeis 15.8.2006, 16:26
lebaon, 
если бы всместо array [1..2048] of char
был array [0..2047] of char
то сработало бы простое присваивание, а так
s->m
Код

var
  s : ansistring;
  m : array [1..2048] of char;
begin
.......
move(s[1], m[1], 2048);

m->s
Код

var
  s : ansistring;
  m : array [1..2048] of char;
begin
.......
setlength(s, 2048);
move(m[1], s[1], 2048);


Автор: Yanis 15.8.2006, 16:31
Цитата(alexeis1 @  15.8.2006,  17:26 Найти цитируемый пост)
то сработало бы простое присваивание

Оно в любом случае сработать должно!

Добавлено @ 16:31 
Код
var
  s: string;
  a: array[1..2048] of char;
begin
  { s -> a  }
  Move(s, a, IfThen(Length(s) <= Length(a), Length(s)));
end;

Автор: Rennigth 15.8.2006, 16:34
Код

var
  lStrArr: array [1..16] of Char;
  lStr: string;
begin
  lStr := 'asdfasdjklfa';
  StrPCopy(@lStrArr[1], lStr);
  ShowMessage(lStrArr);



Автор: Snowy 15.8.2006, 16:43
А зачем? По сути string и есть array of char...

Автор: jack128 15.8.2006, 17:01
Цитата(Snowy @  15.8.2006,  16:43 Найти цитируемый пост)
А зачем? По сути string и есть array of char... 

компилятор иначе считает.

Автор: Snowy 15.8.2006, 17:09
Естественно. Я ж не говорю, что они идентичны.
Просто для чего такого может потребоваться массив чаров, для чего не подойдёт стринг?

Автор: Yanis 15.8.2006, 17:10
Цитата(Snowy @  15.8.2006,  18:09 Найти цитируемый пост)
Просто для чего такого может потребоваться массив чаров, для чего не подойдёт стринг? 

Для сохранения в типизированый файл smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)