P.S вообщето то, что у тебя в между begin end. - это не инициализация а выпонение функций модуля, они должны вызываться от туда где ты юзаешь этот модуль. А то у тебя получается не подуль а программа в виде модуля
Проблема в том, что хоть я пишу модуль инициализации, хоть не пишу его, компилятор грит, что нехватает ";", и никак я не могу его откомпилировать.
если дело на то пошло то обрати внимание: 1) прототипы функций ты кинул после impementation 2) прототипы функций содержат параметры передаваемые им, а сами функции (их код) не содержат их. 3) вызываешь функции без параметров. в совокупности этих ппц каких косяков выходит код похожий на Code: 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.
p.s. кучу раз описывать типы ненужно, один раз описал и потом юзай их, а у тя одни и теже типы описываются по сто раз
выход эксепшены)) ---- А вообще компоненты для этого использовать не стоит...(для скачки файлов, причем совсем не стоит...) И еще мое мнение, скачивать надо в отдельном потоке, почему думаю объяснять не стоит... WinSock,WinInet юзайте)..
Я все так и сделал, выполняю саму прогу, вызывающую подпрограмму, пишет 49 ошибку "Data segment too large"
ата ошибка из-за того что ты юзаешь слишком большие типы данных которые в сумме привышают 65кил. Ты посчитай сколько у тебя тратится место на массивы. Единственных выход - выделять память под массивы и работать с указателями
Доброго времени суток, собственно вопрос - как на дельфях реализовать deskband (когда WMP сворачиваешь, в трее висит) или хотя бы где можно почитать про создание оного, желательно с примером.
Вот тут у меня опть проблема пытаюсь загрузить файл из интернэта по средствам сокетов Code: 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; но в файл добавляется только несколько символов переноса строки и всё, прозреваю что я использую не тот тип данных для записи ответа сервера в файл или вообще не правильно записываю ответ, подскажите как правильно.
repeat i := recv(sock, buf, length(buf), 0); writeln(f, buf); until i <= 0; замени на Code: repeat i := recv(sock, buf, sizeof(255), 0); writeln(f, copy(buf,1,i)); until i <= 0;
В процессе создания исключений назрел вопрос. А почему, собсно Code: showmessage(inttostr(strtoint('xc'))); Выдаёт мессагой '12' ? Обнаружил случайно, когда вбивал заведомо нечисловые значения в нужный мне edit. зы: нет, это не переменная, точнее, я её не объявлял. а, сам понял. x в данном случае указывает на то, что дальше будет следовать число в hex
ZET36 не правильный подход в принципе. т.к. recv может вернуть 0, но это не будет ошибкой! просто в данный момент в сокете нет данных. так что советую или читать про сокеты, или использовать wininetapi з.ы. код ужасен: и что же запишится в файл? понятно что данные из buf, но сколько же их будет? 255 или меньше?
Гдето видел в манулах как сделать для нескольких форм "ресурсы", но теперь немогу найти. Тоесть у меня есть главная форма и дочерняя и мне надо допустим в дочерней форме в Edit1 пишешь значение и оно меняется в главной форме в Label1 тоесть как связать компоненты главной формы с дочерней?
Все вродебы разобрался, кому интересно оказывается нужно было 2 форму прописать в Uses первой и аналогично со 2 формой
Есть TМемо В нем записано ~ такое: 12345678@asdasdas 12356468@ascvxcczs 12567678@ascxvdas7 12345678@aszx43543 Так вот как получить переменную того что до @ и того что после? Например как ' + memo1.Lines + ' переменная всей строки.....