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
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #2911  
Старый 26.02.2009, 00:54
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


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

если дело на то пошло то обрати внимание:
1) прототипы функций ты кинул после impementation
2) прототипы функций содержат параметры передаваемые им, а сами функции (их код) не содержат их.
3) вызываешь функции без параметров.
в совокупности этих ппц каких косяков выходит код похожий на
Код:
unit unitd;
Interface
uses crt;
type massiv=array[1..100,1..100] of real;
     massiv1=array[1..100] of real;

 procedure matri(var a:massiv);
 procedure Matr_Prakt(a:massiv; var koor:massiv1);
 procedure Funkcia(koor:massiv1);
Implementation


     procedure matri(var a:massiv);
     var
     i,j:byte;
     function new:real;
     begin
      new:=((2-sqr(i-3))/i)*(j-5.7);
       end;
       begin
       clrscr;
       for i:=1 to 10 do
	for j:=1 to 10 do
	 a[i,j]:=new;
	 for i:=1 to 10 do begin
	  writeln;
	   for j:=1 to 10 do
	    write(a[i,j]:8:2);
	     end;
	      readkey;
	      end;


	      procedure Matr_Prakt(a:massiv; var koor:massiv1);
	      type massiv=array[1..100,1..100] of integer;
		   massiv1=array[1..500] of integer;
		   var   q,n,n1,max_stolb:integer;
		   i,j:byte;
			  x:massiv1;



			  begin
			  i:=1;
			  max_stolb:=1;
			  for j:=2 to N do
			  if a[i,j]>a[i,j-1] then max_stolb:=j;

			  for i:=1 to N do
			  for j:=1 to N do
			  koor[i]:=koor[i]+a[i,j]*a[j,max_stolb];

			  write('a(',koor[1]);
			  for i:=2 to n do
			  write(',',koor[i]);
			  write(')');
			  writeln;
			  writeln;
			  readln;
			  end;


			  procedure Funkcia(koor:massiv1);
			  var U:real;
			  qwer,a,i,n,chisl,znam:integer;
			  q1,q2:real;

			  function F(b:real; var a:real):integer;

			  begin
			  a:=a+b;
			  end;

			  begin
			  for i:=1 to n do
			  if koor[i]<=1 then f(koor[i],q1);
			  for i:=1 to n do
			  if koor[i]>1 then f(koor[i],q2);

			  U:=(1+q1)/(2+q2);
			  writeln(u);
			  readln;
			  writeln;
			  writeln;
			  end;

			 var
			 aa:massiv;
			 bb:massiv1;
			  begin
			  matri(aa);
			  Matr_Prakt(aa,bb);
			  Funkcia(bb);
			  end.
 

  #2912  
Старый 26.02.2009, 00:56
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


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

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

  #2913  
Старый 26.02.2009, 01:07
De-visible
Banned
Регистрация: 06.01.2008
Сообщений: 904
Провел на форуме:
4037638

Репутация: 1821


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

Цитата:
Сообщение от slesh  
ты через снифер погляди, что там приходит. а то мож там идет редирект.

Бывает такое что в ответ на POST сервер вернет тебе Object Moved и в через Location кинет тебя на другую страницу, вот тебе нужно такое учитывать
выход эксепшены))
----
А вообще компоненты для этого использовать не стоит...(для скачки файлов, причем совсем не стоит...)
И еще мое мнение, скачивать надо в отдельном потоке, почему думаю объяснять не стоит...
WinSock,WinInet юзайте)..
 

  #2914  
Старый 26.02.2009, 01:31
Si{R}ius
Участник форума
Регистрация: 13.11.2008
Сообщений: 131
Провел на форуме:
776255

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

Цитата:
Сообщение от slesh  
p.s. кучу раз описывать типы ненужно, один раз описал и потом юзай их, а у тя одни и теже типы описываются по сто раз
Я все так и сделал, выполняю саму прогу, вызывающую подпрограмму, пишет 49 ошибку "Data segment too large"
 

  #2915  
