Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Leer archivo .txt desde aplicación de consola

Estas en el tema de Leer archivo .txt desde aplicación de consola en el foro de C/C++ en Foros del Web. Hola, estoy haciendo una base de sistema operativo, y un par de aplicaciones que trabajan con él. Lo que quiero hacer, es una especie de ...
  #1 (permalink)  
Antiguo 26/09/2012, 05:47
Avatar de The_Code  
Fecha de Ingreso: mayo-2012
Ubicación: Argentina
Mensajes: 98
Antigüedad: 11 años, 10 meses
Puntos: 4
Pregunta Leer archivo .txt desde aplicación de consola

Hola, estoy haciendo una base de sistema operativo, y un par de aplicaciones que trabajan con él. Lo que quiero hacer, es una especie de Word, en el que el usuario escribe en la Aplicacion de consola, y cuándo se pulse tal tecla, éste guarde todo el texto escrito se guarde en un .txt (de momento, porque por ahora este sistema correrá en el propio Windows...)

PD: Lo estoy haciendo con un amigo, pero cuándo consigamos gente empezaremos a hacer nuestros propios paquetes y programas para él. Cabe aclarar, que cuándo termine todo este S.O semi básico, empezaré con Allegro u OpenGL, para hacer interfaz.
__________________
Mi portafolio
  #2 (permalink)  
Antiguo 26/09/2012, 10:07
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 7 meses
Puntos: 83
Respuesta: Leer archivo .txt desde aplicación de consola

Bien, y hasta donde habeis llegado? Lo basico para cargar un archivo es: abrir un puntero al archivo, leer datos y cerrar el puntero; el nombre y la llamada a estas funciones dependerá del lenguaje que vayas a usar (en tu caso la win32 api te proporciona funciones no portables para ello).

vosk
  #3 (permalink)  
Antiguo 26/09/2012, 11:40
 
Fecha de Ingreso: agosto-2012
Mensajes: 94
Antigüedad: 11 años, 8 meses
Puntos: 7
Respuesta: Leer archivo .txt desde aplicación de consola

Guau!!!

The_Code, eso es genial!, Es una excelente idea. Lo que quieres hacer con el txt es algo que recuerda al EDRAW LIN.

Lo que debes hacer es hacer cadenas con el texto que integras y desde alli hacer fprintf con las cadenas en el archivo. Es bastante facil. Y he visto algo muy parecido, que lo trae como ejemplo el Dev C ++ para aplicaciones Windows. Las API son un lio, pero cuando se las aprende a manejar, te sentiras Bill Gates-Paul Allen, jeje. No me sorprenderia pensar que MS-DOS estuviera hecho en C

Buena suerte!!
  #4 (permalink)  
Antiguo 26/09/2012, 14:40
Avatar de The_Code  
Fecha de Ingreso: mayo-2012
Ubicación: Argentina
Mensajes: 98
Antigüedad: 11 años, 10 meses
Puntos: 4
Respuesta: Leer archivo .txt desde aplicación de consola

Cita:
Iniciado por vosk Ver Mensaje
Bien, y hasta donde habeis llegado? Lo basico para cargar un archivo es: abrir un puntero al archivo, leer datos y cerrar el puntero; el nombre y la llamada a estas funciones dependerá del lenguaje que vayas a usar (en tu caso la win32 api te proporciona funciones no portables para ello).

vosk
Esta api se podría usar sin Windows??
Desde ya gracias gg.

Llegamos hasta el menú y ciertas aplicaciones
__________________
Mi portafolio
  #5 (permalink)  
Antiguo 26/09/2012, 15:44
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 7 meses
Puntos: 83
Respuesta: Leer archivo .txt desde aplicación de consola

No lo creo, es una libreria con varios tipos de funciones: unas son copias de las estandar adaptadas (p.ej. adaptadas para diferentes charsets), otras funcionan con 'cosas' de windows (por ejemplo las llamadas al registro), otras son para la gui (graficos, texto, etc). Incluso no se si has visto la estructura de una aplicacion de windows en modo grafico, que consiste en un proceso que espera mensajes del nucleo del sistema (me imagino que solo eso ya lo hace incompatible con otro sistema operativo).

