[ 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. arnis

    arnis Member

    Joined:
    30 Jan 2011
    Messages:
    280
    Likes Received:
    23
    Reputations:
    0
    Если не секрет, а что тебя смутило в первом варианте?
     
  2. patcher

    patcher Banned

    Joined:
    15 Dec 2009
    Messages:
    190
    Likes Received:
    37
    Reputations:
    10
    Ага. Турбо Паскаль 5.0 - точно нету, так же как и в Фри Паскале
     
  3. InfectedM

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

    Joined:
    4 Nov 2007
    Messages:
    155
    Likes Received:
    12
    Reputations:
    0
    помогите с конвертом даты
    пишит неверный формат даты.
    Что за шляпа?
     
  4. arnis

    arnis Member

    Joined:
    30 Jan 2011
    Messages:
    280
    Likes Received:
    23
    Reputations:
    0
    Не знал, правда я в 99 учил 7.0
     
  5. sidapas23

    sidapas23 New Member

    Joined:
    13 Nov 2010
    Messages:
    88
    Likes Received:
    2
    Reputations:
    -3
    Скажите в чем ошибка:
    Код Delphi
    procedure TForm1.ComboBox1Change(Sender: TObject);
    var
    str: TStringlist;
    i: integer;
    a,c: real;
    begin;
    if combobox1.Text='Гео' then
    memo1.Clear;
    memo1.Lines.LoadFromFile('Geo.txt')
    c:= 0;
    str:= TStringlist.Create;
    str.LoadFromFile('Geometr.txt');
    for I := 0 to str.Count - 1 do
    begin

    a:= strtoFloat(str.Strings);
    c:= c+a;
    end;
    Label3.Caption:=FloattoStr(c/str.Count);
    end;

    вот какую ошибку выдает [Error] Unit1.pas(94): Missing operator or semicolon
     
  6. arnis

    arnis Member

    Joined:
    30 Jan 2011
    Messages:
    280
    Likes Received:
    23
    Reputations:
    0
    Точка запятая после первого бегина лишняя
     
    2 people like this.
  7. valeon

    valeon New Member

    Joined:
    26 Jun 2010
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    Подскажите, как загружать файл в потоке на множество фтп?
    procedure TThread.Execute;
    ...
    FIdFTP.Connect;
    if FIdFTP.Connected then
    ...
    FIdFTP.Put('С:\1.тхт', '1.txt');
    ...

    чтобы потокобезопасно и было без сбоев?
    не брать же каждый раз один и тот же файл в потоке.
     
  8. arnis

    arnis Member

    Joined:
    30 Jan 2011
    Messages:
    280
    Likes Received:
    23
    Reputations:
    0
    В начале потока загружай в стрим и на фтп уже грузи из стрима.
    Или создавай временный файл для каждого потока с уникальным именем и загружай уже временный файл.
     
  9. #Smith

    #Smith New Member

    Joined:
    20 Jun 2010
    Messages:
    96
    Likes Received:
    2
    Reputations:
    0
    Друзья, нужна помощь!

    Подскажите, где промашку сделал?
    Заморочился с property и мне нужно, чтобы было значение поумолчанию.
    Но вот не получается.

    Кстати, в какую секцию лучше свойства писать, в public или published?

    Исходник:
    Code:
    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;
    
    type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        FID: Integer;
      public
        property ID: Integer read FID write FID default 10;
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      ShowMessageFmt('ID = %d', [ID]);
    end;
    
    end.
     
    #7789 #Smith, 17 Feb 2011
    Last edited: 17 Feb 2011
  10. arnis

    arnis Member

    Joined:
    30 Jan 2011
    Messages:
    280
    Likes Received:
    23
    Reputations:
    0
    Спецификатор default указывает сохранять значение свойства в файле формы или нет. Если значение свойства совпадает со значением default - значение в файле формы не сохраняется, если значения не равны - сохраняется.
    Default не устанавливает первоначальное значение свойства к указанному. Это необходимо сделать в конструкторе компонента.
     
  11. GhostOnline

    GhostOnline Active Member

    Joined:
    20 Dec 2008
    Messages:
    723
    Likes Received:
    110
    Reputations:
    22
    #Smith устанавливай поле FID в нужное значние на OnCreate формы
     
  12. dos999

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

    Joined:
    15 Feb 2008
    Messages:
    137
    Likes Received:
    24
    Reputations:
    0
    arnis прав
    Code:
    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;
    
    type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        FID: Integer;
      public
        property ID: Integer read FID write FID;
        constructor Create;
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    constructor TForm1.Create;
    begin
      inherited Create;
      FID := 10;
    end;
    
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      ShowMessageFmt('ID = %d', [ID]);
    end;
    
    end.
    
    смотря для чего использовать будешь в дальнейшем.
     
    #7792 dos999, 18 Feb 2011
    Last edited: 18 Feb 2011
  13. GhostOnline

    GhostOnline Active Member

    Joined:
    20 Dec 2008
    Messages:
    723
    Likes Received:
    110
    Reputations:
    22
    Нет смысла определять конструктор однако, только ради того чтобы одно поле выставить? оО
    обработчик то составить проще
     
  14. dos999

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

    Joined:
    15 Feb 2008
    Messages:
    137
    Likes Received:
    24
    Reputations:
    0
    зависит от ситуации. согласен в большинстве случаев подойдёт и FormCreate.
     
  15. GhostOnline

    GhostOnline Active Member

    Joined:
    20 Dec 2008
    Messages:
    723
    Likes Received:
    110
    Reputations:
    22
    тут все просто:
    если он пишет компонент производный от ТФорм то конструктор, а если просто инициализировать свойства/поля
    которые доступны извне - то ФормКреате.
    Но я сомневаюсь что он пишет компонент =)
     
  16. kriperS

    kriperS New Member

    Joined:
    6 Sep 2010
    Messages:
    15
    Likes Received:
    0
    Reputations:
    0
    в с4 эге по информатике есть такая задача
    PHP:
    На вход программе подается набор символовзаканчивающийся точкой
    (в программе на языке Бейсик символы можно вводить по одному в строке,
    пока не будет введена точкаили считывать данные из файла). Напишите
    эффективную
    в том числе и по используемой памятипрограмму (укажите
    используемую версию языка программирования
    напримерBorland Pascal
    7.0
    ), которая сначала будет определятьесть ли в этом наборе символы,
    соответствующие десятичным цифрамЕсли такие символы естьто можно
    ли переставить их так
    чтобы полученное число было симметричным
    (читалось одинаково как слева направотак и справа налево). Ведущих
    нулей в числе быть не должно
    исключение – число 0запись которого
    содержит ровно один ноль
    .
    Если требуемое число составить невозможното программа должна вывести
    на экран слово “NO”
    А если возможното в первой строке следует вывести
    слово “YES”
    а во второй – искомое симметричное числоЕсли таких чисел
    несколько
    то программа должна выводить максимальное из нихНапример,
    пусть на вход подаются следующие символы:
    Do 
    not 911 to 09 do.
    В данном случае программа должна вывести
    YES
    91019
    и дается решение которое я совсем не понимаю ><

    PHP:
    var a:array['0'..'9'of integer;      {разве в масиве с типом интежер можно ставить апострафы?}
    cc_oddchar;
    ikinteger;
    fboolean;
    begin
    for c:='0' to '9' do a[c]:=0; {как работает перебирание масива с апострафами }
    read(с);
    while 
    c<>'.' do
    begin
    if c in ['0' .. '9'then a[c] := a[c] + 1;     {что делает оператор in}
    read(c);
    end;
    := 0;
    for 
    := '0' to '9' do
    if 
    a[cmod 2 1 then
    begin
    := 1;
    c_odd := c
    end
    ;
    := (a['0'] = 1);
    for 
    := '1' to '9' do
    if (
    a[c] > 1) or (a[c] = 1) and (a['0'] = 0then f := true;
    if (
    1)or not f then writeln('NO') else
    begin
    writeln
    ('YES');
    for 
    := '9' downto '0' do
    for 
    := 1 to a[cdiv 2 do
    write(c);
    if 
    1 then
    write
    (c_odd);
    for 
    := '0' to '9' do
    for 
    := 1 to a[cdiv 2 do
    write(c);
    end
    end
    .
    в коментах написал что именно не понятно , если кто то обьяснит или кинет ссылки где про это рассказывается буду благодарен ><
     
  17. kriperS

    kriperS New Member

    Joined:
    6 Sep 2010
    Messages:
    15
    Likes Received:
    0
    Reputations:
    0
    в с4 эге по информатике есть такая задача
    PHP:
    На вход программе подается набор символовзаканчивающийся точкой
    (в программе на языке Бейсик символы можно вводить по одному в строке,
    пока не будет введена точкаили считывать данные из файла). Напишите
    эффективную
    в том числе и по используемой памятипрограмму (укажите
    используемую версию языка программирования
    напримерBorland Pascal
    7.0
    ), которая сначала будет определятьесть ли в этом наборе символы,
    соответствующие десятичным цифрамЕсли такие символы естьто можно
    ли переставить их так
    чтобы полученное число было симметричным
    (читалось одинаково как слева направотак и справа налево). Ведущих
    нулей в числе быть не должно
    исключение – число 0запись которого
    содержит ровно один ноль
    .
    Если требуемое число составить невозможното программа должна вывести
    на экран слово “NO”
    А если возможното в первой строке следует вывести
    слово “YES”
    а во второй – искомое симметричное числоЕсли таких чисел
    несколько
    то программа должна выводить максимальное из нихНапример,
    пусть на вход подаются следующие символы:
    Do 
    not 911 to 09 do.
    В данном случае программа должна вывести
    YES
    91019
    и дается решение которое я совсем не понимаю ><

    PHP:
    var a:array['0'..'9'of integer;      {разве в масиве с типом интежер можно ставить апострафы?}
    cc_oddchar;
    ikinteger;
    fboolean;
    begin
    for c:='0' to '9' do a[c]:=0; {как работает перебирание масива с апострафами }
    read(с);
    while 
    c<>'.' do
    begin
    if c in ['0' .. '9'then a[c] := a[c] + 1;     {что делает оператор in}
    read(c);
    end;
    := 0;
    for 
    := '0' to '9' do
    if 
    a[cmod 2 1 then
    begin
    := 1;
    c_odd := c
    end
    ;
    := (a['0'] = 1);
    for 
    := '1' to '9' do
    if (
    a[c] > 1) or (a[c] = 1) and (a['0'] = 0then f := true;
    if (
    1)or not f then writeln('NO') else
    begin
    writeln
    ('YES');
    for 
    := '9' downto '0' do
    for 
    := 1 to a[cdiv 2 do
    write(c);
    if 
    1 then
    write
    (c_odd);
    for 
    := '0' to '9' do
    for 
    := 1 to a[cdiv 2 do
    write(c);
    end
    end
    .
    в коментах написал что именно не понятно , если кто то обьяснит или кинет ссылки где про это рассказывается буду благодарен ><
     
  18. $Robin

    $Robin Member

    Joined:
    25 Jun 2010
    Messages:
    47
    Likes Received:
    5
    Reputations:
    0
    1) Да, можно. В аппострофах не сами элементы, а их ключи, соответственно ключи типа char, а элементы типа integer
    2) Так же как и с integer, только по символам с='0' , '1', ... , '9'
    3) Проверяет находится ли элемент в заданном множестве. Т.е. Проверяет является ли значение 'с' одним из символов ['0' .. '9']. Можно погуглить про множества в паскале.
     
  19. InfectedM

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

    Joined:
    4 Nov 2007
    Messages:
    155
    Likes Received:
    12
    Reputations:
    0
    Юзаю компонент HTTPSend
    Как в нем отключить прием тела страницы?
    Нужно отправить post и принять только заголовок что бы скорость была выше...
    Можно там такое сделать, не могу найти чета
     
  20. life:)

    life:) Banned

    Joined:
    9 Sep 2010
    Messages:
    98
    Likes Received:
    18
    Reputations:
    8
    Ребята помоги,мучаюсь не как не могу организовать авторизацию вконтакте и например поменять статус,или оставить сообщение на стене...Или посоветуйте что нибудь...
     
Thread Status:
Not open for further replies.