FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Existe la funci贸n?
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM

Existe la funci贸n?

Posted: Mon Dec 04, 2023 06:53 PM
Foreros:

Actualmente tengo este c贸digo
Code (fw): Select all Collapse
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 CASE nVez == 聽 5 .OR. nVez == 聽21 .OR. nVez == 聽37 .OR. nVez == 聽53 .OR. nVez == 聽71 .OR. nVez == 聽87 .OR. nVez == 103 .OR.;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽nVez == 119 .OR. nVez == 137 .OR. nVez == 153 .OR. nVez == 169 .OR. nVez == 185
Pero c贸mo ven son muchos OR, me parece haber visto una funci贸n cuyos par谩metros
ser铆an solo separados por comas (,) algo as铆 como esto:
Code (fw): Select all Collapse
聽 聽 聽 聽nVez = 5,21,37,53,71,87,103,119,137,153,169,185
Ser谩 que existe la funci贸n o solo estaba so帽ando?

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Posts: 1772
Joined: Thu Sep 05, 2019 05:32 AM

Re: Existe la funci贸n?

Posted: Mon Dec 04, 2023 07:26 PM
hi,
Armando wrote:
Code (fw): Select all Collapse
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 CASE nVez == 聽 5 .OR. nVez == 聽21 .OR. nVez == 聽37 .OR. nVez == 聽53 .OR. nVez == 聽71 .OR. nVez == 聽87 .OR. nVez == 103 .OR.;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽nVez == 119 .OR. nVez == 137 .OR. nVez == 153 .OR. nVez == 169 .OR. nVez == 185
you can ASCAN for Value
Code (fw): Select all Collapse
聽 聽aVez := {5,21,37,53,71,87,103,119,137,153,169,185}

聽 聽CASE ASCAN(aVez, nVez) > 0
greeting,

Jimmy
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM

Re: Existe la funci贸n?

Posted: Mon Dec 04, 2023 08:12 PM

Jimmy:

It's a good idea.

Thanks so much

Regards

SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Posts: 211
Joined: Wed Jul 16, 2008 12:59 PM

Re: Existe la funci贸n?

Posted: Sat Dec 09, 2023 01:24 PM
Esto tambien puede servir
Code (fw): Select all Collapse
聽 聽SWITCH nVez
聽 聽CASE 5
聽 聽CASE 21
聽 聽CASE 37
聽 聽CASE 53
聽 聽CASE 71
聽 聽CASE 87
聽 聽CASE 103
聽 聽 聽 Msqinfo("Caso1")
聽 聽 聽 Exit //<- esto es SUPER IMPORTANTE
聽 聽CASE 119
聽 聽CASE 137
聽 聽CASE 153
聽 聽CASE 169
聽 聽CASE 185
聽 聽 聽 Msqinfo("Caso2")
聽 聽 聽 Exit //<- esto es SUPER IMPORTANTE
聽 聽DEFAULT
聽 聽 聽 Msqinfo("Sin EXITO!!")
聽 聽 聽//
聽 聽END
Att. Rolando
Cochabamba, Bolivia
Posts: 211
Joined: Wed Jul 16, 2008 12:59 PM

Re: Existe la funci贸n?

Posted: Sat Dec 09, 2023 01:33 PM
Otro Ejemplo
Code (fw): Select all Collapse
//--------------------------//
//Cambia xVar a string valido para Sql
FUNCTION Val2Str( xVar )
聽 聽Local cStr

聽 聽if xVar = NIL
聽 聽 聽 cStr := 聽"NULL"
聽 聽else
聽 聽 聽 SWITCH ValType(xVar)
聽 聽 聽 CASE "L" //Logical
聽 聽 聽 聽 聽cStr := if(xVar,"TRUE","FALSE")
聽 聽 聽 聽 聽EXIT
聽 聽 聽 CASE "N" //Numeric
聽 聽 聽 CASE "F" //HB_FT_FLOAT S/G Harbour
聽 聽 聽 CASE "B" //DBF_FT_DOUBLE S/G ADS
聽 聽 聽 CASE "I" //Integer
聽 聽 聽 CASE "S" //Short
聽 聽 聽 CASE "+" //AutoInc(Integer)
聽 聽 聽 CASE "Z" //Currency
聽 聽 聽 CASE "Y" //Money
聽 聽 聽 聽 聽cStr := Str(xVar,,,.T.)
聽 聽 聽 聽 聽if Left(cStr,1)="*"
聽 聽 聽 聽 聽 聽 cStr := Str(xVar, LenNum(xVar)+15, 15 /*digitos de precision por tipo FLOAT/DOUBLE*/, .T. /*lTrim*/)
聽 聽 聽 聽 聽endif
聽 聽 聽 聽 聽 聽 cStr := LTrim( cQuitaCeros(cStr) )
聽 聽 聽 聽 聽EXIT
聽 聽 聽 CASE "D" //Date
聽 聽 聽 聽 聽if Empty(xVar) //es necesario esta pregunta. Ejm: CTOD("") => ' 聽/ 聽/ 聽 聽'
聽 聽 聽 聽 聽 聽 cStr := "NULL"
聽 聽 聽 聽 聽else
聽 聽 聽 聽 聽 聽 cStr := cValToStr(xVar,"YYYY-MM-DD")
聽 聽 聽 聽 聽endif
聽 聽 聽 聽 聽EXIT
聽 聽 聽 CASE "C" //Char
聽 聽 聽 CASE "Q" //HB_FT_VARLENGTH //ADS_FT_VARCHAR
聽 聽 聽 CASE "V" //
聽 聽 聽 聽 聽//NOTAS
聽 聽 聽 聽 聽//- Reemplazamos:
聽 聽 聽 聽 聽// 聽. comilla simple(') por su similar (麓), evitamos inyeccion sql y error 2113 Unexpected end of statement
聽 聽 聽 聽 聽// 聽. chr(0) por chr(32), chr(0) en un string sql provoca error: 2113 Unexpected end of statement, 04/05/2017
聽 聽 聽 聽 聽cStr := StrTran(StrTran(xVar,"'","麓"),chr(0),chr(32))
聽 聽 聽 聽 聽EXIT

