GUARDAR EN ARCHIVO DESDE TEXTBOX()

maya
18 de Enero del 2004
quiero guardar en archivo el texto incluido dentro de una serie de textbox.

he utilizado un commonddialog y me crea el archivo pero no me guarda ninguna informacion dentro.

el codigo es el siguiente:

Private Sub Command2_Click()

CommonDialog2.Filter = "Archivos de Texto (*.txt)|*.txt" ' ABRE VENTANA PARA los datos (SOLO LECTURA)
CommonDialog2.FilterIndex = 1

CommonDialog2.ShowSave

If CommonDialog2.FileName = "" Then

Exit Sub 'SI NO HAY datos NO CARGA NADA

Else ' cargamos el archivo

ruta = CommonDialog2.FileName

Set fso = CreateObject("Scripting.FileSystemObject")

Set ofich = fso.createtextfile(ruta) 'abre el fichero seleccionado para su lectura

For fila = 0 To n - 1

ofich.writeline = Text2(fila).Text
ofich.writeline = Text3(fila).Text

Next

End If

ofich.Close ' cerramos el objeto

End Sub



¿que hago mal? porque no me graba nada... ademas, si el archivo ya existe y lo quiero sobre escribir me da error.

Gracias

Salu2

reventador
18 de Enero del 2004
hola maya,

antes del For fila = 0 To n - 1 deberias poner el valor de n

n = .....................



Un saludo

maya
18 de Enero del 2004
ya he puesto el valor de n, ademas he hecho algunos cambios como por ejemplo meter algunos flags, pero sigue sin funcionarme porque al llegar al bucle for...next me dice que esta fuera de rango o intervalo. a que puede ser debido??

el codigo es el siguiente:

Private Sub Command2_Click()

CommonDialog2.Filter = "Archivos de Texto (*.txt)|*.txt" ' ABRE VENTANA PARA los datos (SOLO LECTURA)
CommonDialog2.FilterIndex = 1

CommonDialog2.CancelError = False

CommonDialog2.Flags = cdlOFNHideReadOnly + cdlOverwritePrompt + cdlNoValidate

CommonDialog2.ShowSave

ruta = CommonDialog2.FileName

Set fso = CreateObject("Scripting.FileSystemObject")

Set ofich = fso.createtextfile(ruta) 'abre el fichero seleccionado para su lectura

contador = 0

n = Text1.Text

For fila = 0 To 2 * n - 2 Step 2

puntos(fila) = CDbl(Text2(contador).Text)
puntos(fila + 1) = CDbl(Text3(contador).Text)

contador = contador + 1

Next

ofich.writeline = puntos()

ofich.Close ' cerramos el objeto

End Sub


ademas en el flag cdlOverwritePrompt no me funciona porque me dice que la variable no esta definida...

gracias

salu2

reventador
18 de Enero del 2004
hola maya, perdona por la respuesta tan breve de antes, las prisas no me dejan ver las cosas claras, jeje.

Mira, lo he probado y funciona bien con este código que es mucho más parecido al primero que al segundo que has puesto:

Private Sub Command2_Click()

CommonDialog2.Filter = "Archivos de Texto (*.txt)|*.txt" ' ABRE VENTANA PARA los datos (SOLO LECTURA)
CommonDialog2.FilterIndex = 1

CommonDialog2.ShowSave

If CommonDialog2.FileName = "" Then

Exit Sub 'SI NO HAY datos NO CARGA NADA

Else ' cargamos el archivo

ruta = CommonDialog2.FileName

Set fso = CreateObject("Scripting.FileSystemObject")

Dim ofich
Set ofich = fso.CreateTextFile(ruta, True) 'abre el fichero seleccionado para su lectura

n = Text1.Text

For fila = 0 To n - 1

ofich.WriteLine (Text2(fila).Text)
ofich.WriteLine (Text3(fila).Text)

Next

End If

ofich.Close ' cerramos el objeto

End Sub



Fijate en el error que cometias con el uso de la funcion WriteLine.

Un saludo