Discussion:
Crear archivo binario desde visual basic
(demasiado antiguo para responder)
Martin
2007-08-27 17:38:50 UTC
Permalink
Tengo que crear un archivo de fox pro el cuál tengo las especificaciones en
:
0x02
0x03 0xFB, etc, etc

código binario supongo que es,
y deseo crear un archivo desde visual basic en este código, o convertido a
"texto normal"

alguien me puede dar una mano?

Cualquier ayuda/comentario se agradece

Martín
juan
2007-08-27 17:54:16 UTC
Permalink
Puedes hacerlo con:

open nombreFichero for binary as #1

y para escribir

Put #numero,[posicion], expresión


Supongo también que con ADOX y el objeto Catalog podrías crear también la
base de datos, tablas y demás de form más fácil, aunque no lo he probado.
Por ejemplo para Access:

'debemos añadir la referencia Microsoft ADO Ext. 2.x For DDL And Security

Dim cat As New Catalog

cat.Create "provider=microsoft.jet.oledb.4.0;data source=d:\academia.mdb"
Post by Martin
Tengo que crear un archivo de fox pro el cuál tengo las especificaciones
0x02
0x03 0xFB, etc, etc
código binario supongo que es,
y deseo crear un archivo desde visual basic en este código, o convertido a
"texto normal"
alguien me puede dar una mano?
Cualquier ayuda/comentario se agradece
Martín
Martin
2007-08-27 18:21:03 UTC
Permalink
bien más que nada lo que me interesa es escribir,
osea esto que me respondiste:
"> Put #numero,[posicion], expresión"

pero por ejemplo si tengo que escribir 0x02, 0xF5, eso es en código
hexadecimal?, y sería el que pongo en número?,

porque también se me había ocurrido convertir con un editor el código que
tengo a código normal y escribirlo textualmente, ya sólo lo voy a usar una
vez

Gracias por la respuesta
Martín
juan
2007-08-27 18:32:51 UTC
Permalink
Aclaro:

En el open pones un número junto con la almohadilla (el que tu quieras) y es
el que usas el el put. EL valor hexadecimal lo ponemos en expresión (que
puede ser lo que te dé la gana). Posición es opcional.

Ej:
open "c:\datos.sas" for binary as #9
put #9,,0x2
put #9,,0xf5

y al final close #9
Post by Martin
bien más que nada lo que me interesa es escribir,
"> Put #numero,[posicion], expresión"
pero por ejemplo si tengo que escribir 0x02, 0xF5, eso es en código
hexadecimal?, y sería el que pongo en número?,
porque también se me había ocurrido convertir con un editor el código que
tengo a código normal y escribirlo textualmente, ya sólo lo voy a usar una
vez
Gracias por la respuesta
Martín
Armin Saez
2007-08-27 18:46:45 UTC
Permalink
Hola no se si me equivoco, lo mas probable es que algun maestro lo aclare, pero considero que no es conveniente asignar numeros al archivo!!!
Que pasa si algun archivo usa dicho numero y tu inicias tu aplicacion???
Lo mas seguro es que obtengas un error, en su lugar asigna la variable a FREEFILE, asi windows sera el que administre ese numero y evitas cualquier error relacionado.
como ejemplo de lo que trato de decir, crea dos programas que traten de usar el mismo numero y fijate que pasa!

Saludos y suerte:


private sub GuardarFile()
Dim NFic as Integer, Sfic as string

sFic = "C:\Windows\UnArchivo.Ini"
nFic = FreeFile

Open sFic For Output As nFic
Print #nFic, "[" & Label1.Caption & "]", Text1.Text
Print #nFic, ""
Print #nFic, "[" & Label2.Caption & "]", Text2.Text
Print #nFic, ""
Print #nFic, "[" & Label3.Caption & "]", Text3.Text
Print #nFic, ""
Print #nFic, "[Mensaje]"
Print #nFic, RichTextBox1.Text

Close #nFic
End Sub

;-)
--
-----------------------------
Sin mas, saluda atte. a Uds.
Armin Saez

PD: Me da flojera escribir los tildes.
"juan" <j--***@telefonica.net> escribió en el mensaje news:***@TK2MSFTNGP04.phx.gbl...
Aclaro:

En el open pones un número junto con la almohadilla (el que tu quieras) y es
el que usas el el put. EL valor hexadecimal lo ponemos en expresión (que
puede ser lo que te dé la gana). Posición es opcional.

Ej:
open "c:\datos.sas" for binary as #9
put #9,,0x2
put #9,,0xf5

y al final close #9
Post by Martin
bien más que nada lo que me interesa es escribir,
"> Put #numero,[posicion], expresión"
pero por ejemplo si tengo que escribir 0x02, 0xF5, eso es en código
hexadecimal?, y sería el que pongo en número?,
porque también se me había ocurrido convertir con un editor el código que
tengo a código normal y escribirlo textualmente, ya sólo lo voy a usar una
vez
Gracias por la respuesta
Martín
Martin
2007-08-27 21:32:54 UTC
Permalink
en realidad lo que tengo es un archivo hexadecimal:

00 02 01 01 ...etc

que quiero guardar desde visual basic, pero quiero abrirlo con otra extensión, (dbf),

probé con:
Dim nombre As String
Dim edad As Integer
Dim telefono As String

Open "C:\Documents and Settings\root\PruebaDbf.dbf" For Append As #1
Print #1, "lelroer" _
; 3434; ""

Print #1, "30 07 08 1B 02 00 00 00 68 01 15 00 00 00 00 00 _
30 07 08 1B 02 00 00 00 68 01 15 00 00 00 00 00 _
................. ................. .................
................. ................. .................
................. ................. .................
................. ................. .................


Close #1

pero no me deja hacerle a la última "_" porque me dice "demasiadas continuaciones de linea"

y al poner en una linea varias me salta error en la siguiente:

43 41 4D 50 4F 31 00 00 00 00 00 43 01 00 00 00
me salta en 4D y me dice: "error de compilación error de sintáxis"

Alguna idea de que puede ser??
gracias

Martín
Hernán
2007-08-27 22:07:23 UTC
Permalink
Post by Martin
00 02 01 01 ...etc
que quiero guardar desde visual basic, pero quiero abrirlo con otra extensión, (dbf),
[...]

En un archivo tienes un texto con valores en formato hexadecimal. Ese es
tu input.

Conviertes la substring "00" en una valor entero 0, y lo outputeas a tu
archivo "binario" con extensión dbf. Digamos, print# Char(0).

Conviertes la substring "02" en una valor entero 2, y lo outputeas a tu
archivo "binario" con extensión dbf. Digamos, print# Char(2).

O preoutputeas todos los valores en un bufer y luego lo PUTeas en el
archivo.
--
Ni yerba de ayer
Continúe leyendo en narkive:
Loading...