Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-01-2007
Yssik Yssik is offline
Registrado
 
Registrado: ene 2007
Posts: 6
Poder: 0
Yssik Va por buen camino
Smile Leer Archivo txt

hola a todos, soy nueva en el foro y usando el programa c++builder6. nunca antes habia trabajado con archivos y ahora no sólo necesito abrir un archivo .txt, sino buscar cierta información dentro del mismo y leerla.
necesito saber como puedo abrir un archivo .txt y leer la información.
Gracias por adelantadas a quien me pueda ayudar..
Responder Con Cita
  #2  
Antiguo 10-01-2007
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Hola Yssik (bonita manera de resumar Jessica o Jesica o Yesica o como sea, dios que nombre más difícil)

Bienvenida al club antetodo.
Procura leer la Gúia de estilo, usar el buscador de los foros y algún que otro buscador, (todos estos links los encontrarás en mi firma).

Bueno a lo que vamos.
Para leer un fichero de texto, puedes coger un objeto TMemo y hacer lo siguiente para cargarlo en él:

Código Delphi [-]
  Memo1->Lines->LoadFromFile('c:\fichero.txt');

Y para guardar el contenido de un memo en un fichero de texto:

Código Delphi [-]
  Memo1->Lines->SaveToFile('c:\fichero.txt');

Para buscar texto en él, ya puedes usar las funciones propias de la VCL para manejo de texto en strings, como por ejemplo Pos, Copy, etc... busca en la ayuda de C++ Builder sobre estas funciones,ya que son muy fáciles de usar.

Espero te sirva.

Saludos
Responder Con Cita
  #3  
Antiguo 10-01-2007
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Cita:
Empezado por Yssik
hola a todos, soy nueva en el foro y usando el programa c++builder6. nunca antes habia trabajado con archivos y ahora no sólo necesito abrir un archivo .txt, sino buscar cierta información dentro del mismo y leerla.
necesito saber como puedo abrir un archivo .txt y leer la información.
Gracias por adelantadas a quien me pueda ayudar..
Por "buscar cierta información" te refieres a procesar el archivo, ¿no es así? Si eso, puedes leer todo el archivo en un objeto std::string, utilizando un objeto std::istream, y buscar después dentro de él. No manejo C++ desde hace tiempo, pero creo que dentro de esta clase hay un método para buscar sub-cadenas. Si no, siempre puedes utilizar la clásica función stdstr del C (o la strchr si necesitas buscar sólo un carácter).

[P.S.]He buscado buscando enlaces con la descripción de las clases std::string y std::istream pero no los encuentro por ninguna parte.

Siento no ser más preciso con un ejemplo, pero no sabría hacerlo en C++ de memorieta y hacerlo en C implica el uso de punteros...
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #4  
Antiguo 10-01-2007
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Ahí va un ejemplo

¡Qué demonios!

Código:
/* Cómo leer y buscar una palabra en un archivo. */

#include <malloc.h> /* Memoria dinámica. */
#include <stdlib.h>
#include <stdio.h> /* Para acceder a disco y escribir en pantalla. */
#include <string.h> /* Para manejar cadenas de caracteres. */

#define NOMBRE_ARCHIVO "archivo.txt"
#define PALABRA_A_BUSCAR "Yesica"



