ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

26.02.2009, 00:54
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
если дело на то пошло то обрати внимание:
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.
|
|
|

26.02.2009, 00:56
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
p.s. кучу раз описывать типы ненужно, один раз описал и потом юзай их, а у тя одни и теже типы описываются по сто раз
|
|
|

26.02.2009, 01:07
|
|
Banned
Регистрация: 06.01.2008
Сообщений: 904
Провел на форуме: 4037638
Репутация:
1821
|
|
Сообщение от slesh
ты через снифер погляди, что там приходит. а то мож там идет редирект.
Бывает такое что в ответ на POST сервер вернет тебе Object Moved и в через Location кинет тебя на другую страницу, вот тебе нужно такое учитывать
выход эксепшены))
----
А вообще компоненты для этого использовать не стоит...(для скачки файлов, причем совсем не стоит...)
И еще мое мнение, скачивать надо в отдельном потоке, почему думаю объяснять не стоит...
WinSock,WinInet юзайте)..
|
|
|

26.02.2009, 01:31
|
|
Участник форума
Регистрация: 13.11.2008
Сообщений: 131
Провел на форуме: 776255
Репутация:
52
|
|
Сообщение от slesh
p.s. кучу раз описывать типы ненужно, один раз описал и потом юзай их, а у тя одни и теже типы описываются по сто раз
Я все так и сделал, выполняю саму прогу, вызывающую подпрограмму, пишет 49 ошибку "Data segment too large" 
|
|
|

26.02.2009, 10:31
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
ата ошибка из-за того что ты юзаешь слишком большие типы данных которые в сумме привышают 65кил. Ты посчитай сколько у тебя тратится место на массивы.
Единственных выход - выделять память под массивы и работать с указателями
|
|
|

27.02.2009, 10:04
|
|
Познающий
Регистрация: 27.09.2008
Сообщений: 57
Провел на форуме: 265628
Репутация:
23
|
|
Доброго времени суток, собственно вопрос - как на дельфях реализовать deskband (когда WMP сворачиваешь, в трее висит) или хотя бы где можно почитать про создание оного, желательно с примером.
|
|
|

27.02.2009, 10:25
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
как вариант найти дискриптор таскбара и туда засунуть свой элемент управления.
|
|
|

27.02.2009, 15:15
|
|
Участник форума
Регистрация: 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;
но в файл добавляется только несколько символов переноса строки и всё, прозреваю что я использую не тот тип данных для записи ответа сервера в файл или вообще не правильно записываю ответ, подскажите как правильно.
|
|
|

27.02.2009, 15:21
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
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;
|
|
|

27.02.2009, 15:57
|
|
Участник форума
Регистрация: 15.11.2006
Сообщений: 259
Провел на форуме: 2589211
Репутация:
151
|
|
В процессе создания исключений назрел вопрос. А почему, собсно
Код:
showmessage(inttostr(strtoint('xc')));
Выдаёт мессагой '12' ?
Обнаружил случайно, когда вбивал заведомо нечисловые значения в нужный мне edit.
зы: нет, это не переменная, точнее, я её не объявлял.
а, сам понял.
x в данном случае указывает на то, что дальше будет следовать число в hex
Последний раз редактировалось FindeR; 27.02.2009 в 16:02..
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|