PDA

Ver la Versión Completa : cargar ficheros de texto y mostrar el contenido


kakesoft
20-07-2005, 22:09:07
Miren lo que quiero hacer es sencillo. Tengo dentro de la carpeta raiz de mi aplicación una carpeta que se llama textos, dentro de la cual hay varios ficheros de texto .txt y lo que quiero hacer es lo siguiente: en el form tengo un componente lista (pienso que pueda ser un tlistbox) y un memo o richedit, en el oncreate del form, el listbox me cargará como items independientes el nombre de cada fichero de texto que hay en la carpeta textos (la misma está como dije anteriormente dentro de la carpeta raiz de mi aplicación, la carpeta raiz se llama: cargar y mostrar), y lo otro que quiero que me haga es que después que se muestren todos los ficheros de textos que hay en la carpeta textos, en el listbox, al dar clic en un item cualquiera, se muestre el contenido del fichero de texto al que coresponde en el memo o richedit

NOTA: Muy importante, en los items del listbox, o el componente lista que se pueda utilizar para esto, no se debe mostrar la ruta de los ficheros de textos, sino solamente su nombre.


saludos a todos y graciass de antemano

delphi.com.ar
20-07-2005, 22:19:53
No te voy a decir como implementarlo, creo que esa lógica queda por tu cuenta, pero simplemente quiero comentarte que la propiedad Lines del TMemo o TRichEdit y la propiedad Items del TListBox son TStrings. Y los TStrings tienen dos métodos (LoadFromFile y SaveToFile) que te van a ser de utilidad.

Saludos!

maeyanes
20-07-2005, 22:20:34
Los componentes TMemo tienen una propiedad llamada Lines que son de tipo TStringList (o TStrings, no recuerdo bien). Esta clase tiene un método llamado LoadFromFile.

Una vez cargado el TListBox con los nombres de los archivos, con el evento OnClick del TListBox, llamas el método y cargas el contenido del archivo.

Más o menos así:


procedure MyForm.ListBox1OnClick(Sender: TObject);
begin
Memo1.Lines.LoadFromFile(Ruta + '\' + ListBox.Items.Strings[ListBox.ItemIndex])
end;


Sobre como cargar los nombres de los archivos en un TListBox, has una búsqueda en el foro pues creo que ese tema ya se ha tocado en alguna ocasión.



Saludos...

Neftali [Germán.Estévez]
21-07-2005, 09:47:12
Para la parte izquierda yo utilizaría un TListBox (te permite seleccionar mejor los elementos sueltos) en lugar de un TMemo o TRichEdit; Para la carga revisa las funciones de búsqueda en directorios FindFirst, FindNext y FindClose (en la ayuda de Delphi de FindFirst tienes un ejemplo); Para mostrar el nombre y no la ruta puedes utilizar ExtractFileName con el nombre del fichero.

Para la parte derecha sí que puedes utilizar un TMemo y cargarlo con los métodos que ya te han comentado.

kakesoft
22-07-2005, 17:30:11
Por favor ayúdenme un poquitico más, el problem es que no se cómo añadir a los items del listbox, el nombre de los ficheros txt que se encuentran en una carpeta que tengo, que como ya dije se llama textos.

ayúdenme saludos a todos

Neftali [Germán.Estévez]
25-07-2005, 11:02:00
Revisa la sección de trucos del ClubDelphi;
En concreto hay un par, para borrar todos los ficheros de un directorio (creo que son el 333 y el 310); Si revisas el código es exactamente igual al que necesitas tú, sólo que hay que cambiar la línea que borra el fichero (DeleteFile) por la de añadirlo a la lista (Lista.Add(...));
La estructura del algoritmo es la misma; Busca, lo único que cambia es la operación final (borrar o añadir).

dec
25-07-2005, 11:51:56
Hola,

Podrá mejorarse lo que se quiera o haga falta, pero, personalmente, creo que con este ejemplo tendrás la idea de cómo hacer lo que precisas, si no es ya que lo tengas hecho. Te sorprenderá lo sencillo que es.

kakesoft
03-08-2005, 21:46:03
socios gracias por todo y disculpen primeramente que nada es que estoy de vacaciones y hacía rato que no revisaba el correo ni los foros de clubdelphi, revisaré esos trucos y posteriormente les diré si me funcionaron.

graciasss nuevamente....

kakesoft
08-08-2005, 18:43:03
Socios les diré que con el ejemplito que me ofreció Dec resolví mi problema graciassssss muchas graciassss a todos