ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

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

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

  #5131  
Старый 08.12.2009, 00:35
Linkus
Участник форума
Регистрация: 20.12.2008
Сообщений: 130
Провел на форуме:
436500

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

Цитата:
Сообщение от mr_walker  
Я уже спрашивал... но...:
Ребята...как реализовать в логе(мемо) сервера(инди ХТТП сервак) чтобы показывалось КТО(АйПи Адрес) подключился... я ставлю обработку события ОнКоннект, но не знаю к какому элементу Инди ХТТП сервера обращатся...
процедура OnConnect даёт тебе доступ к потоку подключившегося пира под именем AThread:
Код:
procedure TForm1.IdHTTPServer1Connect(AThread: TIdPeerThread);
оттуда можно достать его IP адрес:
Код:
Memo1.Lines.Add(AThread.Connection.Socket.Binding.PeerIP);
Удачи

Последний раз редактировалось Linkus; 08.12.2009 в 00:42..
 

  #5132  
Старый 09.12.2009, 11:20
Sin3v
Участник форума
Регистрация: 16.07.2008
Сообщений: 159
Провел на форуме:
1063538

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

Решите плиз) (Паскаль)
в каждом столбце и каждой строк матрицы самодержица строго по одному не левому элементу. Перестановкой строк добиться расположение всех нулей по главной диагонали. В программе должна присутствовать проверка чтоб в строке был строго один ноль, в противном случае цикл не выполняться.
 

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

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

Цитата:
Сообщение от Sin3v  
Решите плиз) (Паскаль)
в каждом столбце и каждой строк матрицы самодержица строго по одному не левому элементу. Перестановкой строк добиться расположение всех нулей по главной диагонали. В программе должна присутствовать проверка чтоб в строке был строго один ноль, в противном случае цикл не выполняться.
Код:
PROGRAM PMatrix;
uses
    Crt;

const
     N = 3;

Var
   Matrix:      Array [1..N,1..N] of byte;
   Indexes:     set of byte;
   counter:     byte;

function CheckLine(LineIndex: byte): boolean;
var
   i, j:        byte;
begin
     counter := 0;
     CheckLine := false;
     for i := 1 to N do
         if (Matrix[LineIndex,i] = 0) then
            begin
                 inc(counter);
                 if counter > 1 then
                    begin
                         CheckLine := false;
                         exit;
                    end;
                 if (i in Indexes) then
                    begin
                         CheckLine := false;
                         exit;
                    end;
            end;
    CheckLine := true;
end;


procedure GenerateMatrix;
var
   tmpindex:    byte;
   i, j:        byte;
begin
     Indexes := [];
     randomize;

     for i := 1 to N do
         begin
              repeat
                    tmpindex := random(N)+1;
                    for j := 1 to N do
                        if j = tmpindex then
                           Matrix[i,j] := 0
                        else
                           Matrix[i,j] := random(99)+1;
              until (CheckLine(i));

              Indexes := Indexes + [tmpindex];
         end;
end;


procedure ChangeLines(index1, index2: byte);
var
   tmp:         byte;
   i:           byte;
begin
     for i := 1 to N do
         begin
              tmp := Matrix[index1,i];
              Matrix[index1,i] := Matrix[index2,i];
              Matrix[index2,i] := tmp;
         end;

end;


procedure SortMatrix;
var
   i, j:        byte;
begin
     for i := 1 to N do
         begin
              if not(CheckLine(i)) then
                 exit;
              for j := 1 to N do
                  if (Matrix[i,j] = 0) then
                     ChangeLines(i,j);
         end;
end;


procedure ShowMatrix;
var
   i, j:        byte;
begin
     for i := 1 to N do
         begin
              for j := 1 to N do
                  if (Matrix[i,j] < 10) then
                     write(' ', Matrix[i,j], ' ')
                  else
                      write(Matrix[i,j], ' ');
              writeln
         end;
end;


var
   i, j:        byte;
   choice:      char;
begin
     clrscr;
     write('Would you like to generate the matrix automatically? (y/n)');
     readln(choice);
     if (choice = 'y') then
        GenerateMatrix
     else
         for i := 1 to N do
             for j := 1 to N do
                 begin
                 write('Matrix[',i,',',j,'] = ');

                 readln(Matrix[i,j]);
                 if (Matrix[i,j] = 0) then
                    Indexes := Indexes + [j];
                 end;

     writeln;
     ShowMatrix;
     writeln;
     SortMatrix;
     ShowMatrix;
     readln;
end.

Небольшой комментарий:
  • размер матрицы задается с помощью константы N. Поскольку есть возможность ручного ввода матрицы, то значение по умолчанию у N небольшое.
  • GenerateMatrix - заполняет матрицу правильным образом
  • ChangeLines - меняет 2 строки местами
  • SortMatrix - упорядочивает строки согласно заданию
  • ShowMatrix - выводит матрицу на экран
  • CheckLine - проверяет, нет ли в какой-либо строке или столбце более 1 нуля.

