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 - leogtz

#551
Yo te recomendaría Perl, para mi es excelente que un lenguaje te deje hacer la misma cosa de diferentes maneras, no que te obligue a hacerlo de una sola manera como pasa con Python. Perl te deja hacerlo de muchas maneras, y puedes ofuscar el código todo lo que quieras. ¿Por qué hacer las cosas ofuscadas?, porque hacerlas así procura que te metas más en la sintaxis del lenguaje, además de que fomentas la creatividad.

Mi recomendación es muy poco ortodoxa pero con resultados, y es que empieces implementando rutinas que no tengan utilidad practica, en plan ejercicios "acrobaticos", cuanto mas raros y en enrevesados mejor, rutinas ofuscadas, pero siempre intentando saber que es lo que haces.


Una cita de un programador que admiro mucho.
#552
El código de pitoloko funciona, lo he probdo.
#553
Programación C/C++ / Re: Una pregunta
7 Julio 2011, 07:02 AM
"Una pregunta" no es un título muy bueno para el mensaje, va en contra de las reglas, editalo. Pon un nombre que vaya acorde a tu duda.
#554
Estás haciéndolo bien.

Código (dos) [Seleccionar]
@echo off
setlocal enabledelayedexpansion
for /f %%_ in ('type file.txt ^| find /v /c ""') do set /a n_lines=%%_, medio=n_lines / 2
set i=0
for /f "tokens=*" %%_ in (file.txt) do (
set /a i+=1
if !i! leq !medio! (echo %%_ >> temp1.txt) else (echo %%_ >> temp2.txt)
)


file.txt tiene las líneas que quieres dividir.

La primera mitad la tiene "temp1.txt", la segunda "temp2.txt".

Tienes que tener en cuenta en que el script agrega siempre, así que a cada corrida del script tiene que borrar antes temp1.txt y temp2.txt ya que siempre estará agregando. Pruebalo y me cuentas.
#555
Mmmm, no sabía que les enseñaban Batch en la universidad.
#556
¿En dónde te han encargado hacer esto?

Código (dos) [Seleccionar]
@echo off
setlocal enabledelayedexpansion
for /f %%_ in ('type file.txt ^| find /v /c ""') do set /a n_lines=%%_, medio=n_lines / 2
set i=0
for /f "tokens=*" %%_ in (file.txt) do (
set /a i+=1
if !i! leq !medio! (echo %%_ >> temp1.txt) else (echo %%_ >> temp2.txt)
)


El resultado se guarda en temp1.txt y el otro en temp2.txt.

Saludos.
#557
He probado lo siguiente y me funciona, miralo:

#include <stdio.h>

struct _cuerpos
{
   char nombre[80];
   char cod;
} cuerpos[21]; /* Esto puede variar así que es mejor usar un arreglo dinámico de estructuras */

int main(void)
{
   FILE *pf = fopen("file.txt", "r");

   int n;
   char string[80], c;

   fscanf(pf, "%d", &n);
   printf("%d\n", n);

   unsigned i;

   for(i = 0; i < n; i++)
   {
       fscanf(pf, "%80s %c", cuerpos[i].nombre, &cuerpos[i].cod);
       printf("[%s][%c]\n", cuerpos[i].nombre, cuerpos[i].cod);
   }

   fclose(pf);
   return 0;

}


file.txt es el mismo archivo que has puesto.


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

struct _cuerpos
{
   char nombre[80];
   char cod;
} *cuerpos;

int main(void)
{
   unsigned n, i;
   FILE *fp = fopen("file.txt", "r");
   if(fp == NULL)
   {
       perror("Error abriendo archivo");
       exit(EXIT_FAILURE);
   }

   fscanf(fp, "%d", &n);

   /* Crear el arreglo dinámico */
   cuerpos = malloc(sizeof(struct _cuerpos) * n);
   for(i = 0; i < n; i++)
   {
       fscanf(fp, "%s %c", cuerpos[i].nombre, &cuerpos[i].cod);
       printf("[%s][%c]\n", cuerpos[i].nombre, cuerpos[i].cod);
   }

   free(cuerpos);

   fclose(fp);
return EXIT_SUCCESS;
}
#558
Entiendo, tal vez haya un plugin para firefox...
#559
Chicos, la indentación la están dejando totalmente de lado, recuerden que es un buen hábito.
#560
Ponlo aquí en C++, a ver si se puede pasar a C sin problemas. Saludos.