hemos creado una variable f que será el archivo en modo lectura. Los datos se meterán en "a" a través del método f.gets(a) y nosotros los pasamos a una cadena creada con StringBuilder (Constructor de cadenas) en la variable bu y lo metemos una lista de Gee(atención al compilar usar --pkg gee-1.0 ).
Para aprender el funcionamiento de Stringbuilder. Por ejemplo para crear una cadena a partir de variables tipo caracter. http://references.valadoc.org/#!api=glib-2.0/GLib.StringBuilder
[indent=4] uses Gee init var f = FileStream.open("/home/gontzal/for","r") var a = new array of char[1000] var bu = new StringBuilder () var lista =new list of string while f.gets(a)!= null for s in a do bu.append_c(s) lista.add (bu.str) bu.erase() for h in lista stdout.printf(h)
oye amigo disculpa las molestias pero este tema lo he probado de muchas maneras y siempre al correrlo me dice
ResponderEliminar"violacion de segmento"
este es el codigo
[indent=4]
uses Gee
init
var f = FileStream.open("/home/gontzal/for","r")
var a = new array of char[1000]
var bu = new StringBuilder ()
var lista =new list of string
while f.gets(a)!= null
for s in a do bu.append_c(s)
lista.add (bu.str)
bu.erase()
for h in lista
stdout.printf(h)
Supongo que habrás creado un archivo y lo habrás abierto poniendo el correspondiente nombre aqui: FileStream.open("nombre_de_archivo","r")
EliminarUn saludo.
amigo gracias si tenia mal el nombre del archivo pero no era el nombre que puse aqui sino otro lo habia probado pero resulta que tenia una letra de mas y por ponerle un nombre tan largo no me di cuenta. pero gracias por tu ayuda y paciencia.
ResponderEliminaroye ¿por que no se usa simplemente un string para leer la informacion del archivo? en lugar de hacer un array de char? ¿por que tiene que ser tan complicado?
ResponderEliminarSi tienes razón se puede hacer como tu indicas. Aquí tienes un ejemplo:
Eliminar// abriendo
this.todas_palabras.clear();
f = FileStream.open(directorio_datos+archivo,"r")
if f!=null
c=""
c=f.read_line()
while not f.eof()
this.todas_palabras.add(c)
c=f.read_line()
muchas gracias por tu ayuda Gontzal, no queria que se viera mal mi comentario anterior que pareciera algo pesado no es mi intension se ve asi por las palabras pero muchas gracias ¿por que es que no me deja declarar variables antes de init pero si de otra forma sin la palabra variable lo pusé asi
ResponderEliminar[indent=4]
cadena:string
init
var f=FileStream.open("archivogenielee.text","r")
if f!=null
cadena = "cadena vacia"
cadena = f.read_line()
print cadena
while not f.eof()
cadena = f.read_line()
stdout.printf("%s", cadena)
pero no pude declarar la variable con la palabra Var antes de init, otro problema que encuentro es que el print no imprime un estring tiene que ser con printf() no se por que