[ Delphi / Pascal ] — начинающим: задаем вопросы (архивная - 2015)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by banned, 6 May 2007.

Thread Status:
Not open for further replies.
  1. GhostOnline

    GhostOnline Active Member

    Joined:
    20 Dec 2008
    Messages:
    723
    Likes Received:
    110
    Reputations:
    22
    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] := '';
     
    #5901 GhostOnline, 21 Apr 2010
    Last edited: 21 Apr 2010
  2. [stranger]

    [stranger] Member

    Joined:
    2 Feb 2010
    Messages:
    167
    Likes Received:
    29
    Reputations:
    4


    если я правильно понял у тебя при попадании на пустой элемент массива result`у присваивается значение.. попробуй в else обнулять result

    и первый элемент массива 0, а не 1..
     
  3. Ponchik

    Ponchik Хлебо-булочное изделие

    Joined:
    30 Aug 2005
    Messages:
    687
    Likes Received:
    807
    Reputations:
    311
    да, массив я изменил
    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 работает ваще или нет :confused:
     
    #5903 Ponchik, 21 Apr 2010
    Last edited: 21 Apr 2010
  4. [stranger]

    [stranger] Member

    Joined:
    2 Feb 2010
    Messages:
    167
    Likes Received:
    29
    Reputations:
    4
    Code:
    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;
    
    так что ли?


    Code:
    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..
     
    #5904 [stranger], 21 Apr 2010
    Last edited: 21 Apr 2010
  5. Ponchik

    Ponchik Хлебо-булочное изделие

    Joined:
    30 Aug 2005
    Messages:
    687
    Likes Received:
    807
    Reputations:
    311
    [stranger], да не, мне подсчитать надо кол-во заполненых элементов в массиве

    PHP:
    function test_array(somearray : array of string) : boolean;
    begin 
      ShowMessage
    (somearray[1]);
      
    Result := True;
    end;

    PHP:
          users[1] := 'fhruthghgfh';
          
    test_array(users);
    [​IMG]

    массивы разные ваще получается... :confused:
     
  6. [stranger]

    [stranger] Member

    Joined:
    2 Feb 2010
    Messages:
    167
    Likes Received:
    29
    Reputations:
    4
    Code:
    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;
    
    выводит количество непустых элементов массива
     
    #5906 [stranger], 21 Apr 2010
    Last edited: 21 Apr 2010
    1 person likes this.
  7. AlexTheC0d3r

    AlexTheC0d3r Elder - Старейшина

    Joined:
    25 Jul 2008
    Messages:
    388
    Likes Received:
    179
    Reputations:
    18
    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
     
    #5907 AlexTheC0d3r, 21 Apr 2010
    Last edited: 21 Apr 2010
  8. GhostOnline

    GhostOnline Active Member

    Joined:
    20 Dec 2008
    Messages:
    723
    Likes Received:
    110
    Reputations:
    22
    Ты передаешь в функцию динамический массив, отсчет в нем идет с нуля !!
    function test_array(somearray : array of string) : boolean;
    begin
    ShowMessage(somearray[0]);
    Result := True;
    end;
    users[1] := 'fhruthghgfh';
    test_array(users);

    Когда я писал, твоего поста не было еще :)

    Пончик если работаешь со списками строк то лучше использовать TstringList. В нем сеть и поиск строки, и ассоциатывные спикси можно задавать. Возможностей много в общем.
     
    #5908 GhostOnline, 21 Apr 2010
    Last edited: 21 Apr 2010
    1 person likes this.
  9. AlexTheC0d3r

    AlexTheC0d3r Elder - Старейшина

    Joined:
    25 Jul 2008
    Messages:
    388
    Likes Received:
    179
    Reputations:
    18
    я о том-же
     
    1 person likes this.
  10. Ponchik

    Ponchik Хлебо-булочное изделие

    Joined:
    30 Aug 2005
    Messages:
    687
    Likes Received:
    807
    Reputations:
    311
    Какого хера О_о Я ему указываю 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:
    Считает, но какое значение там - невидет :eek:
    Если сделать
    [​IMG]
    вот... хрень какая-то :mad:
    ==========
    ыть, туплю... if array1 = '' then... естествено оно значение мне выдавать небудет :D
    Рабоооотааееееттт
    /me ПЛЯСКЕ ПЛЯСКЕ!!!
    Всем по +5
    но я вернусь
     
    #5910 Ponchik, 21 Apr 2010
    Last edited: 21 Apr 2010
  11. W!z@rD

    W!z@rD Борец за русский язык

    Joined:
    12 Feb 2006
    Messages:
    973
    Likes Received:
    290
    Reputations:
    43
    мля Пончик, кому я говорил что индексация с нуля идет? =\
     
  12. Ponchik

    Ponchik Хлебо-булочное изделие

    Joined:
    30 Aug 2005
    Messages:
    687
    Likes Received:
    807
    Reputations:
    311
    Ну в проге с 1 а в функциях с 0 и в проге надо после функции +1 делать, откуда я мог знать что тут такое извращение :eek:
    И ещё... Как узнать делится-ли чисто без остатка или нет?
    Ну типа % в пыхе
    Хотя и сам догадываюсь if (Round(i/3) = i/3)
     
    #5912 Ponchik, 21 Apr 2010
    Last edited: 21 Apr 2010
  13. fenixelite

    fenixelite Banned

    Joined:
    7 Feb 2010
    Messages:
    294
    Likes Received:
    56
    Reputations:
    6
    Ponchik ты точно извращенец :D :D
    if i mod 3 = 0 :)
     
    1 person likes this.
  14. Voland-791

    Voland-791 Member

    Joined:
    1 May 2009
    Messages:
    163
    Likes Received:
    13
    Reputations:
    5
    Нужен исходник для компиляции из memo в *.exe файл возможно ли его найти??
     
  15. [stranger]

    [stranger] Member

    Joined:
    2 Feb 2010
    Messages:
    167
    Likes Received:
    29
    Reputations:
    4
    нет!

    ЗЫ: brcc32.exe
    при условии что мемо находится в Notepad`е :rolleyes:
     
  16. stepashka_

    stepashka_ Мотоциклист

    Joined:
    9 Nov 2009
    Messages:
    1,022
    Likes Received:
    423
    Reputations:
    234
    Дельфи.
    Подскажите какая indy лучше 7 или 10?
     
  17. aydar

    aydar Member

    Joined:
    12 Nov 2009
    Messages:
    259
    Likes Received:
    6
    Reputations:
    -2
  18. [stranger]

    [stranger] Member

    Joined:
    2 Feb 2010
    Messages:
    167
    Likes Received:
    29
    Reputations:
    4
    учи winsock и не мучайся..
     
  19. stepashka_

    stepashka_ Мотоциклист

    Joined:
    9 Nov 2009
    Messages:
    1,022
    Likes Received:
    423
    Reputations:
    234
    чем он лучше?
     
  20. [stranger]

    [stranger] Member

    Joined:
    2 Feb 2010
    Messages:
    167
    Likes Received:
    29
    Reputations:
    4
    буквально ВСЕМ!
    да, использовать сложнее, но это окупается стабильностью, скоростью работы и полным контролем работы с сетью..
     
Thread Status:
Not open for further replies.