dificil guardar Rtf en campo memo (dbf) o campo de Mysql??

Post Reply
User avatar
lubin
Posts: 404
Joined: Fri Dec 09, 2005 12:41 am
Location: Lima, Peru
Contact:

dificil guardar Rtf en campo memo (dbf) o campo de Mysql??

Post by lubin »

Buenos dias

Siguiendo los consejos de Antonio, le di una mirada a la control RichEdit y realmente tenias razon, es muy interasante y facil su implementacion reemplazandolo por un get Memo..

He podido ver como grabar el texto editado a un ARCHIVO xxx.Rtf y como leerlo, impresionantemente facil.

Ahora tengo dos consultas..

1. El punto ahora es como guardar este texto a un campo memo (en el caso de usar un dbf. ) y luego com recuperarlo para continuar su edicion.

2. Para los amigos que usan Mysql, la idea es guardarlo en una Tabla de Mysql, en un campo tipo Blog segun tengo entendido es el adecuado, como puedo guardarlo y luego recuperarlo para continuar su edicion???


Les agradesco las respuestasss..

Lubin

Antonio Linares wrote:Usa un control RichEdit.

Revisa FWH\samples\TestRich.prg y TestRtf.prg

Podrás hacer todo eso, y más :-)
User avatar
Lautaro
Posts: 322
Joined: Fri Oct 07, 2005 2:44 pm
Location: Osorno, Chile
Contact:

Post by Lautaro »

Lubin,

Para mi la forma mas facil fue convertir el rtf con mime64 y guardarlo en un campo mediumtext, luego lo lees y vuelves a transformas al formato original y listo.


Atte.,

Lautaro Moreira
User avatar
Willi Quintana
Posts: 859
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú
Contact:

Post by Willi Quintana »

En MySQL con Eagle1 lo hago asi:
Salu2

para almacenar
...
..
.
If MsgNoyes("Almacenar la Imagen Seleccionada?","Confirme")
ClearImage(oImagen)
oImagen:LoadBmp(cImagen)
oImagen:Refresh()

oUpdate := TMSQuery():New( oMySQL )
cChr := oUpdate:ReadFromFile(cImagen)

cUpdate := "SELECT registro FROM imagenes WHERE cod_producto = '" + cCodigo + "'"
oUpdate := TMSQuery():New( oMySQL )
oUpdate:Open( cUpdate )

If oUpdate:Reccount() = 0
cUpdate := "INSERT INTO imagenes (cod_producto, imagen) VALUES ('" + cCodigo + "', '" + cChr + "')"
Else
cRegistro := ALLTRIM(STR(oUpdate:FieldGet(1),15,0))
cUpdate := "UPDATE imagenes SET imagen = '" + cChr + "' WHERE registro = " + cRegistro
EndIf
oUpdate:Close()

lOk := SQLExec(oDatabase, cUpdate )
EndIf
...
para recuperar
...
..
.

cBusca := "SELECT registro, imagen FROM imagenes WHERE cod_producto = '" + cCodigo + "'"
oBusca := TMSQuery():New( oMySQL )
oBusca:Open( cBusca )

If oBusca:Reccount() = 0
ClearImage(oImagen)
oImagen:SETBMP("NOIMAGEN")
oBusca:Close()
Return(oImagen)
EndIf

cFile := "img000.000"
oBusca:WriteToFile( 2, cFile )
oBusca:Close()

ClearImage(oImagen)
oImagen:LoadBmp(cFile)
FERASE(cFile)
Return(oImagen)

.
User avatar
lubin
Posts: 404
Joined: Fri Dec 09, 2005 12:41 am
Location: Lima, Peru
Contact:

Post by lubin »

Hola Lautaro:

Ahora... la pregunta que me surge es... y como convierto el formato rtf a un formato mime64, existe alguna funcion o algun ejemplo ??

teniendo presente q estoy haciendo la edicion usando la control RichEdit como saco el valor editado de esa clase... lo paso al convertidor y luego grabarlo..

Gracias por tu respuesta ...

Lautaro wrote:Lubin,

Para mi la forma mas facil fue convertir el rtf con mime64 y guardarlo en un campo mediumtext, luego lo lees y vuelves a transformas al formato original y listo.


Atte.,

Lautaro Moreira
User avatar
lubin
Posts: 404
Joined: Fri Dec 09, 2005 12:41 am
Location: Lima, Peru
Contact:

Post by lubin »

