Diferencia entre ' y "

372 views
Skip to first unread message

BlackDraGoN

unread,
Aug 17, 2010, 12:25:29 PM8/17/10
to Comunidad de Visual Foxpro en Español
Que diferencia hay en foxpro entre las comillas simples ' y las
comillas dobles " y tambien cual es la diferencia de macrosustitucion
hay entre & y ()

Un Saludo.

Roberto Matarrita

unread,
Aug 17, 2010, 12:54:23 PM8/17/10
to publice...@googlegroups.com
La diferencia de las comillas, es aue Fox utiliza las comillas dobles para comentarios y no te acepta las simples.
 
OK.

Luis Maria Guayan

unread,
Aug 17, 2010, 1:48:47 PM8/17/10
to publice...@googlegroups.com
No tienen ninguna diferencia, puedes utilizar indistintamente ' ', " " y también [ ]

lc = 'texto'
lc = "texto"
lc = [texto]

Macrosustitucion es solamente &

y variables de tipo Name () se utilizan y son mas rápidas que una macrosustitución

Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________

 

Hugo C.

unread,
Aug 17, 2010, 1:55:33 PM8/17/10
to Comunidad de Visual Foxpro en Español
En esto no existe ninguna diferencia,

miCadena = "Cadena"
miCadena = 'Cadena'
miCadena = [Cadena]

Encuanto a macrosustitucion &, y expresiones de nombres ().
checa este articulos.

http://www.portalfox.com/index.php?name=Sections&req=viewarticle&artid=132&allpages=1&theme=Printer

Saludos.

Victor E. Torres Tejada

unread,
Aug 18, 2010, 6:47:19 PM8/18/10
to publice...@googlegroups.com
Hola,
No hay diferencia si lo usas en distintos momentos, pero es muy util para armar cadenas (expresiones tipo caracter) que a su
vez tiene otras cadenas en su contenido, i.e.

  LsSql1 = "SELECT * from " + (LcRutaTabla)

   IF !EMPTY(this.cCamposPK ) AND !EMPTY(this.cValorPK)

      LsWhere = " WHERE "+ _cCamposPK +" = '"+ _cValoresPK + "' "

   ENDIF
Con Respecto a & y () , aqui mejor otra porcion de codigo de como se usa;
 

CASE Logrid.Name = 'GrdDetalle1'

 THIS.ctmSeccion1.chrtoarray( THIS.cCmpKGen , "+" , @laValoresClaveDestino )

 SELECT (LoGrid.Recordsource)

 APPEND BLANK

 FOR

LnNumCmp = 1 TO ALEN(laValoresClaveDestino)

 LsCmpEva =

This.ccursor_local + '.' + laValoresClaveDestino(LnNumCmp)

  LsCampo = LoGrid.

RecordSource+ '.' + laValoresClaveDestino(LnNumCmp)

  REPLACE (LsCampo) WITH EVALUATE(LsCmpEva)

ENDFOR

LcValKey = eval(this.ccmps_id1)

LcCmpKey =

this.ccmps_id1

LcCmp_id =

this.ccampo_id1

REPLACE &LcCmp_id WITH this.dataadmin.Cap_nroitm(LcValKey,this.ctabla_Det1,LcCmpKey,LcCmp_id)

*****

Nos vemos

--
Victor E. Torres Tejada
4216093 - 993290086
 
Buscador de productos       

Daniel Sánchez

unread,
Aug 18, 2010, 9:32:16 PM8/18/10
to publice...@googlegroups.com
Según el ejemplo que da el compañero Víctor, en el caso del uso de la macro sustitución & y del ( ) es que si usamos macro sustitución no puede usarse con variables en objetos 

cValor="mitabla"
thisform.cvalor="mitabla"

con macro sustitución
select &cvalor               &&selecciona correctamente el área
select &thisform.cvalor   &&error

usando ()

select (cvalor)                &&correcto
select (thisform.cvalor)   &&correcto igualmente


--
Daniel Sánchez Escobar
Investigación y Desarrollo
Reset Software & Sistemas
Móvil 044-949398047
Trujillo - Perú

Scanner2010

unread,
Aug 19, 2010, 4:30:15 PM8/19/10
to Comunidad de Visual Foxpro en Español
Hola ,
Hay muchas variaciones y es bien util , el unico problemo que yo veo y
no es
poca cosa , es que vas a hacer cuando te toque migrar tu codigo a
otro
lenguaje , ya que el comportamiento de & y () no tiene equivalencia en
VB.NET o
C# , me parece que la alternativa es crear codigo en tiempo de
ejecucion pero
eso ya es harina de otro costal.

Nos vemos

Carlos Miguel FARIAS

unread,
Aug 19, 2010, 5:34:25 PM8/19/10
to publice...@googlegroups.com
El comportamiento en PHP, por ejemplo, es similar o facilmente lo podes hacer equivalente, por lo tanto, el zorro, es un lenguaje "POTENTE" y práctico, .NET, es .NET

La potencia de un lenguaje es inversamente proporcional al cuadrado de la cantidad de líneas requeridas para hacer lo que necesitas hacer (y si hay un asistente que lo escriba, mejor).

Por si no fui claro, si para hacer un proceso, definir una clase, etc. necesito en un lenguaje X, 20 lineas (instrucciones) de código y en otro lenguaje y 40 líneas, el primer lenguaje, para ese requerimiento en particular, es 4 veces más eficiente (para codificarlo).

Porque usamos todos sql, porque una sola instruccion puede reemplazar 40, 100, 1000 líneas de código en otros lenguajes de programación.

Imaginense hacer el JOIN de 10 tablas o mas tablas, con agrupamientos, con filtros selectores a nivel filas y a nivel grupos, donde parte de las columnas del select a su vez son subconsultas, algunas de las tablas son vistas (otras Select), y parte de las condiciones implican otras subconsultas (y si queres dulce, metele ademas alguna UNION)

En una ocasión tuve que analizar datos de una bd access, el código en vfp (accediendo a la bd con una vista remota) era mas corto que el VBA de Access, ironico, no?

Recien con LINQ, .net llega a algo de eso, por supuesto, sirve para un campo de soluciones mas amplio, pero vfp en lo suyo, no es superado.
Reply all
Reply to author
Forward
0 new messages