聽 聽 聽 /*cometeriamos un error
聽 聽 聽 CASE "M" //Memo
聽 聽 聽 CASE "W" //DBF_FT_BINARY
聽 聽 聽 CASE "P" //DBF_FT_IMAGE
聽 聽 聽 聽 聽if Empty(xVar) //es necesario esta pregunta. Ejm: CTOD("") => ' 聽/ 聽/ 聽 聽'
聽 聽 聽 聽 聽 聽 cStr := "NULL"
聽 聽 聽 聽 聽else
聽 聽 聽 聽 聽 聽 cStr := StrTran(StrTran(xVar,"'","麓"),chr(0),chr(32))
聽 聽 聽 聽 聽endif
聽 聽 聽 聽 聽EXIT
聽 聽 聽 */

聽 聽 聽 /*va por DEFAULT
聽 聽 聽 CASE "T" //Time
聽 聽 聽 CASE "@" //TimeStamp
聽 聽 聽 CASE "=" //ModTime
聽 聽 聽 */
聽 聽 聽 DEFAULT
聽 聽 聽 聽 聽cStr := cValToChar(xVar)
聽 聽 聽 END
聽 聽endif
Return cStr
Rolando
Cochabamba, Bolivia
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM

Re: Existe la funci贸n?

Posted: Sat Dec 09, 2023 03:07 PM

Rolando:

Amigo, te agradezco la sugerencia, pero la idea es evitar tanto c贸digo como los .OR.

ser谩 que tal vez no entend铆 tu c贸digo?

Saludos

SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM

Re: Existe la funci贸n?

Posted: Sat Dec 09, 2023 04:55 PM
Armando, y asi?
Code (fw): Select all Collapse
local nVez := 103

if alltrim(Str(nVez)) $ "5,21,37,53,71,87,103,119,137,153,169,185"
聽 聽msginfo("Encontrado",nVez)
endif
Francisco J. Alegr铆a P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM

Re: Existe la funci贸n?

Posted: Sat Dec 09, 2023 05:43 PM

Francisco:

Esta sugerencia puede ser !

Muchas gracias, saludos

SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Posts: 1446
Joined: Mon Oct 10, 2005 02:38 PM

Re: Existe la funci贸n?

Posted: Sat Dec 09, 2023 07:27 PM
FranciscoA wrote:Armando, y asi?
Code (fw): Select all Collapse
local nVez := 103

if alltrim(Str(nVez)) $ "5,21,37,53,71,87,103,119,137,153,169,185"
聽 聽msginfo("Encontrado",nVez)
endif
La idea para mi es v谩lida, yo la utilizo as铆:

-->> if ( "," + alltrim( Str(nVez) ) + "," ) $ ",5,21,37,53,71,87,103,119,137,153,169,185,"

caso contrario dar铆a como v谩lido el valor '3'.

Un Saludo

Carlos G.



FiveWin 25.12 + Harbour 3.2.0dev (r2502110321), BCC 7.7 Windows 11 Home

Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM

Re: Existe la funci贸n?

Posted: Sat Dec 09, 2023 07:38 PM
Carlos:

Por supuesto que funcionar铆a y me parece que de manera exacta pues
el siguiente c贸digo mostrar铆a encontrado y es falso.
Code (fw): Select all Collapse
聽 聽local nVez := 103

聽 聽if alltrim(Str(nVez)) $ "5,1030,21,37,53,71,87,119,137,153,169,185"
聽 聽 聽 msginfo("Encontrado",nVez)
聽 聽endif
Saludos y gracias a ambos (Francisco y Carlos, Carlos y Francisco)
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM

Re: Existe la funci贸n?

Posted: Mon Dec 11, 2023 08:11 PM
This suggestion of Mr. Jimmy
you can ASCAN for Value
Code:
aVez := {5,21,37,53,71,87,103,119,137,153,169,185}

CASE ASCAN(aVez, nVez) > 0
is the best and the right one, in my opinion.
Regards



G. N. Rao.

Hyderabad, India
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM

Re: Existe la funci贸n?

Posted: Tue Dec 12, 2023 05:21 PM

Mr. Rao:

Thanks a lot.

Regards

SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero

Continue the discussion