Willi , gracias por la respuesta

Unas connsultas si no es molestia ...
1. En este caso estariamos tomando el archivo Rtf como si fuese una imagen ?? y ejecuto el procesoo que me indicass ??

2. Por casualidad sabes como jalarias el valor digitado del la clase control RichEdit para pasarlo directamente a la variable del Eagle1 sin tener q grabar el archivo xxx.rtf??

3. en este ejemplo las funciones ClearImage() es del fivewin ??


Gracias Willi
Lubin


Willi Quintana wrote:En MySQL con Eagle1 lo hago asi:
Salu2

para almacenar
...
..
.
If MsgNoyes("Almacenar la Imagen Seleccionada?","Confirme")
ClearImage(oImagen)
oImagen:LoadBmp(cImagen)
oImagen:Refresh()

oUpdate := TMSQuery():New( oMySQL )
cChr := oUpdate:ReadFromFile(cImagen)

cUpdate := "SELECT registro FROM imagenes WHERE cod_producto = '" + cCodigo + "'"
oUpdate := TMSQuery():New( oMySQL )
oUpdate:Open( cUpdate )

If oUpdate:Reccount() = 0
cUpdate := "INSERT INTO imagenes (cod_producto, imagen) VALUES ('" + cCodigo + "', '" + cChr + "')"
Else
cRegistro := ALLTRIM(STR(oUpdate:FieldGet(1),15,0))
cUpdate := "UPDATE imagenes SET imagen = '" + cChr + "' WHERE registro = " + cRegistro
EndIf
oUpdate:Close()

lOk := SQLExec(oDatabase, cUpdate )
EndIf
...
para recuperar
...
..
.

cBusca := "SELECT registro, imagen FROM imagenes WHERE cod_producto = '" + cCodigo + "'"
oBusca := TMSQuery():New( oMySQL )
oBusca:Open( cBusca )

If oBusca:Reccount() = 0
ClearImage(oImagen)
oImagen:SETBMP("NOIMAGEN")
oBusca:Close()
Return(oImagen)
EndIf

cFile := "img000.000"
oBusca:WriteToFile( 2, cFile )
oBusca:Close()

ClearImage(oImagen)
oImagen:LoadBmp(cFile)
FERASE(cFile)
Return(oImagen)

.
User avatar
Lautaro
Posts: 322
Joined: Fri Oct 07, 2005 2:44 pm
Location: Osorno, Chile
Contact:

Post by Lautaro »

Lubin,

Para codificar :

fmimeenc([archivo in],[archivo out])
xvar:=memoread([archivo out])

despues

:query("update .... set xcampo='"+xvar+"'")
:update()

Para descodificar

xvar:= :xcampo
memowrite([carchivo temp],xvar)
fmimedec([carchivo temp],[carchivo final])

y listo, luego solo faltar procesar el [archivo final] como estimes conveniente.

Atte.,

Lautaro Moreira

atte.,

Lautaro Moreira
User avatar
Willi Quintana
Posts: 859
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú
Contact:

Post by Willi Quintana »

Lubin, Lautaro tiene razon, "levanta" el archivo .rtf en una variable con el Memoread()... y zas.... el ejemplo que puse serviria...

Salu2
User avatar
lubin
Posts: 404
Joined: Fri Dec 09, 2005 12:41 am
Location: Lima, Peru
Contact:

Post by lubin »

Lautaro

La funcion fmimeenc([archivo in],[archivo out]) es de Harbour?? no la conocia..

Muchas Gracias, procedo a aplicarlo y te comento

Lubin
User avatar
lubin
Posts: 404
Joined: Fri Dec 09, 2005 12:41 am
Location: Lima, Peru
Contact:

Post by lubin »

Ok Willi

aplicare lo comentado por Ti y Lautaro ,, titne sentidoo

muchas gracias
Lubin

Willi Quintana wrote:Lubin, Lautaro tiene razon, "levanta" el archivo .rtf en una variable con el Memoread()... y zas.... el ejemplo que puse serviria...

Salu2
User avatar
fespinoza
Posts: 188
Joined: Wed Feb 01, 2006 6:59 pm
Location: Ecuador

Post by fespinoza »

Lubin

