FoxPro/Visual FoxPro - calcular LRC

 
Vista:

calcular LRC

Publicado por Ruben Gonzalez (19 intervenciones) el 17/05/2004 21:32:34
Hola amigos, necesito calcular el LRC o Longitudinal Redundancy Check, tengo una funcion en VBasic, lo escribo aca, si alguien enteniende que me lo traduzca al Fox please. desde ya muchas gracias
For i = 1 To Len(Mensaje)
LRCrx = LRCrx Xor Asc(Mid(Mensaje, i, 1))
Next
los que no entiendo aca son Xor y MID...
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

RE:calcular LRC

Publicado por saul (362 intervenciones) el 17/05/2004 22:13:11
Porque no mensionas mejor que es lo que necesitas. y te podremos hacer hasta el codigo..

bye
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

RE:calcular LRC

Publicado por Ruben (19 intervenciones) el 17/05/2004 22:23:35
Amigo Saul: Exactamente lo que necesito esta escrito. Longitudinal Redundancy Check, o la traduccion de esta sencilla función en VBasic. No es mi intención ser descortes, pero si no sabes del tema favor no contestes. muchas gracias de todas formas por tu interes.
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

No seas grosero

Publicado por Jorge Enrique Arango (106 intervenciones) el 18/05/2004 12:44:06
No seas grosero, ten la seguridad que en este foro existe gran cantidad de programadores expertos (tal vez 100 o más) que podríamos ayudarte a solucionar lo que necesites. Llevo usando más de dos años este foro y nunca había visto una respuesta como la tuya.

Haz lo que Saúl te recomienda, dinos que necesitas y hoy mismo seguro tendrás respuesta.

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

RE:No fue mi intención

Publicado por Ruben (19 intervenciones) el 18/05/2004 15:46:04
Estimado amigo Jorge, yo tambien he usado muchas veces este foro, y jamas habia tenido este inconveniente, respondi asi, porque me parece una tomadura de pelo la de Saul, ya que lo que expongo es consiso, di la función para traducirla al fox-pro, ademas dije lo que queria. LRC o Chequeo de Redundancia Longitudinal, se trata de un chequeo de errores que devuelve un digito, la verdad no se bien como funciona, por eso ponia la función en Foxpro, y Xor no es parecido a OR como lo dice Saul, el mid menos, es evidente que no es una respuesta seria.
Bueno me disculpo si fui grocero, porque como aclare no fue mi intención.
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

calcular LRC

Publicado por JAVIER OSPINA (1 intervención) el 11/11/2015 19:57:32
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
************************************************************
**FUNCION PARA CALCULAR EL LRC.
**Javier Ospina Alzate
**Fecha: 11/NOVIEMBRE/2015
**Descripcion:
**el lrc es un digito de verificacion que se debe generar
**segun la trama que se envia, este digito es calculado según
**un algoritmo para evitar que la información sea de alguna
**manera modificada por algun programa sospechoso.
************************************************************
 
FUNCTION CALCULAR_LRC(Cadena)
	*inicializa las variables lungitud y de incremento.
	Store 0		TO Longitud,i
	*se calcula el valor inicial para el iLRC
	*1. se realiza un substring (SUBSTR) de la cadena con inicio y fin.
	*2. del caracter que se extrajo se aplica la funcion(ASC) que devuelve el numero en codigo ASCII
	*3. luego se aplica una funcion logica XOR  y este es el valor que se lleva inicialmente a iLRC
	iLRC = BITXOR(ASC(SUBSTR(Cadena, 1, 1)),ASC(SUBSTR(Cadena, 2, 1)))
	*se asigna la longitud de la trama
	Longitud = Len(Cadena)
	*se realiza un ciclo comenzando en la posicion 3 hata la longitud total de la trama o cadena enviada.
    For i = 3 To Longitud
    	*se halla el codigo ASCII para la posicion segun el ciclo
    	valor=ASC(SUBSTR(Cadena, i, 1))
    	*se aplica funcion logica XOR  para asignar el valor al iLRC
        iLRC = BITXOR(iLRC,valor)
    Next i
 
    SET STEP ON
    *terminado el ciclo se debe invocar la funcion que me permite convertir un valor en hexadecimal.
    *se envia el valor final para iLRC se convierte a hexadecimal y se asocia de nuevo a la variable iLRC
    iLRC =hex(iLRC)
    *convertimos el dato en caracter para poder concatenarlo en la trama o cadena y se quitan espacios en blanco.
 	iLRC =ALLTRIM(STR(iLRC))
    *se valida si la longitud del dato iLRC es uno se debe concatenar al inicio un cero
    If Len(iLRC) = 1 Then
        iLRC = "0" + iLRC
    ENDIF
 
*finalmente se envia el codigo iLRC a la trama o cadena.
Return iLRC
ENDFUNC
************************************************************
 
 
 
************************************************************
**FUNCION PARA CONVERTIR UN DECIMAL A HEXADECIMAL.
**Javier Ospina Alzate
**Fecha: 11/NOVIEMBRE/2015
**Descripcion:
**Terminada la logica que me calcula el numero iLRC  este
**numero es llevado a hexadecimal por medio de esta funcion.
************************************************************
function hex
	*recibe el parametro numero iLRC.
    parameters X
    *inicializamos variables
	i=0
	n=0
	*se realiza un ciclo mientras el parametro sea mayor a cero.
	DO while x>0
		r=MOD(x,16)
	 	x=INT(x/16)
	 	n=n+r*(10^i)
	 	i=i+1
	ENDDO
 
return n
************************************************************
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

calcular LRC

Publicado por user (7 intervenciones) el 08/09/2017 13:48:45
Estoy intentando usar esta función para calcular el lrc de una trama en hexadecimal : 00173630303030303030303031303030323203
Pero no logro obtener el 23 que sería el lrc correcto, podrían ayudarme gracias
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

calcular LRC

Publicado por Juan Miguel Olmedo (1 intervención) el 22/11/2017 20:05:22
Hola,
Estoy intentando utilizar esta funcion, pero me da error en iLRC (BITXOR(iLRC,valor), utilizo foxpro 6.0
Es compatible?
Saludos,
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