De todas formas puedes echar un vistazo a Winelib (en teoria es una libreria para hacer portable la api de windows), o Qt (segun indican en su spot, sirve para crear crossplatform applications and ui's). No he usado ninguna de estas dos, con eso no puedo ayudarte.

Si vas a usar OpenGL, seguramente encontraras UI's para ello (no es imposible hacerte una propia, pero no es fácil hacer una suficientemente completa y competitiva con lo que hay por ahi).

Para mostrar texto en un area desde cero, se hace tal como te comenta harryarcoiris, la accion de partir el texto en cadenas que quepan en el area disponible se denomina text wrapping, y si bien es simple hacer una implementacion alineando al margen o centrado, personalmente me parece complejo hacer una implementacion de text wraping con texto justificado (por eso estan las gui que ya lo llevan de serie).

Eso traducido a win32 api en modo grafico consiste simplemente en crear un objeto del tipo que necesites (en este caso una clase edit), aplicarle los estilos (multilinea, retorno de carro, autoscrolls, justificado del texto, etc), y enviarle el contenido; solo tienes que preocuparte por enviarle el texto y guardarlo cuando sea necesario. Por eso es mas sencillo usar una gui que crear una por ti mismo.

Por cierto, en la epoca actual porque no creais un editor en linea? Creas, editas, imprimes desde todo el mundo, con sincronizado para la edicion simultanea de multiples usuarios (p.ej. trabajos en grupo); y ademas si tienes pensado hacerlo en ogl lo tendras casi listo para implementar la version de android :)

Saludos
vosk
  #6 (permalink)  
Antiguo 26/09/2012, 19:22
 
Fecha de Ingreso: agosto-2012
Mensajes: 94
Antigüedad: 11 años, 8 meses
Puntos: 7
Respuesta: Leer archivo .txt desde aplicación de consola

Demonios, ultimamente me paso mas tiempo en el Dev que en la vida real.

Eso de lo de internet, si que sale de mis capacidades cerebrales, no tengo ni la mas minima idea de como se podria hacer eso.

El tema de las cadenas, bueno, no se, pero supongo que se podria estimar la cantidad de letras que caben en la pantalla. Cuando llega a un numero determinado genera un salto de linea. Y si no descubre un espacio, quiere decir que la palabra esta cortada y la manda a la cadena siguiente.

No, las API para windows funcionan unicamente para Windows. Pero la verdad, me empezo a llamar la atencion desde que vi este post, y lei un par de cosas. Es un lio, al menos para mi, jeje.

Para lo del texto justificado, simplemente deberia calcular el tamaño y generar los espacios correspondientes para que todo quede alineado, aunque los textos justificados suelen quedar muy feos, al menos segun my opinion.

Eso de los trabajos en grupo me vendria bien, odio tener que andar de un lado para otro con una manga de ... jeje.

Saludos y Suerte!
  #7 (permalink)  
Antiguo 26/09/2012, 23:09
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 4 meses
Puntos: 52
Respuesta: Leer archivo .txt desde aplicación de consola

Cita:
Iniciado por The_Code Ver Mensaje
Hola, estoy haciendo una base de sistema operativo, y un par de aplicaciones que trabajan con él. Lo que quiero hacer, es una especie de Word, en el que el usuario escribe en la Aplicacion de consola, y cuándo se pulse tal tecla, éste guarde todo el texto escrito se guarde en un .txt (de momento, porque por ahora este sistema correrá en el propio Windows...)

PD: Lo estoy haciendo con un amigo, pero cuándo consigamos gente empezaremos a hacer nuestros propios paquetes y programas para él. Cabe aclarar, que cuándo termine todo este S.O semi básico, empezaré con Allegro u OpenGL, para hacer interfaz.
Bueno, no se si entendi bien la pregunta.
Según lo que comprendi, estas realizando un sistema operativo basico. Y este sistema operativo correra bajo Windows???

Ten en cuenta las partes que debe tener un sistema operativo. Manejo de procesos, administración de memoria y manejo de entradas y salidas.
La parte de escribir un archivo cae en el area de manejo de entradas y salidas.
Tu sistema deberìa implementar alguna estructura o formato del sistema de archivos que planeas manejar, ya sea en disco duro, o en algun otro tipo de memoria. No es una tarea sencilla.

Usar openGL y allegro para la interfaz gráfica??? OpenGL y Allegro son implementaciones especificas de un sistema operativo. En todo caso, debes desarrollar drivers de video para tu propio sistema y luego implementar opengl y allegro para que despeus puedan ser usados en tu sistema.

No se si sea eso lo que quieres lograr..

Saludos
  #8 (permalink)  
Antiguo 27/09/2012, 03:23
Avatar de The_Code  
Fecha de Ingreso: mayo-2012
Ubicación: Argentina
Mensajes: 98
Antigüedad: 11 años, 10 meses
Puntos: 4
Respuesta: Leer archivo .txt desde aplicación de consola

Primero quiero hacer un S.O sobre Windows, para tener buena práctica de C++, pero cuándo tenga más de 14/15 años, tendré que hablar con un par de gente para ver y empezar a crear una nueva tecnología para que el sistema esté solito. Porque en el "Mundo Windows" se pueden utilizar .dll .exe .bat, etc, pero fuera de ese mundo, obviamente, no.
Tendré que contactar con los de ReactOS, que ellos están haciendo un S.O basado en NTSeries
__________________
Mi portafolio
  #9 (permalink)  
Antiguo 27/09/2012, 03:31
Avatar de The_Code  
Fecha de Ingreso: mayo-2012
Ubicación: Argentina
Mensajes: 98
Antigüedad: 11 años, 10 meses
Puntos: 4
Respuesta: Leer archivo .txt desde aplicación de consola

Cita:
Iniciado por vosk Ver Mensaje
Bien, y hasta donde habeis llegado? Lo basico para cargar un archivo es: abrir un puntero al archivo, leer datos y cerrar el puntero; el nombre y la llamada a estas funciones dependerá del lenguaje que vayas a usar (en tu caso la win32 api te proporciona funciones no portables para ello).

vosk
a que te refieres con "un puntero"?
__________________
Mi portafolio
  #10 (permalink)  
Antiguo 27/09/2012, 12:22
 
Fecha de Ingreso: agosto-2012
Mensajes: 94
Antigüedad: 11 años, 8 meses
Puntos: 7
Respuesta: Leer archivo .txt desde aplicación de consola

Vaya vaya, otro programador joven, yo tengo 14.

Cita:
#include <winbgim.h>
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <stdint.h>

int main()
{
int x, y, r, b, a, d, c;
x = 0;
y = 0;
r = 1024;
b = 1024;


initwindow(1204,768);
srand(time(NULL));
FILE *txt;
txt = fopen("Datoscolor","w");



do{
a = rand() % 250;
d = rand() % 250;
c = rand() % 250;
setcolor(COLOR(a,d,c));
printf("Los colores son: %d de rojo, %d de verde y %d de azul\n",a,d,c);
fprintf(txt, "Los colores son: %d de rojo, %d de verde y %d de azul\n",a,d,c);
delay(1);
line(x,y,x,r);
x = x + 1;

}while(x < b);
fclose( txt );

while(!kbhit());
closegraph();
return 0;
}

Este es un codigo que encontre rebuscando, esta hecho en la libreria Winbgim, pero la logica es lo que interesa. primero creo un puntero llamado txt, que es de tipo de archivo FILE.

Luego, abro con la funcion fopen, el txt Datoscolor.txt, y le doy formato de creacion o borrado, que en ese caso es la w, en wikipedia esta la lista completa.

Luego, hago imprimir con fprintf, al puntero, y finalmente cierro el archivo desde el puntero. No se mucho sobre punteros, pero en este caso, son unas palabras que redirigen a un archivo.
  #11 (permalink)  
Antiguo 27/09/2012, 12:31
 
Fecha de Ingreso: agosto-2012
Mensajes: 94
Antigüedad: 11 años, 8 meses
Puntos: 7
Respuesta: Leer archivo .txt desde aplicación de consola

que es ReactOS? Se que OS es Operative System, pero react es una compania?
  #12 (permalink)  
Antiguo 27/09/2012, 13:16
Avatar de L3m0n  
Fecha de Ingreso: diciembre-2011
Mensajes: 219
Antigüedad: 12 años, 3 meses
Puntos: 46
Respuesta: Leer archivo .txt desde aplicación de consola

Buenas, el proyecto puede ser interesante, pero tienes un problema, llegas 20 años tarde.

Me explico, hace unos 20 años, era posible crear un sistema operativo, pero hoy por hoy es una cosa impensable.

Lo siento si puede desilusionar pero es así, el mismo Linus Torvals dijo que si hubiera sabido el jaleo en el que se metia no hubiera entrado.

Lo dicho, crear un sistema operativo hoy en dia es una locura, puedes hacer algunas cosas, pero hacer un sistema operativo hecho y derecho no.


Saludos.
  #13 (permalink)  
Antiguo 27/09/2012, 14:14
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 7 meses
Puntos: 83
Respuesta: Leer archivo .txt desde aplicación de consola

The_Code: "...a que te refieres con "un puntero"?..."

Un puntero a un archivo es el manipulador que vas a usar para trabajar con flujos de entrada/salida sobre ficheros y es del tipo FILE (contiene todo lo necesario para trabajar con un archivo). Tal vez no te habías fijado en eso, pero por defecto siempre tienes 3 punteros de este tipo que se crean de forma automatica y los tienes disponibles todo el rato (incluso puedes redirigirlos): stdin, stdout y stderr, incluso hay funciones que trabajan especificamente sobre estos tipos (p.ej. printf siempre escribe sobre stdout, gets siempre lee de stdin, y perror siempre escribe sobre stderr). Puedes inetrcambiar estos punteros (siempre que sepas lo que estas haciendo), p.ej. un interprete de script de servidor escribe los resultados por stdout y los errores por stderr, pero antes de la llamada de ejecucion del interprete el servidor modifica los punteros para que sean el mismo que el del archivo de salida, de forma que una vez termina la ejecucion del interprete el servidor envia el archivo de salida al cliente y este puede ver los errores de la interpretacion del script (de lo contrario saldrian por la pantalla del servidor, en caso que tuviese alguna). Esto son solo ejemplos del uso habitual de los punteros, y como puedes ver no es algo aislado o una rareza poco usada.

Si tal como dices tienes planeado hacerlo en c++ tendras que tener en cuenta que esto del FILE es una herencia de C, y en c++ tienes otras funciones para ello.

Otra cosa, fuera del mundo windows tambien existen las dll, exe, bat, etc solo que se llaman de otra forma y estan 'echas' para s.o. especificos.


L3m0n: no desilusiones al pobre chaval, que el lado oscuro tambien es un buen lugar para pasar el rato. Eso si thecode, ya que estas en windows intenta hacer un simple editor con la api (en modo grafico y solo con la api); si no puedes hacerlo significa que no estas preparado para hacer un editor desde cero, y mucho menos un s.o.

Suerte con ello
vosk
  #14 (permalink)  
Antiguo 27/09/2012, 17:12
Avatar de The_Code  
Fecha de Ingreso: mayo-2012
Ubicación: Argentina
Mensajes: 98
Antigüedad: 11 años, 10 meses
Puntos: 4
Respuesta: Leer archivo .txt desde aplicación de consola

Cita:
Iniciado por L3m0n Ver Mensaje
Buenas, el proyecto puede ser interesante, pero tienes un problema, llegas 20 años tarde.

Me explico, hace unos 20 años, era posible crear un sistema operativo, pero hoy por hoy es una cosa impensable.

Lo siento si puede desilusionar pero es así, el mismo Linus Torvals dijo que si hubiera sabido el jaleo en el que se metia no hubiera entrado.

Lo dicho, crear un sistema operativo hoy en dia es una locura, puedes hacer algunas cosas, pero hacer un sistema operativo hecho y derecho no.


Saludos.
Ciertamente, tenés razón, mi papá me dijo algo así, además, mientras corra en Windows, bien, ¿pero cuándo el SO tenga que funcionar por si solo? ¿Como podría administrar los procesos, detectar TODO el hardware...? "Es mucho jaleo", como dicen en españa, y lo eh estado pensando... y que lo empiecen dos personas... tardaría 20 años con buena suerte
__________________
Mi portafolio
  #15 (permalink)  
Antiguo 27/09/2012, 20:08
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Leer archivo .txt desde aplicación de consola

Aporto una pagina copada para empezar con algo de Kernels. Bastante importante en un sistema operativo.

http://www.jamesmolloy.co.uk/tutorial_html/index.html

No depende de windows ni linux este kernel. Toca bastantes temas importante. Seguro que les puede interesar.
Me parece mas interesante esto que hacer correr sobre windows.

Saludos,
  #16 (permalink)  
Antiguo 27/09/2012, 22:03
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 4 meses
Puntos: 52
Respuesta: Leer archivo .txt desde aplicación de consola

¿Un sistema operativo sobre otro sistema operativo?
No le veo mucho sentido, en todo caso no sería un sistema operativo.

A lo mejor lo que quieres es un simulador o un sistema(no operativo, solo sistema).
Un sistema que emule las funciones basicas de un sistema operativo.
Eso no suena tan descabellado.

En fin, por la edad que mencionas que tienes de verdad te recomendaría otro tipo de proyectos, te lo digo mas que nada por experiencia, puedes revisar mis posts cuando tenía tu edad . Te hago la invitación a que te involucres con los emuladores, pequeños videojuegos o cosas por el estilo, uno puede aprender muchisimo, sin caer en cosas tan fuera del concepto.

Un saludo.
  #17 (permalink)  
Antiguo 28/09/2012, 12:12
 
Fecha de Ingreso: agosto-2012
Mensajes: 94
Antigüedad: 11 años, 8 meses
Puntos: 7
Respuesta: Leer archivo .txt desde aplicación de consola

Hola de nuevo!

The Code, te doy la misma recomendacion que a Instru. Siempre hay cosas geniales que uno puede hacer, y no precisamente uno tiene que tratar de hacer un Sistema Operativo a los catorce años.

Yo, por ejemplo, con tu edad, me dedico a la programacion de videojuegos. He hecho algunos muy simples y ahora voy por los complejos. Y de mientras aprendo muchisimo, sobre todo gracias a los foristas que me tienen paciencia, jeje.

Si no te gustan los videojuegos, puedes probar con inteligencias artificiales simples, o automatas, o animaciones, etc...

Pero bueno, cada cual hace lo que le gusta, es solo una idea, de todas formas a mi me encantaria crear un sistema que Emule a MS-DOS pero con mejores prestaciones y manejar mi maquina unicamente con letras y numeros (aunque mi familia me mataria porque esta compu la usamos todos, jeje).
  #18 (permalink)  
Antiguo 28/09/2012, 21:58
Avatar de The_Code  
Fecha de Ingreso: mayo-2012
Ubicación: Argentina
Mensajes: 98
Antigüedad: 11 años, 10 meses
Puntos: 4
Respuesta: Leer archivo .txt desde aplicación de consola

Cita:
Iniciado por harryarcoiris Ver Mensaje
Hola de nuevo!

The Code, te doy la misma recomendacion que a Instru. Siempre hay cosas geniales que uno puede hacer, y no precisamente uno tiene que tratar de hacer un Sistema Operativo a los catorce años.

Yo, por ejemplo, con tu edad, me dedico a la programacion de videojuegos. He hecho algunos muy simples y ahora voy por los complejos. Y de mientras aprendo muchisimo, sobre todo gracias a los foristas que me tienen paciencia, jeje.

Si no te gustan los videojuegos, puedes probar con inteligencias artificiales simples, o automatas, o animaciones, etc...

Pero bueno, cada cual hace lo que le gusta, es solo una idea, de todas formas a mi me encantaria crear un sistema que Emule a MS-DOS pero con mejores prestaciones y manejar mi maquina unicamente con letras y numeros (aunque mi familia me mataria porque esta compu la usamos todos, jeje).

En realidad tengo 12, pero no importa. He hecho un par de juegos, pero ninguno lo he terminado, están todos en una carpeta ocupando GB y GB en mi disco xD.
Me gusta hacer juegos en Unity3D, es el mejor motor que conozco (en mi caso no me gusta CryEngine), y en su versión "paga" (digo trucha xD) tiene más efectos.

Seguiré un juego que estaba haciendo, pero siempre algo me detiene, en este caso, la IA me da mucha vagueza estudiar y programar una. Así que creo que en vacaciones podré sacar esa escusa.


¿Que es ReactOS?
Es un sistema operativo que creo que lo siguen desarrollando, basado en NTSeries de Microsoft Windows, y es compatible con muchos de los programas que se utilizan en Windows.
Es algo así entre la seguridad de Linux y la simpleza de Windows
__________________
Mi portafolio

Última edición por The_Code; 28/09/2012 a las 22:15
  #19 (permalink)  
Antiguo 29/09/2012, 16:43
 
Fecha de Ingreso: agosto-2012
Mensajes: 94
Antigüedad: 11 años, 8 meses
Puntos: 7
Respuesta: Leer archivo .txt desde aplicación de consola

Ah, vale, haces juegos en 3D?

Y yo que estoy peleando contra un Code de 2D, jeje. Ahora estoy haciendo una funcion que se encarga de disparos.

jamas entendi el tema de los motores graficos. Te hago una pregunta personal, si no quieres no la contestas, pero me da curiosidad. ¿Desde que año de edad programas? Parece que eres un experto, y a tu edad, eso es sorprendente.

Saludos! Ah, y otra pregunta, de que tratan tus juegos?

Etiquetas: devc++, operativo, programas, sistema
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:24.