HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #5381  
Старый 03.01.2010, 19:54
total90
Участник форума
Регистрация: 30.09.2009
Сообщений: 148
Провел на форуме:
11581319

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

PHP код:
procedure summa1(var a,b:integers:integer

вот именно эта часть мне чуть-чуть непонятна(эту процедуру писал сам)
тоисть почему именно так, а не иначе, видел процедуры типа:

PHP код:
procedure summa1(var a,b:integers:integer):integer 
так какая же разница между первой и второй

и ещё не понел какие переменные надо объявлять в главной программе, а какие в подпрограммах

Последний раз редактировалось total90; 03.01.2010 в 19:59..
 
Ответить с цитированием

  #5382  
Старый 03.01.2010, 20:11
AquaKlaster
Участник форума
Регистрация: 09.03.2009
Сообщений: 178
Провел на форуме:
1605524

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

Цитата:
Сообщение от total90  
PHP код:
procedure summa1(var a,b:integers:integer

вот именно эта часть мне чуть-чуть непонятна(эту процедуру писал сам)
тоисть почему именно так, а не иначе, видел процедуры типа:

PHP код:
procedure summa1(var a,b:integers:integer):integer 
так какая же разница между первой и второй

и ещё не понел какие переменные надо объявлять в главной программе, а какие в подпрограммах
второе это не процедура а функция. и писать надо так
function summa1(var a,b:integer, s:integer):integer
 
Ответить с цитированием

  #5383  
Старый 03.01.2010, 22:04
n1ghtstalker
Познающий
Регистрация: 28.09.2008
Сообщений: 65
Провел на форуме:
152084

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

Товарищ прав ) я сначала глянул меня аж в стан поставило )
но ближе к сути.
вот допустим у тебя есть
function summ(var:a,b:integer):integer
begin
summ:=a+b;
end;
в программе
summ(a,b);
вернёт тебе результат в summ .
для процедуры
procedure summ(var a,b,s:integer)
begin
s:=a+b;
end;
summ(a,b,s);
при вернёт тебе значение в переменную s глобального типа.
гы . не буду пока нагружать переменными локального типа.
 
Ответить с цитированием

  #5384  
Старый 03.01.2010, 22:12
total90
Участник форума
Регистрация: 30.09.2009
Сообщений: 148
Провел на форуме:
11581319

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

будем считать что я всё понел
 
Ответить с цитированием

  #5385  
Старый 04.01.2010, 07:52
wolmer
Постоянный
Регистрация: 12.05.2009
Сообщений: 395
Провел на форуме:
4761503

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

Где можно посмотреть пример реализации отправки пакета UDP на WINSOCK?
Пример с MS не понятно что отправляет (отправляет пустой пакет (но такой пример мне не подходит)):
Код:
#include <windows.h>
#include <stdio.h>
#include "winsock2.h"

void main() {
  
  WSADATA wsaData;
  SOCKET SendSocket;
  sockaddr_in RecvAddr;
  int Port = 27015;
  char SendBuf[1024];
  int BufLen = 1024;

  //---------------------------------------------
  // Initialize Winsock
  WSAStartup(MAKEWORD(2,2), &wsaData);

  //---------------------------------------------
  // Create a socket for sending data
  SendSocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);

  //---------------------------------------------
  // Set up the RecvAddr structure with the IP address of
  // the receiver (in this example case "123.456.789.1")
  // and the specified port number.
  RecvAddr.sin_family = AF_INET;
  RecvAddr.sin_port = htons(Port);
  RecvAddr.sin_addr.s_addr = inet_addr("123.456.789.1");

  //---------------------------------------------
  // Send a datagram to the receiver
  printf("Sending a datagram to the receiver...\n");
  sendto(SendSocket, 
    SendBuf, 
    BufLen, 
    0, 
    (SOCKADDR *) &RecvAddr, 
    sizeof(RecvAddr));

  //---------------------------------------------
  // When the application is finished sending, close the socket.
  printf("Finished sending. Closing socket.\n");
  closesocket(SendSocket);

  //---------------------------------------------
  // Clean up and quit.
  printf("Exiting.\n");
  WSACleanup();
  return;
}
 
Ответить с цитированием

  #5386  
Старый 04.01.2010, 17:05
НTL
Постоянный
Регистрация: 26.01.2008
Сообщений: 796
Провел на форуме:
5209663

Репутация: 357


Отправить сообщение для НTL с помощью ICQ
По умолчанию

Как на winsock, работать с AC? Через idHTTP долго и нестабильно...
 
Ответить с цитированием

  #5387  
Старый 04.01.2010, 17:09
ronald
Участник форума
Регистрация: 27.03.2008
Сообщений: 288
Провел на форуме:
800727

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

Подскажите, как из StringGrid при помощи Delphi конвертировать данные в таблицу через OpenOffice.org (есть способ через MS Excel, но есть необходимость использовать средства OpenOffice). Версия дельфей - седьмая.
И ещё: как определить количество строк в StringGrid?
 
