problema con clase streamwriter

Iniciado por Free-Knowledgend, 11 Julio 2006, 23:27 PM

0 Miembros y 1 Visitante están viendo este tema.

Free-Knowledgend

he probado ya muchas cosas y no consigo solucionar este problema, espero que podais echarme un cable:

dentro de mi codigo he escrito en una sub el siguiente codigo:

'========================================
'ALMACENAR TEXTOS cifrados
'========================================

Public Sub btnGuardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGuardar.Click

Dim streamwriter As System.IO.StreamWriter
streamwriter = New System.IO.StreamWriter("registro.txt", True)

streamwriter.Write("Texto: ")
[...] ' CONTINUA

streamwriter.Close()

End Sub


y en otra sub:

'========================================
'BORRAR REGISTRO
'========================================

Public Sub btnborrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnborrar.Click

Dim streamwriter As System.IO.StreamWriter
streamwriter = New System.IO.StreamWriter("registro.txt", False)

streamwriter.Write("")
streamwriter.Close()

End Sub


hasta aqui todo va perfecto, el problema surge cuando intento abrir el archivo *.txt con el sigueinte codigo, mostrandome el error que os pongo a continuación:

'========================================
'ABRIR REGISTRO
'========================================

Public Sub btnabrir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnabrir.Click

System.IO.File.Open("registro.txt", IO.FileMode.Open)

End Sub




mcuhas gracias de antemano por cualquier ayuda  ;) ;)

saludos  ;) ;)

Lo que diferencia a un hacker de un lammer es la falta de honor y de dignidad de éste último


Robokop

Primero esta clase de streamwrite es del lenguaje .NET asi que estas en el foro equivocado , porfavor algun mod que lo mueva al subforo .NET
La clase streamwrite no es compatible con el metodo que tu lo quieres abrir , ademas te falta otro parametro que es el modo en que lo va a abrir.
y tienes que crear un objeto antes para poderlo abrir.

antes del modulo o clase importas io asi:
imports system.io
Citar
sub main ()
dim fs as filestream
fs = new filestream("C:\texto.txt",filemode.create,fileaccess.write)

end sub
Pero ese metodo no serviria para streamwrite primero debes de hacer una convercion.

Citarsub main ()
dim fs as filestream
fs = new filestream("C:\texto.txt",filemode.create,fileaccess.write)
sw = new streamwrite(fs)

end sub

He aqui un ejemplo que te hice para ver si lo entiendes

Citar
Imports System.IO
Imports System.Environment

Module Module1

    Sub Main()
        Dim crear As StreamWriter
        Dim str As String

        Try
            'Crear un archivo
            crear = New StreamWriter("C:\doc.txt")
            Console.WriteLine("Escriba las lineas que desea almacenar en el fichero." + NewLine _
            + "Finalice cada linea pulsando la telca <Enter>" + NewLine + "Para finalizar" _
            + " solo pulse la tecla <Enter>.")

            str = Console.ReadLine()
            While (str.Length <> 0)
                'Escribir en el fichero
                crear.WriteLine(str)
                'Leer la linea siguiente
                str = Console.ReadLine
            End While

        Catch ex As IOException
            Console.WriteLine("Error:" & ex.Message)
        Finally
            If (Not crear Is Nothing) Then crear.Close()

        End Try

    End Sub

End Module
Ese ejemplo no necesita  de fileStream y la declaciones porque ya lo crea, en caso que quieres hacer otros tipos de manejos con ficheros como por ejemplo usar Append,truncate .... necesitaras declara como ya lo dije

Cualquier duda postea en el foro correspondiente
salu2

Free-Knowledgend

lo primero lo siento por equivocarme de foro, no me he fijado la verdad  :-\ :-\

he escrito el codigo que me has puesto utilizando la clase filestream, y todo funciona perfecto, salvo por lo de aqbrir el fichero... me gustaría que al hacer click en un boton se me abriese el archivo "resgistro.txt" como si lo abriese normalmente con el bloc de notas  :rolleyes: :rolleyes: :rolleyes:

como puedo hacer esto??  ;) ;)

una vez mas, muchas gracias por todo  ;) ;) ;)
Lo que diferencia a un hacker de un lammer es la falta de honor y de dignidad de éste último


Robokop

Bueno podriamos usar shell :
CitarShell("notepad C:\hola.txt", vbNormalFocus)
De seguro debe de haber otros metodos implementados , a mi no me gusta usar en el .Net este tipo como shell , pero hasta haorita es el unico que conozco  todavia no se muy bien el lenguaje me faltan algunas cosas.
Pd:Pide a un mod global que te cambie el post para las personas que tengan dudas lo puedan consultar facilmente en el de .NEt

Free-Knowledgend

#4
funciona perfecto, muchisimas gracias por todo  ;) ;)

ahora mismo le pido a un mod que cambie el post de foro

saludos  ;) ;)
Lo que diferencia a un hacker de un lammer es la falta de honor y de dignidad de éste último


MaLkAvIaN_NeT

CitarShell("notepad C:\hola.txt", vbNormalFocus)
De seguro debe de haber otros metodos implementados , a mi no me gusta usar en el .Net este tipo como shell , pero hasta haorita es el unico que conozco  todavia no se muy bien el lenguaje me faltan algunas cosas.

puedes hacer esto:
System.Diagnostics.Process.Start("c:\hola.txt")
a por las buenas ideas