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

    sssr1 New Member

    Joined:
    8 Dec 2011
    Messages:
    19
    Likes Received:
    2
    Reputations:
    0
    подскажите программу которая максимально упростит создание бат файлов, чтоб команды русским языком писались и при нажатии создавались, как BatEditor только с более понятным и доступным не знающему программирования человеку.

    нужен скрипт который запустит программу, потом результат программы сохранит в папку и назовет текстовый файл временем его создания.

    1.ipscan.exe 192.168.0.1 192.168.2.2 - это задаст диапазон IP
    2. Нужно сохранить результат в папку Result в виде "18.54.txt" (18.54 - время создания)
    3. Из файла "18.54.txt" удалить все лишнее и оставить только IP адреса.

    результаты в "18.54.txt" сохраняются в виде:

    This file was generated by Angry IP Scanner
    Visit http://www.angryziber.com/ for the latest version


    Scanned 213.27.0.0 - 213.27.127.255 (Ports: 139)
    11.12.2011 15:55:05

    IP Ping Hostname Open Ports

    213.27.9.44 93 ms N/A 139[
     
  2. xophet

    xophet Member

    Joined:
    16 Apr 2011
    Messages:
    617
    Likes Received:
    49
    Reputations:
    5
    Ничерта не понял. а где расписано какие команды этот "батник" должен понимать?
    Че-то дальше по тексту я ни 1 слова по-русски не увидел
    Результат программы как выводится? если программа консольная, то запустите ее с параметром
    Code:
    >18.54.txt
    и все, что она выводит запишется в файл
    При чем судя по описанию Вам не нужен бат.файл, вам нужна готовая программа, при чем что она должны делать Вы описали весьма поверхностно.
     
  3. sssr1

    sssr1 New Member

    Joined:
    8 Dec 2011
    Messages:
    19
    Likes Received:
    2
    Reputations:
    0
    нужен код для БАТ файла который запустит программу, потом результат программы сохранит в папку и назовет текстовый файл временем его создания.

    1.ipscan.exe 192.168.0.1 192.168.2.2 - это задаст диапазон IP
    2. Нужно сохранить результат в папку Result в виде "18.54.txt" (18.54 - время создания)
    3. Из файла "18.54.txt" удалить все лишнее и оставить только IP адреса.

    результаты в "18.54.txt" сохраняются в виде:

    This file was generated by Angry IP Scanner
    Visit http://www.angryziber.com/ for the latest version


    Scanned 213.27.0.0 - 213.27.127.255 (Ports: 139)
    11.12.2011 15:55:05

    IP Ping Hostname Open Ports

    213.27.9.44 93 ms N/A 139

    а надо:

    213.27.9.44


    Программа сканер портов - результат выдает в ткст + она туда вставляет свою рекламу и порты с доп информацией. а надо чтоб просто ИП адреса оставались.
     
  4. xophet

    xophet Member

    Joined:
    16 Apr 2011
    Messages:
    617
    Likes Received:
    49
    Reputations:
    5
    А теперь внимание, ВОПРОС: при чем тут Bat.файлы к ветке форума с однозначным названием
    Программирование > С/С++, C#, Delphi, .NET, Asm > [ Delphi / Pascal ] — начинающим: задаем вопросы

    и я даже не спрашиваю как мы должны телепатически определить что за программа ipscan и как она данные то выводит.
     
  5. sssr1

    sssr1 New Member

    Joined:
    8 Dec 2011
    Messages:
    19
    Likes Received:
    2
    Reputations:
    0
    Angry IP Scanner
    не нашел я где спрашивать
    думаю тут должны знать
     
  6. Helium

    Helium New Member

    Joined:
    6 Jan 2010
    Messages:
    22
    Likes Received:
    3
    Reputations:
    0
    Но как?
     
  7. xophet

    xophet Member

    Joined:
    16 Apr 2011
    Messages:
    617
    Likes Received:
    49
    Reputations:
    5
    Кхм.
    Название модуля знаете?
    и вот после слов Programm project1;
    пишите uses Имя_Модуля;
     
  8. Helium

    Helium New Member

    Joined:
    6 Jan 2010
    Messages:
    22
    Likes Received:
    3
    Reputations:
    0
    http://zalil.ru/32254751
    Вот сам компонент, в папку с project скопировал BCPort.dcu, в uses добавил BCPort.
    Code:
    uses
      SysUtils,BCPort;
    var
      bcomport: tbcomport;
    
    begin
      bcomport := tbcomport.Create; // Create может принимать некоторые параметры
      // Выполняешь любые действия, работаешь с объектом bcomport
      bcomport.Free;
    end.
    Отказывается работать c ошибкой not enough actual parameters в строке
    Code:
    bcomport := tbcomport.Create;
    И, да, где собственно выставляется номер порта с которым я работаю?
     
  9. xophet

    xophet Member

    Joined:
    16 Apr 2011
    Messages:
    617
    Likes Received:
    49
    Reputations:
    5
    Программа как раз и ругается "не хватает параметров"
    Сейчас гляну компонент.
    Code:
    constructor Create(AOwner: TComponent); override;
    Это значит, что в конструкторе передается ссылка на компонент-хозяин.
    Т.К. у Вас компонетов нету, то делайте так:
    Code:
      bcomport := tbcomport.Create(nil);
    параметры работы с com-портом задаются в следующих свойствах объекта:
    Code:
        property BaudRate: TBaudRate read FBaudRate write SetBaudRate;
        property ByteSize: TByteSize read FByteSize write SetByteSize;
        property InBufSize: Integer read FInBufSize write SetInBufSize;
        property OutBufSize: Integer read FOutBufSize write SetOutBufSize;
        property Parity: TParity read FParity write SetParity;
        property Port: String read FPort write SetPort;
        property SyncMethod: TSyncMethod read FSyncMethod write SetSyncMethod;
        property StopBits: TStopBits read FStopBits write SetStopBits;
        property Timeouts: TComTimeouts read FTimeouts write SetTimeouts;
        property OnCTSChange: TComSignalEvent read FOnCTSChange write FOnCTSChange;
        property OnDSRChange: TComSignalEvent read FOnDSRChange write FOnDSRChange;
        property OnError: TComErrorEvent read FOnError write FOnError;
        property OnRing: TNotifyEvent read FOnRing write FOnRing;
        property OnRLSDChange: TComSignalEvent read FOnRLSDChange write FOnRLSDChange;
        property OnRx80Full: TNotifyEvent read FOnRx80Full write FOnRx80Full;
        property OnRxChar: TRxCharEvent read FOnRxChar write FOnRxChar;
        property OnTxEmpty: TNotifyEvent read FOnTxEmpty write FOnTxEmpty;
    Описание типов:
    Code:
      TBaudRate = (br110, br300, br600, br1200, br2400, br4800, br9600, br14400,
        br19200, br38400, br56000, br57600, br115200, br128000, br256000);
      TByteSize = (bs5, bs6, bs7, bs8);
      TComErrors = set of (ceFrame, ceRxParity, ceOverrun, ceBreak, ceIO, ceMode,
                           ceRxOver, ceTxFull);
      TComEvents = set of (evRxChar, evTxEmpty, evRing, evCTS, evDSR, evRLSD,
                           evError, evRx80Full);
      TComSignals = set of (csCTS, csDSR, csRing, csRLSD);
      TParity = (paNone, paOdd, paEven, paMark, paSpace);
      TStopBits = (sb1, sb1_5, sb2);
      TSyncMethod = (smThreadSync, smWindowSync, smNone);
      TComSignalEvent = procedure(Sender: TObject; State: Boolean) of object;
      TComErrorEvent = procedure(Sender: TObject; Errors: TComErrors) of object;
      TRxCharEvent = procedure(Sender: TObject; Count: Integer) of object;
    В свете всего вышесказанного получаем:
    Code:
      ComPort:=TbComPort.Create(nil);
      try
        ComPort.BaudRate:=br2400;  //задали скорость работы
        .....                                           //выполняем дальнейние действия
      finally
        ComPort.Free;
      end;
    Дальше я думаю разберетесь: названия типов и свойств "говорящие", и соответствуют признанным.
     
    #8689 xophet, 12 Dec 2011
    Last edited: 12 Dec 2011
  10. Helium

    Helium New Member

    Joined:
    6 Jan 2010
    Messages:
    22
    Likes Received:
    3
    Reputations:
    0
    Спасибо, о, король компилятора. Ошибок не обнаружено. Последний вопрос: как выставляется номер порта для работы?
     
  11. xophet

    xophet Member

    Joined:
    16 Apr 2011
    Messages:
    617
    Likes Received:
    49
    Reputations:
    5
    :D
    Вот же ж ленивый, специально же вынес список свойств:
    Code:
    property Port: String read FPort write SetPort;
    это значит, что в свойство Port записывается строковое значени порта, и его от туда можно считать.
    Думаю, что задается строкой
    , но на данный момент проверить нечем прожует ли оно порт заданный таким способом или нужно просто номер порта...
    Экспериментируйте
     
  12. Helium

    Helium New Member

    Joined:
    6 Jan 2010
    Messages:
    22
    Likes Received:
    3
    Reputations:
    0
    И, наконец появился код без ошибок компилятора!

    Code:
    uses
      SysUtils,BCPort;
    var
      bcomport: tbcomport;
     srt:string;
    
     begin
      bcomport := tbcomport.Create(nil); // Create может принимать некоторые параметры
    
      bComPort.BaudRate:=br2400;
     bComPort.Port:='COM5';
      // Выполняешь любые действия, работаешь с объектом bcomport
      BComPort.ReadStr(Srt,250);
    
     bcomport.Free;
    end.
    К сожалению вылетает с "ошибка чтения из порта"
    Пробовал COM5 и 5. На порт идет сигнал- проверит putty. Скорость чтения верная
     
  13. xophet

    xophet Member

    Joined:
    16 Apr 2011
    Messages:
    617
    Likes Received:
    49
    Reputations:
    5
    Ха, а остальные настроки кто устанавливать будет?
    Не отлынивайте, устанавливайте количество информационных бит, стоповых бит, четность
     
  14. makag

    makag Staatsanwalt

    Joined:
    27 Sep 2009
    Messages:
    478
    Likes Received:
    564
    Reputations:
    98
    Дан однородный массив числовых значений,насчитывающий N элементов.После каждого отрицательного элемента вставить новый элемент,равный квадрату этого отрицателльно элемента.......


    просто это на паскале написать нужно а я его не понимаю (
     
  15. Helium

    Helium New Member

    Joined:
    6 Jan 2010
    Messages:
    22
    Likes Received:
    3
    Reputations:
    0
    Пусть у тебя уже есть массив A длиной n, и ты создал масчив b той же длины. Вот код обработки твоей задачи
    Code:
    j:=0;
    for i:=1 to n do
    if a[i]<0 then 
    begin j:=j+1; 
    b[j]:=a[i];
     j:=j+1; 
    b[j]:=a[i]*a[i];
    end else begin j:=j+1; 
    b[j]:=a[i]end;
     
  16. Helium

    Helium New Member

    Joined:
    6 Jan 2010
    Messages:
    22
    Likes Received:
    3
    Reputations:
    0
    Code:
      bcomport := tbcomport.Create(nil); // Create может принимать некоторые параметры
    
      bComPort.BaudRate:=br9600;
     bComPort.Port:='COM5';
        BComPort.ByteSize:= bs8;
        BComPort.StopBits:=sb1;
        BComPort.Parity:=paNone;
      // Выполняешь любые действия, работаешь с объектом bcomport
      BComPort.ReadStr(Srt,250);
    
     bcomport.Free;
    xophet, даже это не прожевало
     
  17. xophet

    xophet Member

    Joined:
    16 Apr 2011
    Messages:
    617
    Likes Received:
    49
    Reputations:
    5
    тогда не знаю, пробуйте разобраться, у меня на работе все игрушки отобрали... тестить не на чем, дома тоже ничего нету.
    P.S. завтра на работе гляну, где-то должна валятся самописная программа, правда с использованием другого компонента, но если найду, то компонент тоже. Завтра отпишусь
     
    #8697 xophet, 13 Dec 2011
    Last edited: 13 Dec 2011
  18. logger

    logger New Member

    Joined:
    15 Jan 2010
    Messages:
    32
    Likes Received:
    3
    Reputations:
    0
    Как узнать системные температуры, скорости вращения вентиляторов средствами Delphi +дополнительные библиотеки?
     
  19. GibridMelody

    GibridMelody Banned

    Joined:
    14 Sep 2011
    Messages:
    4
    Likes Received:
    5
    Reputations:
    13
    Как открыть браузер на delphi и зайти на сайт???
     
  20. xophet

    xophet Member

    Joined:
    16 Apr 2011
    Messages:
    617
    Likes Received:
    49
    Reputations:
    5

    код из гугла
    Code:
    begin
    shellexecute(frmMain.Handle,'',PChar('http://site.com'),nil,'',SW_SHOW);
    end;
     
Thread Status:
Not open for further replies.