/* El programa empieza aquí. */
int main (void)
{
  FILE *Archivo = NULL;
  long TamannoArchivo = 0;
  char *Datos = NULL, *Palabra = NULL;
  long PosicionPalabra = 0;

/* Abrimos el archivo. */
  Archivo = fopen (NOMBRE_ARCHIVO, "rb");
  if (Archivo == NULL) {
  /* Hubo un error. */
    printf ("No pude abrir el archivo '%s'\n", NOMBRE_ARCHIVO);
    return EXIT_FAILURE;
  }
  errno = 0; /* Ponemos el indicador de errores a "no hay error". */
/* Calcula el tamaño del archivo. */
  fseek (Archivo, 0, SEEK_END); /* Vamos al final del archivo. */
  TamannoArchivo = ftell (Archivo); /* Le preguntamos en qué octeto estamos. */
  rewind (Archivo); /* Regresamos al principio del archivo. */
/* Comprobamos los errores. */
  if (errno != 0) {
    printf ("[%d] Error al analizar el archivo '%s'\n", errno, NOMBRE_ARCHIVO);
    fclose (Archivo); /* No olvidar cerrarlo. */
    return EXIT_FAILURE;
  }
/* Reservamos espacio para almacenar los datos. */
  Datos = (char*)malloc (TamannoArchivo, sizeof (char));
  if (Datos = NULL) {
    printf ("No pude reservar espacio para poder leer el archivo '%s'\n", NOMBRE_ARCHIVO);
    fclose (Archivo); /* No olvidar cerrarlo. */
    return EXIT_FAILURE;
  }
/* Leemos el archivo. */
  if (fread ((void*)Datos, sizeof (char), TamannoArchivo) != TamannoArchivo || errno != 0) {
    printf ("[%d] Error al leer el archivo '%s'\n", errno, NOMBRE_ARCHIVO);
    free (Datos); /* Liberar la memoria. */
    fclose (Archivo); /* No olvidar cerrarlo. */
    return EXIT_FAILURE;
  }
/* Ahora ya podemos buscar la palabra. */
  Palabra = strstr (Datos, PALABRA);
  if (Palabra == NULL)
    printf ("La palabra '%s' no se encuentra en el archivo '%s'\n", PALABRA, NOMBRE_ARCHIVO);
  else {
  /* Operación con punteros para saber dónde se encuentra la palabra. */
    PosicionPalabra = (long)(Palabra - Datos);
    printf ("La palabra '%s' se encuentra en el carácter número %ld del archivo %s\n", PALABRA, PosicionPalabra, NOMBRE_ARCHIVO);
  }
/* Ahora, liberamos la memoria y cerramos el archivo. */
  free (Datos);
  fclose (Archivo);
/* Como no hubo errores, lo decimos. */
  return EXIT_SUCCESS;
}
Dos detallitos:
  • Es código C, no C++, pero debería funcionar en el compilador sin problemas. De todas formas, usando C++ no cambiaría mucho, salvo que te ahorras la gestión de memoria y todas las comprobaciones de error pueden resumirse en un único bloque try { ... } catch (...) { ... }
  • Lo he hecho de memoria, así que no he comprobado si está perfecto. Eso deberás verlo tu.

[edit]Creo que esta vez gané a Seoane, ¿no?
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine

Última edición por Ñuño Martínez fecha: 10-01-2007 a las 20:43:24. Razón: Asombro
Responder Con Cita
  #5  
Antiguo 11-01-2007
Yssik Yssik is offline
Registrado
 
Registrado: ene 2007
Posts: 6
Poder: 0
Yssik Va por buen camino
Gracias

Gracias por las respuestas lo voy a intentar y les comento.Disculpen por no ser tan explicita, es que ando muy preocupada por este proyecto....

Última edición por Yssik fecha: 11-01-2007 a las 15:00:02.
Responder Con Cita
  #6  
Antiguo 26-01-2007
Yssik Yssik is offline
Registrado
 
Registrado: ene 2007
Posts: 6
Poder: 0
Yssik Va por buen camino
Talking Gracias

Hola. no habia ingresado antes por un proble con internet, pero quiero agradecerle por su ayuda. ya realie el programa y funciona muy bien, use el codigo de roman con ciertos arreglos... Gracias....
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Leer un Archivo newdelphi7 Varios 4 12-12-2006 14:54:33
Leer un archivo (rss)xml en c++ Maximiliano C++ Builder 1 14-07-2006 23:49:23
problemas al leer archivo pdf smendo PHP 0 21-07-2005 10:38:33
leer de un archivo javikanin Varios 3 23-11-2004 20:34:32
Leer versión de un archivo ejecutable FerPetrei Windows 2 16-01-2004 20:41:42


La franja horaria es GMT +2. Ahora son las 00:48:52.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi