[ 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. Chrome~

    Chrome~ Elder - Старейшина

    Joined:
    13 Dec 2008
    Messages:
    936
    Likes Received:
    162
    Reputations:
    27
    Может быть нужно записывать так:
    Code:
    case с[1] of
     
  2. StealthMaster

    StealthMaster Member

    Joined:
    3 Dec 2008
    Messages:
    52
    Likes Received:
    11
    Reputations:
    0
    В вашем в коде (case с of) записана русская буква С, вместо английской C, поэтому, вероятно, и ругается даже при смене типов переменных.

    Код, который будет работать:

    Code:
    function ABC(par: char): string;
    begin
      case par of
        'A': begin
                Result := 'lalala';
             end;
    
        'B': begin
                Result := 'ololo';
             end;
      end; // case
    end; // ABC
    
    Если в качестве параметра функции передается только 1 символ, то логично использовать тип Char, нежели String.
     
    #4502 StealthMaster, 28 Oct 2009
    Last edited: 28 Oct 2009
  3. Nick_Rimer

    Nick_Rimer New Member

    Joined:
    12 May 2008
    Messages:
    19
    Likes Received:
    1
    Reputations:
    0
    ну, знаете, я не настолько дурак, чтобы писать переменные в делфи по-русски :)

    я тоже думал о том, чтобы передавать char, но ситуация такова, что я должен преобразовать тип string в тип char, а именно это у меня что-то не выходит..
     
  4. StealthMaster

    StealthMaster Member

    Joined:
    3 Dec 2008
    Messages:
    52
    Likes Received:
    11
    Reputations:
    0
    Используйте функцию, написанную выше, вызванную так:
    Code:
    ...
    var
      str1, str2: string;
      n: byte;
    begin
      ... // вычисление нужной строки и номера нужного символа в строке (n)
      str2 := ABC(str1[n]);
      ...
    end;
    
    каждый может ошибиться :) мы же люди, а не машины.
     
    #4504 StealthMaster, 28 Oct 2009
    Last edited: 28 Oct 2009
    1 person likes this.
  5. Nick_Rimer

    Nick_Rimer New Member

    Joined:
    12 May 2008
    Messages:
    19
    Likes Received:
    1
    Reputations:
    0
    А вот теперь мы возвращаемся к тому, с чего я начал!!!
    Нельзя организовать оператор case перебором по string.
    Он ругается, что ему нужен ordinal type.
    Char бы подошел.. но я в тупике, и не могу понять, что делать, думать что-то вместо case или преобразовывать string во что-то другое, "более числовое" :)

    ------------------------

    Все, вопрос снят, проблема решена!

    str: string; с: char; i: byte - переменная цикла for;
    c:=str;
    ABC(c);

    все работает :)
     
    #4505 Nick_Rimer, 28 Oct 2009
    Last edited: 28 Oct 2009
  6. [Abbath]

    [Abbath] Member

    Joined:
    1 Oct 2009
    Messages:
    43
    Likes Received:
    19
    Reputations:
    5
    Значит такой вопросик :
    есть Тмемо в который водят в столбик цифры от 4 до 9 знаков
    внизу есть еще 6 Тмемо
    Нужно чтоб эти цифры(которые в столбик)
    сортировались в те 6 Тмемо
    по такому принцыпу:
    в 1Тмемо цифры из 4х знаков
    в 2Тмемо цифры из 5 и тд до 9
    вродебы реализовал а почемуто несортирует он их(

    прошу помочь с реализацией в Делфи7
     
  7. slesh

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

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    Code:
    var
     x : integer;
    begin
     for x := 0 to memo1.Lines.Count-1 do
     begin
      case length(memo1.Lines.Strings[x]) of
        4:memo2.lines.add(memo1.Lines.Strings[x]);
        5:memo3.lines.add(memo1.Lines.Strings[x]);
        6:memo4.lines.add(memo1.Lines.Strings[x]);
        7:memo5.lines.add(memo1.Lines.Strings[x]);
        8:memo6.lines.add(memo1.Lines.Strings[x]);
        9:memo7.lines.add(memo1.Lines.Strings[x]);
      end;
     end;
    end;
    
     
  8. [Abbath]

    [Abbath] Member

    Joined:
    1 Oct 2009
    Messages:
    43
    Likes Received:
    19
    Reputations:
    5
    а где критерии что если длина 4 символа то в 4мемо и тд?
     
  9. slesh

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

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    >>>>>>>> 4:memo2.lines.add(memo1.Lines.Strings[x]); <<<<<<<<<<<,
    мемо1 - там данные.
    мемо2 - для 4
    мемо3- для 5 итд
     
  10. [Abbath]

    [Abbath] Member

    Joined:
    1 Oct 2009
    Messages:
    43
    Likes Received:
    19
    Reputations:
    5
    блин спс огромное ща попробую=)
     
  11. Adekvatnyj

    Adekvatnyj Member

    Joined:
    28 Oct 2009
    Messages:
    18
    Likes Received:
    25
    Reputations:
    -3
    Какая стратегия изучения Дельфи? Сначала выучить турбо паскаль 7.0 потом дельфи?
    Или может сначала бейсик а потом дельфи, или бейсик - тпаскаль - дельфи?
     
  12. intNet

    intNet Member

    Joined:
    31 May 2009
    Messages:
    29
    Likes Received:
    14
    Reputations:
    5
    Ага.
     
  13. [Abbath]

    [Abbath] Member

    Joined:
    1 Oct 2009
    Messages:
    43
    Likes Received:
    19
    Reputations:
    5
    плин опять столкнулся с почти такого же рода проблемой нос разу задам пару вопросов чтоб не мучать несколько раз
    1) есть строка из цифр затем знак ; и после него вместе с ним надо удолить все из строки
    опять же во всех строках Тмемо
    2)Есть Столбец цифр нужно расположить их в те же 6 мемо по кол-ву повторяемых цифр тоест
    например 72377728738 вот тут повторение цифры 7 допустим 5 раз надо значит вывести в мемо5
    66628266986666 тут больше 6к 9 штук в Мемо9 и вот так чтоб он с каждым номером в столбце начиная от повторения там 4х цифр так как длина числа максимум будет 9 символов
     
  14. Adekvatnyj

    Adekvatnyj Member

    Joined:
    28 Oct 2009
    Messages:
    18
    Likes Received:
    25
    Reputations:
    -3
    А delphi в webe это совсем отдельная штука от простого дельфи?
     
  15. transserg

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

    Joined:
    2 Jul 2008
    Messages:
    147
    Likes Received:
    25
    Reputations:
    2
    есть такой тупой вопрос как объявить такой тип данных если возможно
    Code:
      _ParM= packed record
        Menu:string;
        SubMenu:Array of _ParM;
        Index:Integer;
      end;
    
    среда ругается на такое объявление.
     
  16. slesh

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

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    А ты его не сможеш объявить потому что он рекурсивный, тоесть сам в себе.
    Другое дело еслибы переменная SubMenu былабы ссылкой на массив.
     
    #4516 slesh, 29 Oct 2009
    Last edited: 29 Oct 2009
  17. wolmer

    wolmer Member

    Joined:
    12 May 2009
    Messages:
    438
    Likes Received:
    97
    Reputations:
    9
    Такой вопрос...
    Сделал многопоточное прил. для работы с интернетом, запускаю...
    При старте потоков выск. ошибка и пишется "Invalid pointer operation"
    При 2 потоках (до этого ставил 4) все нормально работает! И еще тут есть такой ньюанс что иногда пашет и с 4 потоками

    Что может быть не так что вылетает такая ошибка? (чувствую что что-то не так намутил с крит. секциями (но не точно предпологаю))
     
  18. Absinthe

    Absinthe Member

    Joined:
    15 Feb 2009
    Messages:
    75
    Likes Received:
    90
    Reputations:
    0
    StringGrid

    Привет Всем!
    Вот такой вопрос.
    Есть StringGrid/ В нём много ячеек. Нужно записать значение 2-6 edit'ов в ячейки таблицы StringGrid. ( В строчку)
    Причем это делать много раз ... и чтобы ранние значения не были заменены на новые
    Они должны сохраняться из базы ( xls файл )
    :rolleyes: :confused:
     
  19. 0ldbi4

    0ldbi4 Elder - Старейшина

    Joined:
    14 Apr 2008
    Messages:
    264
    Likes Received:
    51
    Reputations:
    10
    Вспомнил про возможность сокрытия информации в потоке
    type info >> file.xxx:stream1
    не кто не знает как это реализовать на делфи?
     
  20. slesh

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

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    Code:
    var
     f:textfile;
     s:string;
    begin
     assignfile(f, 'e:\test.txt:strem1');
     rewrite(f);
     write(f,'hello222222222');
     closefile(f);
    
     assignfile(f, 'e:\test.txt:strem1');
     reset(f);
     read(f,s);
     closefile(f);
     ShowMessage(s);
    
     
    1 person likes this.
Thread Status:
Not open for further replies.