Ответить с цитированием

  #5388  
Старый 04.01.2010, 17:14
0ldbi4
Постоянный
Регистрация: 14.04.2008
Сообщений: 327
Провел на форуме:
584699

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

Насчет конверции хз, потыкай макрос, VB и Dlp похожи,
А строки это толи Rows толи Columns в свойствах stringgrid:
Stringgrid1.rows.count
 
Ответить с цитированием

  #5389  
Старый 06.01.2010, 08:03
StealthMaster
Познающий
Регистрация: 03.12.2008
Сообщений: 56
Провел на форуме:
140714

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

Цитата:
Сообщение от ronald  
Подскажите, как из StringGrid при помощи Delphi конвертировать данные в таблицу через OpenOffice.org (есть способ через MS Excel, но есть необходимость использовать средства OpenOffice). Версия дельфей - седьмая.
И ещё: как определить количество строк в StringGrid?
За количество строк отвечает свойство RowCount
Код:
smth := StringGrid1.RowCount;
По поводу вставки текста в OpenOffice. Подключаешься к серверу автоматизации ОО, создаешь новый или открываешь имеющийся документ, вставляешь текст в нужную ячейку.

Вот класс, который реализует часть нужных действий:

Код:
type
   TOpenOffice = class
      function Connect: boolean;
      procedure Disconnect;
      function CreateDocument (Application: string): boolean;
      procedure InsertTextCalc(Text: string; Index: integer = 0;
      col: integer = 0; row: integer = 0; Border: boolean = false;
      Bold: boolean = false);
      
   private
      StarOffice: Variant;
      Document: Variant;
   end;

implementation
{$D+,L+}

function TOpenOffice.Connect: boolean;
begin
   if VarIsEmpty(StarOffice) then
      StarOffice := CreateOleObject('com.sun.star.ServiceManager');
   Result := not (VarIsEmpty(StarOffice) or VarIsNull(StarOffice));
end;

procedure TOpenOffice.Disconnect;
begin
   StarOffice := Unassigned;
end;


function TOpenOffice.CreateDocument(Application: String): boolean;
var
   StarDesktop: Variant;
begin
   StarDesktop := StarOffice.createInstance('com.sun.star.frame.Desktop');
   Document := StarDesktop.LoadComponentFromURL(
                  'private:factory/s'+Application, '_blank', 0,
                  VarArrayCreate([0, -1], varVariant));
   Result := not (VarIsEmpty(Document) or VarIsNull(Document));
end;


procedure TOpenOffice.InsertTextCalc(Text: string; Index: integer = 0;
            col: integer = 0; row: integer = 0; Border: boolean = false;
            Bold: boolean = false);
var
  Sheets, Sheet, Cell, Struct: variant;
begin
   Sheets := Document.GetSheets;
   Sheet := Sheets.getByIndex(Index);
   Cell := Sheet.getCellByPosition(col, row);
   Cell.setString(Text);

   if Border then
    begin
      Struct := StarOffice.Bridge_GetStruct('com.sun.star.table.BorderLine');

      Struct.lineDistance := 0;
      Struct.innerLineWidth := 0;
      Struct.outerLineWidth := 1;

      cell.leftBorder := Struct;
      Cell.rightBorder := Struct;
      Cell.topBorder := Struct;
      Cell.bottomBorder := Struct;

    end;

   if Bold then
    Cell.CharWeight:= 200;
end;

end; // TOpenOffice
А использовать примерно так:
Код:
var
  OpenOffice: TOpenOffice

procedure TfmMain.bOOConnectClick(Sender: TObject);
begin
  OpenOffice := TOpenOffice.Create;
  OpenOffice.Connect;
  OpenOffice.CreateDocument('calc');
  OpenOffice.InsertTextCalc(StringGrid1.Cells[1,1], 0, 1, 1, true);
  OpenOffice.Disconnect;
end;
Скажу сразу, что в качестве кода класса скопировал кусок одного из своих старых модулей, а часть кода написал прямо здесь, поэтому мог ошибиться. Если есть желание - пиши после праздников в аську, поболтаем на эту тему.

Последний раз редактировалось StealthMaster; 06.01.2010 в 08:05..
 
Ответить с цитированием

  #5390  
Старый 06.01.2010, 14:30
iGlass
Познающий
Регистрация: 14.05.2009
Сообщений: 92
Провел на форуме:
299447

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

Всем доброго времени суток ! :-))

Не подскажете как сделать такую же панель как "Nero Search" Чтобы она так же была на панели задач. Заранее спасибо :-)
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Wi-Fi, BT] Задай вопрос - получи ответ! Alexsize Беспроводные технологии/Wi-Fi/Wardriving 2568 25.04.2026 12:58
[jQuery] - Задай вопрос, получи ответ Isis PHP 62 25.12.2009 03:25



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