Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

21.04.2010, 14:49
|
|
Участник форума
Регистрация: 02.02.2010
Сообщений: 107
Провел на форуме: 612028
Репутация:
28
|
|
if array1[i] = '' then
begin
Result := i;
ShowMessage(IntToStr(i)+':'+array1[i]);
Break;
end;
если я правильно понял у тебя при попадании на пустой элемент массива result`у присваивается значение.. попробуй в else обнулять result
и первый элемент массива 0, а не 1..
|
|
|

21.04.2010, 14:52
|
|
Постоянный
Регистрация: 30.08.2005
Сообщений: 730
Провел на форуме: 6828219
Репутация:
2274
|
|
да, массив я изменил
users: array[1..50] of string;
такчто начинается с 1 а не с 0
Да и даже если с 0, я присваиваю [1] а оно его невидет
Я тут подумал, может я строкой "array of string" в функции обнуляю массив, но просто array
function count_array(array1 : array) : integer;
не работает, гвоорит
[Error] irc.pas(73): 'OF' expected but ')' found
Пойду пасмарю find_in_array работает ваще или нет 
Последний раз редактировалось Ponchik; 21.04.2010 в 14:54..
|
|
|

21.04.2010, 14:56
|
|
Участник форума
Регистрация: 02.02.2010
Сообщений: 107
Провел на форуме: 612028
Репутация:
28
|
|
Код:
function count_array(array1 : array of string; f: string) : integer;
var i: Integer;
begin
for i := 0 to length(array1) - 1 do
begin
if array1[i] = f then
begin
Result := i;
Break;
end
else result := 0;
end;
end;
так что ли?
Код:
var arr: array[0..10] of string;
begin
arr[0] := 'q';
arr[1] := 'a';
arr[2] := '';
arr[3] := 'd';
showmessage(inttostr(count_array(arr,'a')));
выдает 1..
Последний раз редактировалось [stranger]; 21.04.2010 в 14:59..
|
|
|

21.04.2010, 14:59
|
|
Постоянный
Регистрация: 30.08.2005
Сообщений: 730
Провел на форуме: 6828219
Репутация:
2274
|
|
[stranger], да не, мне подсчитать надо кол-во заполненых элементов в массиве
PHP код:
function test_array(somearray : array of string) : boolean;
begin
ShowMessage(somearray[1]);
Result := True;
end;
PHP код:
users[1] := 'fhruthghgfh';
test_array(users);
массивы разные ваще получается... 
|
|
|

21.04.2010, 15:00
|
|
Участник форума
Регистрация: 02.02.2010
Сообщений: 107
Провел на форуме: 612028
Репутация:
28
|
|
Код:
function count_array(array1 : array of string) : integer;
var i: Integer;
begin
Result := 0;
for i := 0 to length(array1) - 1 do
if array1[i] <> '' then inc(Result);
end;
выводит количество непустых элементов массива
Последний раз редактировалось [stranger]; 21.04.2010 в 15:04..
|
|
|

21.04.2010, 15:02
|
|
Постоянный
Регистрация: 25.07.2008
Сообщений: 454
Провел на форуме: 1229135
Репутация:
425
|
|
Ponchik: вот правильней функция, т.к. границы массива не даны сначала
PHP код:
function count_array(array1: array of string): integer;
var
i: Integer;
begin
for i := Low(array1) to High(array1) do
begin
if array1[i] = '' then
begin
Result := i;
ShowMessage(IntToStr(i) + ':' + array1[i]);
Break;
end;
end;
end;
при том, что максимальное значение i будет являться 49 =\
т.е. когда ты записал array[1]:='1234123123'
то в функции это значение будет под индексом 0
Последний раз редактировалось AlexTheC0d3r; 21.04.2010 в 15:05..
|
|
|

21.04.2010, 15:04
|
|
Участник форума
Регистрация: 20.12.2008
Сообщений: 277
Провел на форуме: 828081
Репутация:
84
|
|
Ты передаешь в функцию динамический массив, отсчет в нем идет с нуля !!
function test_array(somearray : array of string) : boolean;
begin
ShowMessage(somearray[ 0]);
Result := True;
end;
users[1] := 'fhruthghgfh';
test_array(users);
Когда я писал, твоего поста не было еще
Пончик если работаешь со списками строк то лучше использовать TstringList. В нем сеть и поиск строки, и ассоциатывные спикси можно задавать. Возможностей много в общем.
Последний раз редактировалось GhostOnline; 21.04.2010 в 15:14..
|
|
|

21.04.2010, 15:05
|
|
Постоянный
Регистрация: 25.07.2008
Сообщений: 454
Провел на форуме: 1229135
Репутация:
425
|
|
Сообщение от GhostOnline
Ты передаешь в функцию динамический массив, отсчет в нем идет с нуля !!
function test_array(somearray : array of string) : boolean;
begin
ShowMessage(somearray[0]);
Result := True;
end;
users[1] := 'fhruthghgfh';
test_array(users);
я о том-же
|
|
|

21.04.2010, 15:16
|
|
Постоянный
Регистрация: 30.08.2005
Сообщений: 730
Провел на форуме: 6828219
Репутация:
2274
|
|
т.е. когда ты записал array[1]:='1234123123'
то в функции это значение будет под индексом 0
Какого хера О_о Я ему указываю 1 почему он в 0 записывает
================
Юзаю функцию AlexTheC0d3r
PHP код:
count_array(users);
users[1] := 'ras';
count_array(users);
users[2] := 'dva';
count_array(users);
users[3] := 'tri';
count_array(users);
выдаёт месаги
0:
1:
2:
3:
Считает, но какое значение там - невидет
Если сделать

вот... хрень какая-то 
==========
ыть, туплю... if array1[i] = '' then... естествено оно значение мне выдавать небудет 
Рабоооотааееееттт
/me ПЛЯСКЕ ПЛЯСКЕ!!!
Всем по +5
но я вернусь
Последний раз редактировалось Ponchik; 21.04.2010 в 15:27..
|
|
|

21.04.2010, 15:56
|
|
Reservists Of Antichat - Level 6
Регистрация: 12.02.2006
Сообщений: 891
Провел на форуме: 1892597
Репутация:
836
|
|
мля Пончик, кому я говорил что индексация с нуля идет? =\
__________________
*********************************
*Я не волшебник ٩(๏̯͡๏)۶, только учусь...*
*********************************
Программы на заказ
Times to fly...
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|