cümleten iyi günler dilerim,
aşağıda vermiş olduğum kod parçasında bulunan char headerText[] isimli değişkende bulunan ip adresi yazan kısmını programda manuel olarak değiştirmem gerekiyor.Değişkeni nasıl parçalarım? sonra istediğim değişkeni yaptıktan sonra nasıl geriye string olarak toplayabilirim?
#include <main.h>
#fuses NOWDT,NOLVP,NODEBUG,NOPROTECT //,NOMCLR RESET BUTONU DEVREDE VAR...!!
//#use rs232(baud=9600,xmit=PIN_C6,rcv=PIN_C7,parity=N,stop=1)
#use fast_io(a)
#use fast_io(b)
#use fast_io(c)
#use fast_io(d)
#use fast_io(e)
unsigned int16 TELNET_PORT = 4747;
int ips[12] ={192, 168, 10, 111, 192, 168, 10, 1, 255, 255, 255, 0};
TCP_SOCKET g_MyTelnetSock;
int1 g_MyHttpSending = FALSE;
char g_MyHttpResponse[64];
unsigned int8 serverIP[4] = {192, 168, 10, 109};
//char serverIP[] = "192.168.10.109";
char url[] = "/cardcontrol.asp";
//*****************************
char headerText[] = "nAccept: *.*\r\nAccept-Language: tr-tr\r\nHost: 192.168.10.109\r\nAccept-Encoding: gzip\r\nConnection: Close\r\n\r\n";
//*****************************
void MyHttpSend(void)
{ char sip[];
sprintf(sip,"%u.%u.%u.%u",serverIP[0],serverIP[1],serverIP[2],serverIP[3]);
HttpClientSetHostName( sip);
HttpClientSetUrl( url);
HttpClientSetCustomHeaders( headerText);
HttpClientSetHostPort(80);
HttpClientSetResponseBuffer(g_MyHttpResponse,sizeof(g_MyHttpResponse));
HttpClientStart();
}
denediğim yöntem;
char headerText[] ;
char headerText1[] = "nAccept: *.*\r\nAccept-Language: tr-tr\r\nHost: ";
char ip[] = "192.168.10.109";
char headerText2[] = "\r\nAccept-Encoding: gzip\r\nConnection: Close\r\n\r\n";
sprintf(headerText1,"%s",ip);
sprintf(headerText,"%s",headerText1);
bu şekilde çalıştıramadım. Nerede hata yapıyor olabilirim? Farklı bir komut var mı? ya da sprintf'i yanlış mı kullanıyorum?
ip[0] = 1;
ip[1] = 9;
ip[2] = 2;
.
.
.
ip
- = y;
sprintf() ifadeyi tamamıyla değiştirir, tabi değer başlangıç noktası belirtirmemiş ise. Tavsiyem bu işler için sprintf kullanmayın hafıza düşmanı oluyor kendisi.
atomx hocam sıkıntı benim ip bloğunu birleştirmede değil
HttpClientSetCustomHeadersROM((rom char*)"nAccept: *.*\r\nAccept-Language: tr-tr\r\nHost: 192.168.2.10\r\nAccept-Encoding:gzip\r\nConnection: Close\r\n\r\n");
burada yazan ip kısmını dışarıdan değiştirmek istiyorum. ve bunu eeproma yazıp kaydedip açılışta okutup işleme almak lazım.
mesaj birleştirme:: 20 Eylül 2016, 15:36:57
unsigned int8 serverIP[4] = {192, 168, 2, 10};
//char serverIP[] = "192.168.10.109";
char url[] = "/cardcontrol.asp";
char headerText[180];
char headerText1[150] = "nAccept: *.*\r\nAccept-Language: tr-tr\r\nHost: ";
char headerText2[20] = "192.168.2.10";
char headerText3[50]= "\r\nAccept-Encoding: gzip\r\nConnection: Close\r\n\r\n";
void MyHttpSend(void)
{ char sip[];
strcat(headerText1,headerText2);
strcat(headerText1,headerText3);
puts(headerText1);
sprintf(sip,"%u.%u.%u.%u",serverIP[0],serverIP[1],serverIP[2],serverIP[3]);
HttpClientSetHostName( sip);
HttpClientSetUrl( url);
HttpClientSetCustomHeaders( headerText1);
HttpClientSetHostPort(80);
HttpClientSetResponseBuffer(g_MyHttpResponse,sizeof(g_MyHttpResponse));
HttpClientStart();
}
sorunu bu şekilde hallettim arkadaşlar belki birilerinede faydası olur. STRCAT komutu varmış helpten bakınca buldum. İki stringi birbirine ekliyor. ilave ediyor buda benim işimi gördü.