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

  #6211  
Старый 21.04.2010, 13:38
Аватар для EndLeSSDre@M
EndLeSSDre@M
Участник форума
Регистрация: 18.07.2009
Сообщений: 278
Провел на форуме:
3055344

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

Цитата:
Сообщение от Ponchik  
И ещё... Может можно как-то не вбивать точное кол-во элементов, ну в смысле не
users: array[1..100] of string;
а
users: array[1..?] of string;
а потом какойнить count() считать количество, чоб не прогонять все 100 всёвремя
попробуй так:

PHP код:
massiv: array of integer;
begin
setLength
(massiv, <нужный размер>); 
или так:
PHP код:
const
5;
ArrStr : array[1..Nof String 
незнаю, может можно попробовать ввод N сделать до начала тела программы... надо будет попробовать
 
Ответить с цитированием

  #6212  
Старый 21.04.2010, 13:43
Аватар для Ponchik
Ponchik
Постоянный
Регистрация: 30.08.2005
Сообщений: 730
Провел на форуме:
6828219

Репутация: 2274


По умолчанию

Да вона код s0l_ir0n'а работат вродебе...
БЛЯТЬ! Что опять нетак?!
users[length(users)+1] := Nick;
[Error] irc.pas(116): Constant expression violates subrange bounds
и users[] := Nick; тоже не хочет

Последний раз редактировалось Ponchik; 21.04.2010 в 13:55..
 
Ответить с цитированием

  #6213  
Старый 21.04.2010, 14:11
Аватар для GhostOnline
GhostOnline
Участник форума
Регистрация: 20.12.2008
Сообщений: 277
Провел на форуме:
828081

Репутация: 84
По умолчанию

Цитата:
users[length(users)+1] := Nick;
У тебя массив имеет длину length(например 10) а ты хочешь присвоить значение
элементу с индексом length + 1(например 11) - т.е. несуществующему элементу
И у тебя кстати вроде статически массив объявлен

Последний раз редактировалось GhostOnline; 21.04.2010 в 14:15..
 
Ответить с цитированием

  #6214  
Старый 21.04.2010, 14:13
Аватар для Ponchik
Ponchik
Постоянный
Регистрация: 30.08.2005
Сообщений: 730
Провел на форуме:
6828219

Репутация: 2274


По умолчанию

няяя... Ну а как мне заполнять массив... Знач надо прогонять от 1 до length и смареть если значение пустое, знач туда писать, а как пустое смареть? empty() нету вродебе...
 
Ответить с цитированием

  #6215  
Старый 21.04.2010, 14:18
Аватар для GhostOnline
GhostOnline
Участник форума
Регистрация: 20.12.2008
Сообщений: 277
Провел на форуме:
828081

Репутация: 84
По умолчанию

Проверяем все ли заполнены:
for i := 0 to high(users) do
begin
if users[i] = '' then
............
end;
Заполняем:
for i := 0 to high(users) do
begin
users[i] := .............
end;
 
Ответить с цитированием

  #6216  
Старый 21.04.2010, 14:27
Аватар для buket
buket
Новичок
Регистрация: 07.04.2007
Сообщений: 27
Провел на форуме:
338084

Репутация: -8
По умолчанию

подскажите как правильно создавать и очищать динамический массив

я в начале цикла объявляю длину массива так setlength(массив, длина); а в конце цикла пытаюсь очистить массив так setlength(массив, 0); но при переходе в следующий цикл старые данные остаются и к ним добавляются новые данные

по некоторым советам пробовал еще в конце цикла делать так Finalize(массив); но результат без изменений

Последний раз редактировалось buket; 21.04.2010 в 14:32..
 
Ответить с цитированием

  #6217  
Старый 21.04.2010, 14:28
Аватар для Ponchik
Ponchik
Постоянный
Регистрация: 30.08.2005
Сообщений: 730
Провел на форуме:
6828219

Репутация: 2274


По умолчанию

PHP код:
function count_array(array1 : array of string) : integer;
var 
iInteger;
begin
  
for i:=1 to length(array1) do
  
begin
    
if array1[i] = '' then
    begin
      Result 
:= i;
      Break;
    
end;
  
end;
end
возвращает мне 1 хотя array1[1] := 'ololo';
должен 2 вернуть
====
млё... хрень какая-то... В программе array[1] = ololo а в функции = ''
чтоб руки повырывало создателям этого delphi

Последний раз редактировалось Ponchik; 21.04.2010 в 14:31..
 
Ответить с цитированием

  #6218  
Старый 21.04.2010, 14:32
Аватар для GhostOnline
GhostOnline
Участник форума
Регистрация: 20.12.2008
Сообщений: 277
Провел на форуме:
828081

Репутация: 84
По умолчанию

Все правильно, у тебя функция и вовращает- : integer;
var i: Integer;
Result := i;
Что же ты хотел? Как она вернет сроку сели она у тебя возвращает целое число?
Напиши что КОНКРЕТНО тебе нужно от функции

Цитата:
чтоб руки повырывало создателям этого delphi
LOL

Я тебе показал как правильно
for i := 0 to High(users)
Гоу вставлять код на pastebay.com

Последний раз редактировалось GhostOnline; 21.04.2010 в 14:36..
 
Ответить с цитированием

  #6219  
Старый 21.04.2010, 14:38
Аватар для Ponchik
Ponchik
Постоянный
Регистрация: 30.08.2005
Сообщений: 730
Провел на форуме:
6828219

Репутация: 2274


По умолчанию

PHP код:
      users[count_array(users)] := Nick;
      
count_array(users);
      
ShowMessage(users[count_array(users)]);
      
count_array(users); 
функция такая
PHP код:
function count_array(array1 : array of string) : integer;
var 
iInteger;
begin
  
for i:=1 to length(array1) do
  
begin
    
if array1[i] = '' then
    begin
      Result 
:= i;
      
ShowMessage(IntToStr(i)+':'+array1[i]);
      Break;
    
end;
  
end;
end
Выдаёт следующие месаги:






Это как так... array[1] = Ponchik но всёравно оно 1 возвращает, да ещё и само говорит что там ничего нет
Цитата:
Сообщение от GhostOnline  
ебе показал как правильно
for i := 0 to High(users)
High = length
по крайней мере и то и то возвращает 50 да и не в этом трабла
>Что же ты хотел? Как она вернет сроку сели она у тебя возвращает целое число?
нахрен мне строка, мне надо число 2 чтоб вернуло, потомучто array[1] = 'Ponchik' знач не 1 надо возвращать, а 2
==============================
==============================
Чтоб было понятнее:
PHP код:
      users[1] := 'ТУТ ЕСТЬ СТРОКА СУКА!';
      
count_array(users); 
говорит

Я ничё непонимаю

Последний раз редактировалось Ponchik; 21.04.2010 в 14:48..
 
Ответить с цитированием

  #6220  
Старый 21.04.2010, 14:48
Аватар для GhostOnline
GhostOnline
Участник форума
Регистрация: 20.12.2008
Сообщений: 277
Провел на форуме:
828081

Репутация: 84
По умолчанию

users[count_array(users)] := Nick;
ShowMessage(users[count_array(users) - 1]);
ведь ты же уже изменил массив
У меня все работает:
PHP код:
procedure TMainForm.Button4Click(SenderTObject); 
var   
users : array of string;  
function 
count_array(array1 : array of string) : integer
var 
iInteger
begin   
for i:=1 to length(array1) do   
begin     
if array1[i] = '' then     
begin       
Result 
:= i;       
Break;     
end;   
end
end
begin   
SetLength
(users10);   
users[count_array(users)] := 'Ponchik';   ShowMessage(users[count_array(users)- 1]); 
end
Последння строка выдает сообщение с твоим ником, если убрать - 1 то пустое, что и правильно так как
users[2] := '';

Последний раз редактировалось GhostOnline; 21.04.2010 в 14:53..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[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