Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

array of char to string and back


Scott Storch ©   (2011-07-05 11:18:00) 

строку нужно преобразовать в массив символов и обратно. сделал так:

procedure TForm1.Button1Click(Sender: TObject);
var
 A: array [0..65535] of Char;
 S1, S2: string;
begin
 S1 := 'qwerty';

 StrPCopy(A, S1); // string to array of char

 S2 := string(A); // array of char to string

 ShowMessage(S2);
end;


возникло пару вопросов:

- будет ли правильным использовать функцию StrPCopy
- встречал примеры в которых напрямую array of char присваивается строке, S2 := A;. Правильно ли это или обязательно нужно указывать тип: S2 := string(A);?


Медвежонок Пятачок   (2011-07-06 16:35:00) [1]

имелось ввиду не это.
массив допустим велик.
делаем в него strpcopy или нечто подобное.
завершающий #0 туда при этом попадает.
но если затем с этим массивом поработать как с массивом, то нуль может затереться чем-то еще и у строки получится "хвост".


han_malign   (2011-07-06 14:08:00) [2]


> если тот массив не просто массив с символами строки, но
> еще и с завершающим нулем, то прокатит.

- по барабану - для массива(в отличие от безразмерного PChar) - магия компилятора учитывает размер массива...


Медвежонок Пятачок   (2011-07-05 11:37:00) [3]

По вкусу:

StrPCopy
StrLCopy
StrCopy
Move

Если знаешь что такое строка, то все равно чем копировать.


Scott Storch   (2011-07-05 11:30:00) [4]

это понятно, просто у меня есть структура с полем типа array of [0..MAXWORD] of Char в которое нужно записывать текстовое значение поля таблицы бд типа TEXT, вот и спрашиваю, как правильно сделать преобразование.


Медвежонок Пятачок   (2011-07-05 11:25:00) [5]

встречал примеры в которых напрямую array of char присваивается строке, S2 := A;. Правильно ли это или обязательно нужно указывать тип: S2 := string(A);?

если тот массив не просто массив с символами строки, но еще и с завершающим нулем, то прокатит.


Anatoly Podgoretsky   (2011-07-05 11:21:00) [6]

> Scott Storch  (05.07.2011 11:18:00)  [0]

Строка уже и так массив символов


Наверх

Титульная страница Поиск, карта сайта Написать письмо