Старый 26.02.2009, 10:31
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


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

ата ошибка из-за того что ты юзаешь слишком большие типы данных которые в сумме привышают 65кил. Ты посчитай сколько у тебя тратится место на массивы.
Единственных выход - выделять память под массивы и работать с указателями
 

  #2916  
Старый 27.02.2009, 10:04
Lee_fx
Познающий
Регистрация: 27.09.2008
Сообщений: 57
Провел на форуме:
265628

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

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

  #2917  
Старый 27.02.2009, 10:25
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


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

как вариант найти дискриптор таскбара и туда засунуть свой элемент управления.
 

  #2918  
Старый 27.02.2009, 15:15
ZET36
Участник форума
Регистрация: 08.10.2007
Сообщений: 259
Провел на форуме:
500748

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

Вот тут у меня опть проблема
пытаюсь загрузить файл из интернэта по средствам сокетов

Код:
var Site : PChar;
   sock : TSocket;
   HostEnt : PHostEnt;
   WSA : TWSAData;
   addr : sockaddr_in;
   sendbuff : String;
   PostData : String;


  f:TextFile;
  i:integer;
  buf:array[0..255] of char;
begin

if WSAStartup($0101, WSA) <> 0 then
Exit;
sock := Socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
FillChar(addr, SizeOf(sockaddr_in), 0);
addr.sin_family := AF_INET;
addr.sin_port := htons(80);
Site := 'www.google.ru';
HostEnt := gethostbyname(Site);
addr.sin_addr.s_addr := Longint(PLongint(HostEnt^.h_addr_list^)^);

Connect(sock, addr, SizeOf(addr));

       sendbuff := '';
       sendbuff := 'GET http://www.google.ru/images/nav_logo3.png  HTTP/1.0' + #13#10 +
                   'User-Agent: Opera/9.10 (Windows NT 5.1; U; ru)' + #13#10 +
                   'Host: www.google.ru' + #13#10 +
                   'Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1' + #13#10 +
                   'Accept-Language: ru-RU,ru;q=0.9,en;q=0.8' + #13#10 +
                   'Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1' + #13#10 +
                   'Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0' + #13#10 +
                   'Proxy-Connection: close' + #13#10 +
                   'Referer: http://www.google.ru/images/nav_logo3.png' + #13#10 +
                   'Proxy-Connection: close';

       send(sock, sendbuff [1], Length(sendbuff), 0);
          AssignFile(f, 'logo.png');
          Rewrite(f);

        repeat
        i := recv(sock, buf, length(buf), 0);
        writeln(f, buf);
        until i <= 0;
       CloseFile(f);
       CloseSocket(sock);
     end;
но в файл добавляется только несколько символов переноса строки и всё, прозреваю что я использую не тот тип данных для записи ответа сервера в файл или вообще не правильно записываю ответ, подскажите как правильно.
 

  #2919  
Старый 27.02.2009, 15:21
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


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

repeat
i := recv(sock, buf, length(buf), 0);
writeln(f, buf);
until i <= 0;
замени на
Код:
 repeat
  i := recv(sock, buf, sizeof(255), 0);
 writeln(f, copy(buf,1,i));
 until i <= 0;
 

  #2920  
Старый 27.02.2009, 15:57
FindeR
Участник форума
Регистрация: 15.11.2006
Сообщений: 259
Провел на форуме:
2589211

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

В процессе создания исключений назрел вопрос. А почему, собсно
Код:
showmessage(inttostr(strtoint('xc')));
Выдаёт мессагой '12' ?
Обнаружил случайно, когда вбивал заведомо нечисловые значения в нужный мне edit.
зы: нет, это не переменная, точнее, я её не объявлял.


а, сам понял.
x в данном случае указывает на то, что дальше будет следовать число в hex

Последний раз редактировалось FindeR; 27.02.2009 в 16:02..
 
 





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


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




ANTICHAT.XYZ