Koriscenje sscanf


Započeo rizla, Oktobar 13, 2019, 18:44:19 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Problem(error/warning): hocu da iskoristim sscanf  za proveru tacnosti maila kada igrac upise u dialogu, nesto sam uradio ali mi prihvati mail kada je upisan
asd @ asd.com, a zanima me kako da izbegnem razmak da mi prihvati samo asd@asd.com

Dio skripte:
if(sscanf(inputtext,"s[64]'[member=1996][/member]'s[15]", email, domain))

Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): [ code ]vaš odgovor[ /code ]
Slika/video ingame problema(obavezno ako je ingame problem): link slike
Poslednja Izmena: Oktobar 13, 2019, 18:49:05 POSLE PODNE od rizla

Citat: rizla poslato Oktobar 13, 2019, 18:44:19 POSLE PODNE
Problem(error/warning): hocu da iskoristim sscanf  za proveru tacnosti maila kada igrac upise u dialogu, nesto sam uradio ali mi prihvati mail kada je upisan
asd @ asd.com, a zanima me kako da izbegnem razmak da mi prihvati samo asd@asd.com

Dio skripte:
if(sscanf(inputtext,"s[64]'[member=1996][/member]'s[15]", email, domain))

Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): [ code ]vaš odgovor[ /code ]
Slika/video ingame problema(obavezno ako je ingame problem): link slike

izvinjavam se na duplom postu pokusao sam izmenuti  [ member=1996 ][/member ] u @
Poslednja Izmena: Oktobar 13, 2019, 18:52:56 POSLE PODNE od rizla

Mislim da to ne mozes uraditi ali nisam siguran

daddyDOT

*

Balkan SA:MP designer



GetMail(string[])
{
	new string_lenght = strlen(string), email[24];
	for(new i = 0; i < string_lenght; i++)
	{
		strcat(email, i);
		if(string[i] == '[member=1996][/member]') break;
	}
	return email;
}
GetDomain(string[])
{
	new string_lenght = strlen(string), domain[15], bool:DomainAdd = false;
	for(new i = 0; i < string_lenght; i++)
	{
		if(DomainAdd) strcat(domain, i);
		//
		if(string[i] == '[member=1996][/member]' && !DomainAdd) DomainAdd = true;
		else if(string[i] == '.' && DomainAdd) break;
	}
	return domain;
}
// Korištenje:
new domain[16], email[25];
strmid(email,GetMail(inputtext),0,strlen(GetMail(inputtext)),sizeof(email));
strmid(domain,GetDomain(inputtext),0,strlen(GetDomain(inputtext)),sizeof(domain));


Probaj,
[member=1996][/member]
zamjeni sa @.

vise mi se svidja ideja od basovskog, dosta preglednije i jednostavnije, hvala svima u svakom slucaju

https://github.com/GRGServer/SAMP/blob/master/includes/regex.inc

#define IsValidEmail(%1) \
    regex_match(%1, "[a-zA-Z0-9_\\.]+[member=1996][/member]([a-zA-Z0-9\\-]+\\.)+[a-zA-Z]{2,4}")

if (!IsValidEmail(inputtext)) {
  //code
}