Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

возврат массива из функции

17K
22 сентября 2006 года
ProteZ
18 / / 18.09.2006
народ можно ли фнкцией возвратить массив?

Ну как нить так:
 
Код:
var
sAr: array[0..16] of char;
function test(str: string): array[0..16] of char;
begin
//перевод каждого элемента строки в элементы массива
end;
 
sAr:=test('test');

Вообще мне надо именно перевести строку в массив char, но попутно возник вопрос о возврашении массива.

Никто не подскажет как такое замутить?

[COLOR=red]используем тэги code (Moderator)[/COLOR]
242
22 сентября 2006 года
Оlga
2.2K / / 04.02.2006
[COLOR="Red"]замечание[/COLOR]: Правила форума, пункт 5
[COLOR="red"]В следущий раз тема будет закрыта.[/COLOR]
268
22 сентября 2006 года
Михаил
587 / / 25.06.2005
type TArray=array[n..m+n] of your_type;

function your_function(your_parameters):TArray;
begin
//your code
end;
17K
22 сентября 2006 года
ProteZ
18 / / 18.09.2006
Это я знаю. НО!
При таком присвоении массиму типа char он выдаёт несоответствие типов, мол нужно элементы char, а я ему какой TArray пихаю
268
22 сентября 2006 года
Михаил
587 / / 25.06.2005
покажи как ты это делаешь
17K
22 сентября 2006 года
ProteZ
18 / / 18.09.2006
так как я не знаю как сделать нормально, я в тупую создаю процедуру, которая переводит каждый элемент строки в элемент массива(каждая процедура для каждого массива). Это как-то тупо, вот я и решил вот спросить
268
22 сентября 2006 года
Михаил
587 / / 25.06.2005
код то сам покажи, а то процедуры, функции, сложно очень понять в чем проблема не имея четкого представления задачи
17K
22 сентября 2006 года
ProteZ
18 / / 18.09.2006
 
Код:
var
  testAr: array[0..16] of char;

 procedure test(str: string);
 var
  i: integer;
 begin
  for i:=0 to length(str) do
   testAr:=str[i+1];
 end;


ну вот примерно так
268
22 сентября 2006 года
Михаил
587 / / 25.06.2005
сразу видно выход за границы: когда у тебя i=length(str) ты обращаешься к i+1, а так вроде и ничего
 
Код:
var testAr[0..16] of char;

procedure test(str:string);
var i:integer;
begin
   for i:=0 to length(str)-1 do
     testAr:=str[i+1];
end;
17K
22 сентября 2006 года
ProteZ
18 / / 18.09.2006
Да не в этом суть... Как это заменить более функционально? Чтоб например была не процедура, а функция. И чтоб функция возвращала массив символов. Ну чтоб можно было сделать вот так:
 
Код:
testAr:=test('тест');
268
22 сентября 2006 года
Михаил
587 / / 25.06.2005
вот посмотри. Функция разбивает строку на массив символов.
17K
22 сентября 2006 года
ProteZ
18 / / 18.09.2006
А, ну вроде понял...
Спасибо!
339
23 сентября 2006 года
verybadbug
619 / / 12.09.2005
хмм..... а чё... PChar не подходит?
17K
23 сентября 2006 года
ProteZ
18 / / 18.09.2006
в том то и дело что нет
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог