|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Связь массива Char со String
Помогите, необходимо переркинуть данные из массива элементов типа Char в стороку одной функцией(желательно). Посимвольное перекидывание типа: a[x]:=c[y], где a: string, а c: array of char в цикле не годится.
|
#2
|
|||
|
|||
ну например так:
Код:
var M: string; STR: array[0..50] of Char; begin STR:= 'Hello from hell!'#0; M:= String(STR); showMessage(M); end. Последний раз редактировалось AlexZL, 07.04.2006 в 14:16. |
#3
|
|||
|
|||
Вообще массив динамический, хотя тут по барабану...
Хорошо, а как организовать с PChar? PChar тоже приветствуется... Не знаю как задать длину PChar. Пробовал GetMem(вроде как, точно не помню), он задает неправильную длину. |
#4
|
|||
|
|||
если динамический то тут не пройдет вот ЭТО:
Код:
STR:= 'Hello from hell!'#0; а PChar -- нужен ли он тебе тут? этоже всего лишь указатель на массив символов. |
#5
|
|||
|
|||
Массив динамический, но перед передачей в него данных устанавливается фиксированная длина. А как вообще зарезервировать место под PChar? Какой функцией?
Кстати, есть ли функция, резервирующая место под переменную string, типа Func(a,xxx), где a - переменная типа string, а xxx - резервируемое для нее кол-во символов? |
#6
|
|||
|
|||
Зачем под String резервировать? Там же память вроде динамически выделяется. вот тут посмотри :http://it.kgsu.ru/Ob_Pas/obpas035.html
PCHAR - это не строка а всего лишь указатель на строку, если нада динамически выделять память- создаешь динамический массив, работаешь с ним, и кастуй на него хоть тысячу PChar'ов, ну типа MyPChar:= PChar(MyArray); |
#7
|
|||
|
|||
Да чего мучаться, работай со String'ом, если приспичит, всегда сможешь конвертнуть в PChar.
|
#8
|
|||
|
|||
Дело в том, что при увеличении длины такой строки, если она расти по каким-либо причинам дальше не может, то для нее переопределяется память, а я хочу этого избежать. Мне нужно задать длину строки в теле программы, а не в описании, т.е. var a: string[2000] не годится.
|
#9
|
|||
|
|||
А чем динамический массив не устраивает?
стрингу вроде нельзя заранее выделить большой кусок памяти Последний раз редактировалось AlexZL, 07.04.2006 в 16:00. |
#10
|
|||
|
|||
Я еще поковыряюсь... Хотел стрингу юзать как альтернативу.
|