Последний раз редактировалось StealthMaster; 09.12.2009 в 19:06..
 

  #5134  
Старый 09.12.2009, 15:59
DiHWO
Участник форума
Регистрация: 23.10.2009
Сообщений: 103
Провел на форуме:
289669

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

вот мне надо написать что-то типо электронного справочника, попробую сначала на дельфи, потом на си++. Объясните мне как лучше, делать кучу форм и на каждой форме размещать отдельную информацию, или выводить все в одной форме? Тоесть сама идея такова, открываеться навигация, выбираешь что надо, потом открываеться новое окно (новая форма) и в форме появляеться текст на определенную тему, жмешь кнопку вперед, и появляеться новая форма с другим текстом, или же, в старую перезаписываеться инфа. Вот как лучше?
 

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

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

Если планируется сделать что-то вроде справочника, то статьи в нем должны быть оформлены примерно одинаково. Поэтому для вывода статьи логично использовать одну и ту же форму, имхо.
 

  #5136  
Старый 09.12.2009, 16:25
DiHWO
Участник форума
Регистрация: 23.10.2009
Сообщений: 103
Провел на форуме:
289669

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

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

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

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

В принципе можно и в текстовых файлах (хотя зависит от типа информации, картинку в текст не впихнешь ), но по-моему, гораздо удобнее использовать базу данных.

А если хранишь текст в константах, то чтобы отредактировать какой либо текст, придется заново открыть исходник, внести изменения и откомпилировать программу. Долго и неудобно.

Последний раз редактировалось StealthMaster; 09.12.2009 в 16:48.. Причина: поставил смайлик)
 

  #5138  
Старый 09.12.2009, 16:48
transserg
Участник форума
Регистрация: 02.07.2008
Сообщений: 132
Провел на форуме:
1035284

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

возник вопрос как получить список всех модулей в системе (загруженных) через NtQuerySystemInformation немогу понять какую ей структуру надо
Код:
Procedure GetSystemInformation;
 var
   Temp: PSYSTEM_MODULE_INFORMATION;
   modin:PSYSTEM_MODULE_INFORMATION;
   ReturnLength: DWORD;
  I: integer;
  ou:integer;
 begin
  ou:=0;
   try
     ReturnLength := 0;
     if NtQuerySystemInformation(SystemModuleInformation,nil, 0, ReturnLength) <> STATUS_INFO_LENGTH_MISMATCH then
      Exit;
     if ReturnLength > 0 then
       begin
        GetMem(modin, ReturnLength);
        try
         if NtQuerySystemInformation(SystemModuleInformation,modin, ReturnLength, ReturnLength) = 0 then
         begin
           Temp := modin;
             repeat

              Form2.ListBox1.Items.Add(Temp^.aSysM.ImageName);
               Temp := Pointer(DWORD(Temp) + Temp^.aSysM.ModuleNameOffset);
               if Temp^.aSysM.ModuleNameOffset=0 then
                inc(ou);

             until ou=2;
         end;
       finally
         FreeMem(modin);
       end;
     end;
   finally
   end;
end;
 SYSTEM_MODULE= ^_SYSTEM_MODULE;
  _SYSTEM_MODULE= packed record
    Reserved:array[0..1] of  ULONG;
    Base:ULONG;
    Size:ULONG;
    Flags:ULONG;
    Index:ULONG;
    Unknown:ULONG;
    ModuleNameOffset:SHORT;
    ImageName:Array[0..256] of Char;
  end;
  PSYSTEM_MODULE_INFORMATION = ^SYSTEM_MODULE_INFORMATION;
  SYSTEM_MODULE_INFORMATION = packed record
   uCount:ULONG;
   aSysM:SYSTEM_MODULE;
  end;
уже начался брутвфорс по перебору вариантов но это не дело...
 

  #5139  
Старый 09.12.2009, 16:51
DiHWO
Участник форума
Регистрация: 23.10.2009
Сообщений: 103
Провел на форуме:
289669

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

StealthMaster, сэнк, вот если хранить в тхт, можно как - то спрятать тхт чтобы программа была одним файлом? просто прогу хочу на школьный конкурс, и какбе прога которая берет все из тхт файлов....ну неочень проффесионально\опрятно чтоли....
 

  #5140  
Старый 09.12.2009, 18:04
Thenno
Участник форума
Регистрация: 03.07.2009
Сообщений: 151
Провел на форуме:
638378

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

Цитата:
Сообщение от DiHWO  
StealthMaster, сэнк, вот если хранить в тхт, можно как - то спрятать тхт чтобы программа была одним файлом? просто прогу хочу на школьный конкурс, и какбе прога которая берет все из тхт файлов....ну неочень проффесионально\опрятно чтоли....
Почему неопрятно? Очень даже опрятно. Используй обычные текстовые файлы с собственным расширением. Я бы сделал так - исполнимый файл и рядом папку с базой этих самых файлов. Так будет удобнее и для расширения, и для реализации.
Хотя самое красивое решение - это с базой данных, ИМХО.
 
 





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


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




ANTICHAT.XYZ