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

#11
Si, ha sido un error al escribir.

Lo del return me he dado cuenta luego, y el free(pass) en el código lo he quitado. ¿Dices que debería liberarla en el main() que es desde donde la llamo?

Respecto a lo de realloc, la verdad no lo sabía, lo había metido porque el código es parte de un trabajo para la universidad, que estamos aprendiendo a programar C, y estaba probando las funciones de asignación dinámica. Si me dices que si no me ahorro mucha memoria puede ser contraproducente, mejor lo quito.

Lo del retroceso... Cuando me lo has dicho, lo he probado y he borrado todo el mensaje de la consola me he reído la verdad jeje. Creo que lo he solucionado poniendo:


if(i==0&&c==8)
  continue;



Debajo justo del primer "c=_getch();" (Línea 53).
#12
Ya lo tengo!
Simplemente añadiendo un printf("\b \b"); (Con el espacio incluido) en la condición de retroceso pulsado sale.
#13
Buenas, estoy escribiendo un programa en C con visual studio que te permite definir una contraseña.
En el programa, tu a medida que vas escribiendo caracteres te va imprimiendo *, el caso es que no se como hacer que al presionar la tecla de retroceso borre el anterior asterisco, no sé si me podréis ayudar, gracias de antemano



#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<malloc.h>
#include<conio.h>
#define length 16 //Longitud máxima de la contraseña

char* Password();

void main()
{
char *pass1,*pass2;
int cmp=1;
do
{
printf("Introduce una clave de %d caracteres: ", length);
pass1 = Password();
printf("Introduce de nuevo la clave de %d caracteres: ", length);
pass2 = Password();
cmp = strcmp(pass1, pass2);
if (cmp == 0)
printf("Clave introducida correctamente!!\n");
else
printf("Las claves no coinciden\n");
system("PAUSE");
if (cmp != 0)
system("CLS");
} while (cmp != 0);
}

char* Password()
{
char *pass,c = 0;
int i;
//Asignacion de memoria para los caracteres y '\0'
pass = (char*)malloc((length)+1);
if (pass == NULL)
{
printf("No hay memoria disponible\n");
system("PAUSE");
exit(1);
}

//Compobacion de que como mucho tiene los caracteres que hemos indicado. Cada vez que escribes un caracter, imprime *
do
{
i = 0;

while (c != 13) //Si no presionamos intro
{
if (i < 18) //Si la contraseña cabe en la cadena, se va introduciendo
{
c = _getch();
if (c != 8 && c != 13)
{
pass[i] = c;
printf("*");
}

if (c == 8) //Pulsa retroceso
{
c = NULL;
i = i - 2;
}
}
else //Si no entra siemplemente se imprimen los *, luego te mandara repetir contraseña
{
c = _getch();
if (c != 8&&c!=13)
{
printf("*");
}

if (c == 8)
{
c = NULL;
i = i - 2;
}
}
if (c == 13) //Pulsa intro
{
if (i < ((length)+1))
pass[i] = '\0';
else
{
pass[(length)+1] = '\0';
}
i--;
printf("\n");

}
i++;
}
if(i>length)
printf("Error de longitud, introducela de nuevo: ");
c = 0;
} while (i > length);

//Reasignacion de memoria para optimizar
pass = (char*)realloc(pass, i * sizeof(char) + 1);
return pass;
free(pass);
}
#14
Cita de: PalitroqueZ en  1 Agosto 2017, 01:44 AM
si estás buscando economía, entonces nada mas barato que montar un NAS con un ordenador antíguo.

con un P3 y una motherboard de esas viejas compatibles, puedes armarte un equipo con excelentes prestaciones, para una solución económica no hace falta tanta velocidad, puedes usar tarjetas de red convencional (100mbps).

y para el NAS, lo puedes gestionar con la distro FreeNAS



No, si lo había pensado ya, que tengo un portátil viejo con intel core 2 duo y puerto gigabit que sigue funcionando (aunque con la pantalla partida :silbar:  )
El problema es que lo quiero para ponerlo detrás del televisor (donde tengo el router) y poner un ordenador viejo... Muy tosco. Es demasiado grande, por eso estaba buscando plaquitas tipo raspberry pi.

He encontrado otra que creo que irá mejor. Rock 64 lo único que mejor con 2gb de RAM, o 1 será suficiente?
#15
Cita de: hergue00 en  1 Agosto 2017, 00:42 AM
He pensado en usar una orange pi plus 2E con openmediavault para la tarea, que además tiene 2gb de RAM y puerto gigabit que en teoría el disco duro es capaz de aprovechar (aunque el usb es 2.0). Qué opináis? O debería tirar mejor por una Raspberry Pi 3?
#16
He pensado en usar una orange pi plus 2E con openmediavault para la tarea, que además tiene 2gb de RAM y puerto gigabit que en teoría el disco duro es capaz de aprovechar (aunque el usb es 2.0). Qué opináis? O debería tirar mejor por una Raspberry Pi 3?
#17
Cita de: Randomize en 30 Julio 2017, 14:04 PM
Subforo de Hardware, que alguien lo mueva.


¿Un NAS?


Ya vienen hechos y ocupan muy poco espacio en la habitación.

Sí, pero son muy caros, y estaba buscando una solución algo más barata.
#18
Dudas Generales / Montar un NAS con mini pc
30 Julio 2017, 14:01 PM
Lo pongo aquí porque no sé en que sección ponerlo.

Veréis, el caso es que quería montarme un NAS casero para poder montar mi disco duro en red y poder acceder desde otros PC.
He mirado y la Raspberry Pi 3 lleva solo un puerto fast ethernet y puertos usb 2.0, y megustaría usar un puerto gigabit y usb 3.0 para mayor calidad de conexión.
Entonces creéis que debería usar una Raspberry y me irá suficientemente bien, o me podéis recomendar otro miniPC o similar para hacer la tarea.

Un saludo y gracias  ;-)
#19
Y le podria poner un puerto gigabit y un usb 3.0 a la raspberry para aprovechar toda la velocidad?
#20
Efectivamente, tengo el router HGU de movistar (el qie es blanco y cuadrado qie te dan con la fibra de 300megas) que bueno no está mal, pero no hace milagros.
La única solución que veo es la de poner un NAS, pero de momento no quiero meter tanto dinero a eso. No me merece la pena.
La única que veo un poco posible es la de la raspberry pi.

En caso de que lo hiciera con un NAS o una raspberry  podría entrar a él desde una red exterior? (Por internet)