Hasta ahora tengo buenas experiencias trabajado con controles rtf en un campo memo, un poquito de experiencia:
1. El punto ahora es como guardar este texto a un campo memo (en el caso de usar un dbf. ) y luego com recuperarlo para continuar su edicion.
Guardar texto .rtf en un campo memo es tan sencillo como esto:
REPLACE DATOS WITH cDatos
La lectura de los datos la puedes hacer así: primero, lees el campo memo como siempre (cDatos será mi variable y DATOS el nombre del campo memo, oRTF un contro rtf):
cDatos=DATOS
Luego para cargarlo dentro de un control rtf debes hacer lo siguiente:
oRTF:LoadAsRTF(cDatos)
oRTF:SetText(cDatos)
Para grabar los datos modificados en un control rtf
IF( oRTF:IsModify(), (cDatos:=oRTF:SaveAsRTF(), GrabaBtcr(oPrueba1:dFechaControl))
Si tienes un control rtf dentro de un dialogo, para cargar el texto dentro del control, lo puedes hacer con ON INIT
ACTIVATE DIALOG oDlg ON INIT (oRTF:LoadAsRTF(cDatos), oRTF:SetText(cDatos), oRTF:SetFocus())
Saludos

Fernando Espinoza
User avatar
Willi Quintana
Posts: 859
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú
Contact:

Post by Willi Quintana »

Hi, con esta funcion evitas la sobrecarga de memoria cuando cambias bastantes bmps.....
Salu2

ClearImage(oBmp)


...
..
Function ClearImage(oImg)
PalBmpFree( oImg:hBitMap, oImg:hPalette )
oImg:hBitmap := 0
oImg:hPalette := 0
oImg:cResName := NIL
oImg:cBmpFile := NIL
oImg:Refresh()
Return(Nil)
User avatar
lubin
Posts: 404
Joined: Fri Dec 09, 2005 12:41 am
Location: Lima, Peru
Contact:

Post by lubin »

Gracias Fernando !!!

Creo que con esto ya _ tenemos cerrado el circulo del manejo del control para los archivos rtf (archivos que me permiten editar textos con efectos de edicion... eso semanas atras no lo sabia.. ) , tal vez por ahi se nos escape algo pero creo que estos datos son interesantes para todos.

Quizas me gustaria comentarles que para la implementacion con el estimado editor de recursos de workshop segui los siguientes pasos..

1, he crear un control tipo "control custom"

2. Le he puesto los siguientes paramentros..
en ID : nuestro clasico numero Id que dentifica el control
Class : "RichEdit20A"
Style : 4100 | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL | WS_TABSTOP

y nada mas..

Espero estar hacendo bien.. bueno al menos me esta funcionando.. salvo que alguien tenga algun Tip mas



Lubin
fespinoza wrote:Lubin

Hasta ahora tengo buenas experiencias trabajado con controles rtf en un campo memo, un poquito de experiencia:
1. El punto ahora es como guardar este texto a un campo memo (en el caso de usar un dbf. ) y luego com recuperarlo para continuar su edicion.
Guardar texto .rtf en un campo memo es tan sencillo como esto:
REPLACE DATOS WITH cDatos
La lectura de los datos la puedes hacer así: primero, lees el campo memo como siempre (cDatos será mi variable y DATOS el nombre del campo memo, oRTF un contro rtf):
cDatos=DATOS
Luego para cargarlo dentro de un control rtf debes hacer lo siguiente:
oRTF:LoadAsRTF(cDatos)
oRTF:SetText(cDatos)
Para grabar los datos modificados en un control rtf
IF( oRTF:IsModify(), (cDatos:=oRTF:SaveAsRTF(), GrabaBtcr(oPrueba1:dFechaControl))
Si tienes un control rtf dentro de un dialogo, para cargar el texto dentro del control, lo puedes hacer con ON INIT
ACTIVATE DIALOG oDlg ON INIT (oRTF:LoadAsRTF(cDatos), oRTF:SetText(cDatos), oRTF:SetFocus())
Saludos
Fernando Espinoza
User avatar
lubin
Posts: 404
Joined: Fri Dec 09, 2005 12:41 am
Location: Lima, Peru
Contact:

Post by lubin »

Ok Willi
buen dato..

Lubin
Willi Quintana wrote:Hi, con esta funcion evitas la sobrecarga de memoria cuando cambias bastantes bmps.....
Salu2

ClearImage(oBmp)

Function ClearImage(oImg)
PalBmpFree( oImg:hBitMap, oImg:hPalette )
oImg:hBitmap := 0
oImg:hPalette := 0
oImg:cResName := NIL
oImg:cBmpFile := NIL
oImg:Refresh()
Return(Nil)
mantonio_08
Posts: 330
Joined: Fri May 25, 2007 9:06 pm

Post by mantonio_08 »

AMIGASOS Y COLEGAS.. SOBRE ESTE TEMA, ALGUIEN TIENE UN EJEMPPLO PRACTICO OPERATIVO QUE MUESTRA ACA::

GRACIAS
User avatar
lubin
Posts: 404
Joined: Fri Dec 09, 2005 12:41 am
Location: Lima, Peru
Contact:

Post by lubin »

Hola mantonio

Luego de recibir todas las ayudas de los amigos que respondieron en el este Post mas alguito de lectura desarrolle esta rutina que te abre un cuadro de dialogo y te permite hacer una edicion simple con el uso de Richedit,, como veras hau dos funciones cRTF_FileMime(xTextoMiMe) y otra.. SaveRTF_FileMime(oRich) que me permiten crear archivos temporales de trabajo para guardar el valor del campo binario a uno de texto ,, , pues yo uso Mysql y es necesario hacerlo.. pero si estas usando directamente Dbf.. por lo que me comentaron puedes hacer directamente el REPLACe al Campo


Espero que te sirva

Lubin







FUNCTION WMEMO_WORD(XCAMPO,XEDITA,XTITULO,XOBS)
***********************************************
* XCAMPO ... es el campo a editar
* XEDITA ... Si es .F. no se puede modificar el campo solo se muestra
*XTITULO .. Titulo del cuadro de dialogo
*XOBS... Observaciones en el cuadro de dialogo
*FUNCION RETORNA ====>> EL VALOR DEL CAMPO EDITADO ...

local oDlg
local oRich
local hRichDLL := LoadLibrary( "riched20.dll" )
local lSyntaxHL := .F.
local xtexto_ant:=xCampo
local xtexto:=""
local z_ok:=.f.

LOCAL oDedo
LOCAL S_oTit1Font1
LOCAL S_oTit1Font2
Local S_oTit1Text
LOCAL S_cTit1Text := xtitulo
LOCAL oNOTA ,XNOTA :=""
LOCAL xfile_i_tmp:="c:\windows\my$$fwh_i.rtf"
LOCAL xfile_o_tmp:="c:\windows\my$$fwh_o.rtf"

IF XTITULO=NIL
XTITULO="Registro de Notas "
S_cTit1Text := xtitulo
ENDIF
IF .NOT. EMPTY(XOBS)
XNOTA="Nota : " +XOBS
ENDIF
IF XEDITA=NIL
XEDITA=.F.
ENDIF

IF XEDITA=NIL
XEDITA:=.T.
ENDIF

xTexto:=xCampo

* Carga del Campo
xfile_i_tmp:="c:\windows\my$$fwh_i.rtf"
xfile_o_tmp:="c:\windows\my$$fwh_o.rtf"

DEFINE CURSOR oDedo RESOURCE "Dedo"
DEFINE FONT S_oTit1Font1 NAME "Roman" SIZE 10, 20
DEFINE FONT S_oTit1Font2 NAME "Roman" SIZE 8, 8


DEFINE DIALOG oDlg NAME "WMEMO_WORD"
REDEFINE SAY S_oTit1Text VAR S_cTit1Text ID 601 OF oDlg FONT S_oTit1Font1
REDEFINE SAY oNOTA VAR XNOTA ID 201 OF oDlg FONT S_oTit1Font2

oRich = TRichEdit():Redefine( 101, { || "" }, oDlg )
oRich:LoadFromRTFFile(cRTF_FileMime(xCampo)) && Lee el archivo temporal decodificado en Valor RTF,
oRich:lHighLight = .F. && Apagamos deshabilitado vizaulizacion de efectos
oRich:lReadOnly := .NOT. XEDITA && Controla si se puede editar el Campo
oRich:SetFocus()
* oRich:bGotFocus:= {||oRich:SetBkGndColor(nRGB(0,100,250)) }
* oRich:bLostFocus:= {||oRich:SetBkGndColor(nRGB(255,255,255)) }

REDEFINE BUTTON ID 8011 ACTION (Z_OK:=.T.,xfile_o_tmp:=SaveRTF_FileMime(oRich) , oDlg:End())
* Este bonton Graba del Valor del GetRTF a un File Temporal ArchivoRtfMime, para que pueda ser guardado en Cmapo Mysql

REDEFINE BUTTON ID 8012 ACTION (Z_OK:=.F., oDlg:End())

REDEFINE BUTTON ID 8022 ;
ACTION oRich:SaveToRTFFile( cGetFile( "RTF file (*.rtf) | *.rtf", "Ingrese el Nombre del Archivo a Grabar", "MyDocum" ) )

REDEFINE BUTTON ID 8023 ;
ACTION oRich:LoadFromRTFFile( cGetFile( "RTF file (*.rtf) | *.rtf" ) )

ACTIVATE DIALOG oDlg CENTERED && ON INIT (oRich:LoadAsRTF(xCampo)) && , oRich:AutoURLDetect( .t. ))

IF Z_OK && Se grabo bien...
xtexto:=memoread(xfile_o_tmp) && Se lee el Archivo Temporal MiMe conveertido para ser guardado en campo MySql
ENDIF
FreeLibrary( hRichDLL )
return xtexto

Function cRTF_FileMime(xTextoMiMe)
***********************
*Funcion que recibe un Texto Mime y debuelve el Nombre del Archivo donde fue grabado el Archivo RTF decodificado
LOCAL xfile_i_tmp:=cTempFile(GetEnv("TEMP"),"RTF") && "c:\windows\my$$fwh_i.rtf"
LOCAL xfile_o_tmp:=cTempFile(GetEnv("TEMP"),"RTF") && "c:\windows\my$$fwh_o.rtf"
memowrit(xfile_i_tmp,xTextoMime) && Grabamos el Campo en un archivo temporal
fmimeDec(xfile_i_tmp,xfile_o_tmp) && Convertimos el Archivo MIME a File RTF para ser cargado al Get
erase(xFile_i_tmp)
RETURN xfile_o_tmp && Devolvemos nombre del FileMimeRTf donde se grabo el Archivo RTF

Function SaveRTF_FileMime(oRich)
********************************
*Funcion para guardar el valor RTF del richEdit en un Archivo con formato Mime para guardarlo en un campo Mysql
*Retorna ... el Nombre del archivo para que sea leido con un memoread y grabado en campo Mysql
LOCAL xfile_i_tmp:=cTempFile(GetEnv("TEMP"),"DBF") && "c:\windows\my$$fwh_i.rtf"
LOCAL xfile_o_tmp:=cTempFile(GetEnv("TEMP"),"DBF") && "c:\windows\my$$fwh_o.rtf"
oRich:SaveToRTFFile(xfile_i_tmp)
fmimeenc(xfile_i_tmp,xfile_o_tmp)
RETURN xfile_o_tmp



AQUI ESTA EL CONTENIDO DEL RC... que usa

WMEMO_WORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 38, 58, 546, 212
STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION
CAPTION "EDITOR MEMOS"
FONT 8, "Arial"
{
ICON "W_NOTA", -1, 10, 10, 21, 18
LTEXT "", 601, 36, 12, 334, 17
PUSHBUTTON "Exportar (Rtf)", 8022, 435, 197, 48, 12
PUSHBUTTON "Importar (Rtf)", 8023, 488, 196, 50, 13
PUSHBUTTON "Grabar ", 8011, 12, 196, 68, 13
PUSHBUTTON "Salir ", 8012, 96, 196, 62, 14
CONTROL "", 101, "RichEdit20A", 4100 | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL | WS_TABSTOP, 30, 37, 482, 148
LTEXT "", 201, 165, 196, 264, 13
}


ESTE ES EL ICONO "W_NOTA"
W_NOTA ICON LOADONCALL MOVEABLE DISCARDABLE
{
'00 00 01 00 02 00 20 20 10 00 00 00 00 00 E8 02'
'00 00 26 00 00 00 10 10 10 00 00 00 00 00 28 01'
'00 00 0E 03 00 00 28 00 00 00 20 00 00 00 40 00'
'00 00 01 00 04 00 00 00 00 00 00 02 00 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
'00 00 00 00 80 00 00 80 00 00 00 80 80 00 80 00'
'00 00 80 00 80 00 80 80 00 00 80 80 80 00 C0 C0'
'C0 00 00 00 FF 00 00 FF 00 00 00 FF FF 00 FF 00'
'00 00 FF 00 FF 00 FF FF 00 00 FF FF FF 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
'00 00 00 03 88 87 38 33 77 00 00 00 00 00 00 00'
'00 00 38 FB FF FB 78 8B 88 37 70 00 00 00 00 00'
'07 88 FB FF FB FF F7 FF 8B 88 83 70 00 00 00 00'
'07 FB FF FB FF FB FF 7B FF FB 88 87 00 00 00 00'
'00 7F FB FF FB FF FB 7F FB FF FB F3 70 00 00 00'
'00 07 FF FB FF FB FF F7 FF FB FF 77 77 00 00 00'
'00 07 FB FF FB FF FB F7 FB 77 77 FF F8 00 00 00'
'00 00 7F FB FF FB FF F7 77 FB FF FB F8 00 00 00'
'00 00 7B FF FB FF FB FF FB FF FB FF F8 00 00 00'
'00 00 07 FB FF FB FF FB FF FB FF FB F8 00 00 00'
'00 00 07 FF FB FF FB FF FB FF FB FF F8 00 00 00'
'00 00 00 00 0F FB FF FB FF FB FF FB F8 00 00 00'
'00 00 06 66 60 FF FB FF FB FF FB FF F8 00 00 66'
'60 00 06 66 60 FB FF FB FF FB FF FB F8 00 06 66'
'66 00 00 06 66 0F FB FF FB FF FB FF F8 00 0E 66'
'66 06 66 60 66 0F FF FF FF FB FF FB F8 00 0E 66'
'66 06 66 60 66 00 00 00 0F FF FB FF F8 00 0E E6'
'66 06 66 60 66 07 77 77 77 FB FF FB F8 00 0E E6'
'66 0E EE E6 66 0F FB FF FB FF FB FF F8 00 00 EE'
'E0 77 0E 66 60 FB FF FB FF FB FF FB F8 00 00 00'
'00 00 0E EE 60 FF FB FF FB FF FB FF F8 00 00 00'
'00 00 00 00 0F FB FF FB FF FB FF FB F8 00 00 00'
'00 00 07 FF FB FF FB FF FB FF FB FF F8 00 00 00'
'00 00 07 FB FF FB FF FB FF FB FF FB F8 00 00 00'
'00 00 07 FF FB FF FB FF FB FF FB FF F8 00 00 00'
'00 00 07 FB FF FB FF FB FF FB FF FB F8 00 00 00'
'00 00 07 77 77 77 77 77 77 77 77 77 77 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF'
'FF FF FF FF FF FF FF E0 03 FF FF 00 00 7F FC 00'
'00 1F F8 00 00 0F F8 00 00 07 FC 00 00 03 FE 00'
'00 01 FE 00 00 01 FF 00 00 01 FF 00 00 01 FF 80'
'00 01 FF 80 00 01 FF 80 00 01 C7 00 00 01 83 00'
'00 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00'
'00 01 00 00 00 01 80 00 00 01 C7 00 00 01 FF 80'
'00 01 FF 80 00 01 FF 80 00 01 FF 80 00 01 FF 80'
'00 01 FF 80 00 01 FF FF FF FF FF FF FF FF 28 00'
'00 00 10 00 00 00 20 00 00 00 01 00 04 00 00 00'
'00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 80'
'00 00 00 80 80 00 80 00 00 00 80 00 80 00 80 80'
'00 00 C0 C0 C0 00 80 80 80 00 00 00 FF 00 00 FF'
'00 00 00 FF FF 00 FF 00 00 00 FF 00 FF 00 FF FF'
'00 00 FF FF FF 00 00 00 00 00 00 00 00 00 00 00'
'00 00 00 00 00 00 00 08 7B 77 08 88 00 00 00 08'
'FF FB F0 B7 88 00 00 00 8B FF FB 0F B7 80 00 00'
'8F FB FF 0F 00 80 00 00 08 FF FB 80 FB 70 00 00'
'00 0B FF FB FF 70 00 00 06 60 FB FF FB 70 06 60'
'00 60 FF FB FF 70 0E 60 E0 60 00 FF FB 70 0E E0'
'0E E0 FF FB FF 70 00 00 00 0F FB FF FB 70 00 00'
'08 FB FF FB FF 70 00 00 08 88 88 88 88 80 00 00'
'00 00 00 00 00 00 FF FF 00 00 F0 0F 00 00 E0 03'
'00 00 E0 01 00 00 F0 00 00 00 F0 00 00 00 F8 00'
'00 00 F8 00 00 00 90 00 00 00 00 00 00 00 00 00'
'00 00 00 00 00 00 98 00 00 00 F8 00 00 00 F8 00'
'00 00 FF FF 00 00'
}
Post Reply