Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Разное
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 07.04.2006, 13:12
Muxer Muxer вне форума
Прохожий
 
Регистрация: 07.04.2006
Сообщения: 5
Репутация: 10
Восклицание Связь массива Char со String

Помогите, необходимо переркинуть данные из массива элементов типа Char в стороку одной функцией(желательно). Посимвольное перекидывание типа: a[x]:=c[y], где a: string, а c: array of char в цикле не годится.
Ответить с цитированием
  #2  
Старый 07.04.2006, 14:12
AlexZL AlexZL вне форума
Новичок
 
Регистрация: 06.01.2006
Сообщения: 87
Репутация: 20
По умолчанию

ну например так:

Код:
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  
Старый 07.04.2006, 14:19
Muxer Muxer вне форума
Прохожий
 
Регистрация: 07.04.2006
Сообщения: 5
Репутация: 10
Вопрос

Вообще массив динамический, хотя тут по барабану...
Хорошо, а как организовать с PChar? PChar тоже приветствуется...
Не знаю как задать длину PChar. Пробовал GetMem(вроде как, точно не помню), он задает неправильную длину.
Ответить с цитированием
  #4  
Старый 07.04.2006, 14:33
AlexZL AlexZL вне форума
Новичок
 
Регистрация: 06.01.2006
Сообщения: 87
Репутация: 20
По умолчанию

если динамический то тут не пройдет вот ЭТО:
Код:
STR:= 'Hello from hell!'#0;
присваивать придется поэлементно а все остальное также

а PChar -- нужен ли он тебе тут? этоже всего лишь указатель на массив символов.
Ответить с цитированием
  #5  
Старый 07.04.2006, 14:57
Muxer Muxer вне форума
Прохожий
 
Регистрация: 07.04.2006
Сообщения: 5
Репутация: 10
Вопрос

Массив динамический, но перед передачей в него данных устанавливается фиксированная длина. А как вообще зарезервировать место под PChar? Какой функцией?
Кстати, есть ли функция, резервирующая место под переменную string, типа Func(a,xxx), где a - переменная типа string, а xxx - резервируемое для нее кол-во символов?
Ответить с цитированием
  #6  
Старый 07.04.2006, 15:19
AlexZL AlexZL вне форума
Новичок
 
Регистрация: 06.01.2006
Сообщения: 87
Репутация: 20
По умолчанию

Зачем под String резервировать? Там же память вроде динамически выделяется. вот тут посмотри :http://it.kgsu.ru/Ob_Pas/obpas035.html

PCHAR - это не строка а всего лишь указатель на строку, если нада динамически выделять память- создаешь динамический массив, работаешь с ним, и кастуй на него хоть тысячу PChar'ов,
ну типа MyPChar:= PChar(MyArray);
Ответить с цитированием
  #7  
Старый 07.04.2006, 15:28
AlexZL AlexZL вне форума
Новичок
 
Регистрация: 06.01.2006
Сообщения: 87
Репутация: 20
По умолчанию

Да чего мучаться, работай со String'ом, если приспичит, всегда сможешь конвертнуть в PChar.
Ответить с цитированием
  #8  
Старый 07.04.2006, 15:31
Muxer Muxer вне форума
Прохожий
 
Регистрация: 07.04.2006
Сообщения: 5
Репутация: 10
Счастье

Дело в том, что при увеличении длины такой строки, если она расти по каким-либо причинам дальше не может, то для нее переопределяется память, а я хочу этого избежать. Мне нужно задать длину строки в теле программы, а не в описании, т.е. var a: string[2000] не годится.
Ответить с цитированием
  #9  
Старый 07.04.2006, 15:56
AlexZL AlexZL вне форума
Новичок
 
Регистрация: 06.01.2006
Сообщения: 87
Репутация: 20
По умолчанию

А чем динамический массив не устраивает?

стрингу вроде нельзя заранее выделить большой кусок памяти

Последний раз редактировалось AlexZL, 07.04.2006 в 16:00.
Ответить с цитированием
  #10  
Старый 07.04.2006, 16:37
Muxer Muxer вне форума
Прохожий
 
Регистрация: 07.04.2006
Сообщения: 5
Репутация: 10
Смех

Я еще поковыряюсь... Хотел стрингу юзать как альтернативу.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 01:10.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter