FoxPro/Visual FoxPro - Se encontro el final del archivo

   
Vista:

Se encontro el final del archivo

Publicado por sebastian (244 intervenciones) el 22/05/2013 16:41:07
Buenas tardes a todos, tengo este programita pero me sale un mensaje de error ","SE HA ENCONTRADO EL FINAL DEL ARCHIVO" pueden ayudarme a solucionarlo, ya le coloque el exit pero no muestra los resultados que necesito. Gracias por la ayuda

SELECT 2
GO top
DO whil .not. eof()
m = CODIGO
C = condicion
Skip
IF m = CODIGO AND C = "R"
REPLACE condicion WITH "C"
Skip -1
ELSE
IF m = CODIGO AND C = "C"
REPLACE condicion WITH "C"
LOOP
ENDIF
ENDIF
Skip
ENDDO
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Mauricio

Se encontro el final del archivo

Publicado por Mauricio (1368 intervenciones) el 22/05/2013 17:35:46
prueba con esto:
SELECT 2
GO top
SCAN
......IF condicion = "R"
...........REPLACE condicion WITH "C"
......ENDIF
*
* El otro if ya no tiene sentido pues condicion es igual a C
* Tampoco preguntar si m = codigo, pues al inicio lo haces igual......
ENDSCAN
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Se encontro el final del archivo

Publicado por SEBASTIAN (244 intervenciones) el 22/05/2013 17:52:34
Hola ya lo probe pero el problema es que no cambia los registros. por ejmplo tengo 10 registros el primero es R los 9 siguientes deben tener "C" y mi codigo si lo hace el problema es el mensaje, luego cambie como mencionas pero solo cambia un registro con "C" y el resto no
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mauricio

Se encontro el final del archivo

Publicado por Mauricio (1368 intervenciones) el 22/05/2013 20:43:12
Sebastian, te puedo asegurar que lo que tienes en el programa que presentaste lo hace el programa que te envie, si dices que no lo hace no puedo hacer nada.
Dice un dicho en mi pueblo: El tonto a señas el burro a palos!!!!!
Saludos
PD. Cree una tabla de prueba con condicion aleatoria y si lo hace, comprobado
*****
Solo deberia cambiar la condicion cuando es R, luego cuando es C lo deja igual, o no?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Se encontro el final del archivo

Publicado por neo (1601 intervenciones) el 23/05/2013 01:57:35
Yo lo haria asi:

SELECT 2
GO top
c=codigo

DO whil .not. eof()
C = condicion
IF m = CODIGO AND C = "R"
REPLACE condicion WITH "C"
Skip -1
ELSE
IF m = CODIGO AND C = "C"
REPLACE condicion WITH "C"
LOOP
ENDIF
ENDIF
SELECT 2
Skip
c=codigo
ENDDO
wait window "Proceso realizado con éxito" timeout .8
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Edgar Zambrano

Se encontro el final del archivo

Publicado por Edgar Zambrano (72 intervenciones) el 01/06/2013 00:01:06
no entiendo lo que quieres hacer pues en la condición que tienes del if validas
m=CODIGO and C="R"

ya que antes del if asignas a la variables m el valor de CODIGO, eso quiere decir que m=CODIGO siempre sera true, no le veo necesidad a esa validación ahora si lo que quieres es reemplazar datos puedes utilizar update ej:

1
2
update nombreTabla set c="C"
where (c="R")


y asi no tienes que recorrer toda la tabla y validar uno a uno.

para tener en cuenta al momento de recorrer una tabla o cursor con un bucle es mas recomendable utilizar scan/endscan ya que este es mucho más rapido que un bucle dowhile
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar