Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - cbug

#71
Electrónica / Re: ayuda
12 Julio 2010, 00:10 AM
¿A qué te refieres? No entendí  :xD
#72
Programación General / Re: Pascal o C
12 Julio 2010, 00:06 AM
Es que es un ejemplo muy sencillo... Creo que más "bonito" sería crear un programa con interfaz gráfica que muestre algoritmos recursivos de un árbol AVL por ejemplo...
#73
Electrónica / Re: ayuda
11 Julio 2010, 15:02 PM
Es muy fácil el circuito, sólo basta con un par de compuertas NAND, 5 pulsadores, 5 resistencias de 470 ohms, 5 leds...

Para más info busca en la wiki sobre compuertas... Te recomiendo que armes el circuito en papel...

Si no sabes nada de electrónica, no te recomendaría meterte a programar microcontroladores, porque de nada sirve que programes toda tu vida un par de leds, o copies circuitos de otros, mientras que en realidad el fuerte de los microcontroladores es controlar potencias, y para ello necesitas hacer cáculos con TRIACS, DIACS, A.O's, etc.
#74
Programación General / Re: Pascal o C
11 Julio 2010, 14:22 PM
Yo más que aprender un lenguaje de alto nivel empezaría por Pascal o C, en los lenguajes de 4º generación se mal acostumbra a los programadores, a la sencillez de las clases que ya vienen todas hechas y piensan que están programando, cuando en su vida supieron aunque sea lo que es una estructura, los usuarios noveles que comienzan con VB sobre todo, son los que tienen problemas, ya que todo es método, métodos y métodoS... nunca se plantearon un algoritmo... ni siquiera la lógica... Lo único que saben es arrastrar un botón, o crear ventanitas bonitas...
#75
Supongo que es en el cout... Y creo que se debe a que debes usar el operador &

cout <<  funcion(&palabra,1,3);.
#76
Es que ahora pienso modificarlo, puesto que como dijiste, sólo lee 100 caracteres, y muchas veces el .txt posee más en una sóla línea, y necesitaré prontamente un realloc()
#77
Cierto, justo había leído el man. Solucionado :)
#78
void Lee_Lineas(char *RUTA)
{
 FILE *fp;
 char *buffer;
 char *mi_eof = NULL;
 mi_eof = itoa(EOF, 10);
 fp = fopen(RUTA, "r");
 if(!fp)
   puts("Error al intentar abrir archivo");
 else
 {
   buffer = malloc(sizeof(char) * 100);
   fgets(buffer, sizeof(char) * 100, fp);
   
   while(strstr(buffer, mi_eof) == NULL);
   {
     puts(buffer);
     buffer = malloc(sizeof(char) * 100);
     fgets(buffer, sizeof(char) * 100, fp);
   }
 }
 free(buffer);
 fclose(fp);
}


Aqui tengo el problema en que sólo lee la primera línea y sale.

SOLCUCIONADO:

No se necesita comparar, o buscar el EOF, leyendo el man de fgets:

Upon successful completion, fgets() and gets() return a pointer to the
     string.  If end-of-file occurs before any characters are read, they
     return NULL and the buffer contents remain unchanged.  If an error
     occurs, they return NULL and the buffer contents are indeterminate.  The
     fgets() and gets() functions do not distinguish between end-of-file and
     error, and callers must use feof(3) and ferror(3) to determine which
     occurred.
[/b]

void Lee_Lineas(char *RUTA)
{
  FILE *fp;
  char *buffer;
  fp = fopen(RUTA, "r");
  if(!fp)
    puts("Error al intentar abrir archivo");
  else
  {
    buffer = malloc(sizeof(char) * 100);
   
    while(fgets(buffer, sizeof(char) * 100, fp));
    {
      puts(buffer);
      buffer = malloc(sizeof(char) * 100);
    }
  }
  free(buffer);
  fclose(fp);
}
#79
Hola, resulta que estaba practicando algo con archivos, y se me ocurrió hacer 2 procedimientos para leer línea a línea y char a char... En fin, este es el code:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void Lee_Caracter(char *RUTA);
void Lee_Lineas(char *RUTA);
void Menu(void);
char *itoa(int val, int base);

void Limpiar_Buffer(void)
{
 while(getchar() != '\n');
}


int main()
{
 
 int opt;
 char *ruta_local = "texto.txt";
 Menu();
 scanf("%d", &opt);
 Limpiar_Buffer();
 while(opt != 0)
 {
   switch(opt)
   {
     case 1:
     {
Lee_Caracter(ruta_local);
break;
     }
     case 2:
     {
Lee_Lineas(ruta_local);
break;
     }      
     default:
break;
   }
   Menu();
   scanf("%d", &opt);
   Limpiar_Buffer();
 }
 return 0;
}


char* itoa(int val, int base){
 static char buf[32] = {0};
 int i = 30;
 for(; val && i ; --i, val /= base)
   buf[i] = "0123456789abcdef"[val % base];
 return &buf[i+1];
}

void Menu(void)
{
 puts("\t**** MENU ****\t");
 puts("1- Leer caracter a caracter");
 puts("2- Leer linea a linea");
 puts("0- Salir");
 puts("Ingrese Opcion>");
}

void Lee_Caracter(char *RUTA)
{
 FILE *fp;
 char buffer;
 fp = fopen(RUTA, "r");
 if(!fp)
   puts("Error al intentar abrir archivo");
 else
   while((buffer = getc(fp)) != EOF)
     printf("%c", buffer);
 putchar(buffer);
 fclose(fp);
}

void Lee_Lineas(char *RUTA)
{
 FILE *fp;
 char *buffer;
 char *mi_eof = NULL;
 mi_eof = atoi(EOF, 10);
 fp = fopen(RUTA, "r");
 if(!fp)
   puts("Error al intentar abrir archivo");
 else
 {
   buffer = (char *)(malloc(sizeof(char) * 100));
   fgets(buffer, sizeof(char) * 100, fp);
   
   while(strstr(buffer, mi_eof) != NULL);
   {
     puts(buffer);
     free(buffer);
     buffer = (char *)(malloc(sizeof(char) * 100));
     fgets(buffer, sizeof(char) * 100, fp);
   }
 }
 free(buffer);
 fclose(fp);
}


El problema está en mi función atoi, al compilar:

lectura.c: In function 'Lee_Lineas':
lectura.c:89: warning: passing argument 1 of 'atoi' makes pointer from integer without a cast
lectura.c:89: error: too many arguments to function 'atoi'
lectura.c:89: warning: assignment makes pointer from integer without a cast


No puedo resolverlo.

Ahora bien, tengo una duda más, está bien la forma en que busco el EOF del archivo, en la función Lee_Lineas()?


EDITADO: La primera duda resuelta, estaba dormido y cambié itoa por atoi  :-X
Ahora el problema es que la función Lee_Lineas no funciona  :xD

CORREGIDO: while(strstr(buffer, mi_eof) == NULL)

Creo que el problema está en que no incremento el puntero para leer el archivo.
#80
En la sección Ejercicios de programación existen muchos ejercicios, que se pueden resolver en cualquier lenguaje, ya que vb no es el único.