Вопрос по С++

xxxFAFNIRxxx

Вечный студент :)
time - Возвращает текущие дату/время в виде timet
 

Вкладення

Извините за глупый вопрос, но как сделать что бы в C++ Builder 6,0 окно с программой появлялось всегда в центре экрана, не зависимо от разрешения.
 

Cris

Member
Извините за глупый вопрос, но как сделать что бы в C++ Builder 6,0 окно с программой появлялось всегда в центре экрана, не зависимо от разрешения.
угу в свойствах, там есть расположение относительно монитора, там задаеш расстояние от верха и от левой стороны, а чтоб было по середине еше есть функции для определения размера экрана...
 

Cris

Member
такс сокеты:
неполучаеться полностью загрузить html страничку с инета через сокеты:
Код:
void GetHTMLpage(char *ip,int port, char *host, char *url,char *cookie, char *answer)
{
	int getlen=0;
	char request[2048]="\0";
	char response[10000]="\0";
	strcpy(response,"");
	sprintf(request,"GET %s HTTP/1.1\r\nHost: %s\r\nUser-Agent: Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9b5) Gecko/2008050509 Firefox/3.0b5\r\nCookie: %s\r\nAccept: text/html\r\nConnection: Close\r\n\r\n", url, host,cookie);
	SOCKET s;
	sockaddr_in s_a;
	s_a.sin_addr.s_addr=inet_addr((const char*)ip); 
	s_a.sin_port = htons(port); 	
	s_a.sin_family = AF_INET;
	s=socket(AF_INET,SOCK_STREAM,0); 
	int sf;
	sf=connect(s,(struct sockaddr*)&s_a,sizeof(s_a));
	sf=send(s,request,strlen(request),0);
	do
	{
		sf=recv(s,&response[0],9995,0);
		strcat(answer,response);
		Sleep(1000);
	}while(sf>0);
	closesocket(s);
}
Код:
int main()
{
WSADATA wd;
WSAStartup(MAKEWORD(2,2),&wd);
.....
char *page;
GetHTMLpage(...,page);
WSACleanup();
}
юзал уже кучу разных вариаций, но recv хоть и в блокируещем режиме, но получить полностью всю страницу получаеться 1 из 50 раз наверное, остальное все время кусками :(
-------------
основная задача - это надо скачать картинку для капчи с сайта и отобразить на форме, все свелось только к скачиванию
---------------------
ну вопшем нашол в чем проблема, при скачивании картинки - у нас пакеты иногда приходят с такими знаками как \0 - который обрезает строку при копировании, пришлось вручную почарово копировать, но не беда, но появилась новая проблема:
при записи полученой информации в файл, сразу появляеться много переводов строк - тоесть какието непечатаемые символы мешают :( как их можно записать в файл но так чтобы они не переводили строку? почемуто когда я скачал картинку через браузер там эти символы както нормально были:) есть но они не на что не влияют :(
---------------------
так вроде открывал файлы в notepad++ там болие подробнорасписаны символы:) вопшем всех символов хватает только у меня прога почемуто иногда ставит перевод строки, кстати в проге размер пакета с картинкой такой как и должен быть - 23681, а после того запишет в файл, то файл уже большого размера чем 23681, а этого быть не должно :(
 
Останнє редагування:

dreamer

Member
ну вопшем нашол в чем проблема, при скачивании картинки - у нас пакеты иногда приходят с такими знаками как \0 - который обрезает строку при копировании, пришлось вручную почарово копировать, но не беда, но появилась новая проблема:
при записи полученой информации в файл, сразу появляеться много переводов строк - тоесть какието непечатаемые символы мешают :( как их можно записать в файл но так чтобы они не переводили строку? почемуто когда я скачал картинку через браузер там эти символы както нормально были:) есть но они не на что не влияют :(
---------------------
так вроде открывал файлы в notepad++ там болие подробнорасписаны символы:) вопшем всех символов хватает только у меня прога почемуто иногда ставит перевод строки, кстати в проге размер пакета с картинкой такой как и должен быть - 23681, а после того запишет в файл, то файл уже большого размера чем 23681, а этого быть не должно :(
  1. Чтобы избежать проблем с нулевыми символами используй вместо strcpy memcpy
  2. Ты файл записываешь в бинарном режиме? Вообще приведи код записи раз уж в этом проблемы.
 

Cris

Member
  1. Чтобы избежать проблем с нулевыми символами используй вместо strcpy memcpy
  2. Ты файл записываешь в бинарном режиме? Вообще приведи код записи раз уж в этом проблемы.
а надо в бинарном? О_о :))) ну я несильно мучаюсь:
FILE *img=fopen("img.png","w");
printf(img,"%s",&page[0]);
или так:
for(int i=0;i<len;i++)
printf(img,"%c",&page);
или так:
ofstream img("img.png");
img<<page;
или так:
for(int i=0;i<len;i++) img<<page;
вроде было еще пару способов :)
я вообще напроч забыл про бинарный режим 6))
---------
ура я наконецто это сделал:) я тебя люблю:)
 
Останнє редагування:

Cris

Member
Такс есть проблема:
делаю на форме в Visual Studio C++ PictureBox
когда в него загружаю картинку и файл - PictureBox->Image=Image::FromFile("img.png");
то он ее открывает а не копирует себе, а когда мне нужно перезаписать этот файл и обновить, то файл открываеться нормально а при записи появляеться ошибка,
как сделать чтоб этот img.png преждевременно закрывался полностью?
 
Останнє редагування:
Зверху