ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #6221  
Старый 21.04.2010, 14:49
Аватар для [stranger]
[stranger]
Участник форума
Регистрация: 02.02.2010
Сообщений: 107
Провел на форуме:
612028

Репутация: 28
Отправить сообщение для [stranger] с помощью ICQ
По умолчанию

Цитата:
if array1[i] = '' then
begin
Result := i;
ShowMessage(IntToStr(i)+':'+array1[i]);
Break;
end;
если я правильно понял у тебя при попадании на пустой элемент массива result`у присваивается значение.. попробуй в else обнулять result

и первый элемент массива 0, а не 1..
 
Ответить с цитированием

  #6222  
Старый 21.04.2010, 14:52
Аватар для Ponchik
Ponchik
Постоянный
Регистрация: 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..
 
Ответить с цитированием

  #6223  
Старый 21.04.2010, 14:56
Аватар для [stranger]
[stranger]
Участник форума
Регистрация: 02.02.2010
Сообщений: 107
Провел на форуме:
612028

Репутация: 28
Отправить сообщение для [stranger] с помощью ICQ
По умолчанию

Код:
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..
 
Ответить с цитированием

  #6224  
Старый 21.04.2010, 14:59
Аватар для Ponchik
Ponchik
Постоянный
Регистрация: 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); 


массивы разные ваще получается...
 
Ответить с цитированием

  #6225  
Старый 21.04.2010, 15:00
Аватар для [stranger]
[stranger]
Участник форума
Регистрация: 02.02.2010
Сообщений: 107
Провел на форуме:
612028

Репутация: 28
Отправить сообщение для [stranger] с помощью ICQ
По умолчанию

Код:
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..
 
Ответить с цитированием

  #6226  
Старый 21.04.2010, 15:02
Аватар для AlexTheC0d3r
AlexTheC0d3r
Постоянный
Регистрация: 25.07.2008
Сообщений: 454
Провел на форуме:
1229135

Репутация: 425
Отправить сообщение для AlexTheC0d3r с помощью ICQ
По умолчанию

Ponchik: вот правильней функция, т.к. границы массива не даны сначала
PHP код:
function count_array(array1: array of string): integer;
var
  
iInteger;
begin
  
for := Low(array1to 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..
 
Ответить с цитированием

  #6227  
Старый 21.04.2010, 15:04
Аватар для GhostOnline
GhostOnline
Участник форума
Регистрация: 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..
 
Ответить с цитированием

  #6228  
Старый 21.04.2010, 15:05
Аватар для AlexTheC0d3r
AlexTheC0d3r
Постоянный
Регистрация: 25.07.2008
Сообщений: 454
Провел на форуме:
1229135

Репутация: 425
Отправить сообщение для AlexTheC0d3r с помощью ICQ
По умолчанию

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

  #6229  
Старый 21.04.2010, 15:16
Аватар для Ponchik
Ponchik
Постоянный
Регистрация: 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..
 
Ответить с цитированием

  #6230  
Старый 21.04.2010, 15:56
Аватар для W!z@rD
W!z@rD
Reservists Of Antichat - Level 6
Регистрация: 12.02.2006
Сообщений: 891
Провел на форуме:
1892597

Репутация: 836


Отправить сообщение для W!z@rD с помощью ICQ
По умолчанию

мля Пончик, кому я говорил что индексация с нуля идет? =\
__________________
*********************************
*Я не волшебник ٩(๏̯͡๏)۶, только учусь...*
*********************************
Программы на заказ
Times to fly...
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Wi-Fi, BT] Задай вопрос - получи ответ! Alexsize Беспроводные технологии/WPAN/WLAN 2564 06.04.2026 23:31
[ *NIX ] Задай вопрос - получи ответ. Xszz *nix 1547 15.06.2010 15:41
[jQuery] - Задай вопрос, получи ответ Isis PHP, PERL, MySQL, JavaScript 62 25.12.2009 03:25
ЕсТь ВоПрос Guma Чаты 4 26.10.2005 21:48



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